Android Open Source - geoar-app New Grid Feature






From Project

Back to project page geoar-app.

License

The source code is released under:

Apache License

If you think the Android project geoar-app listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright 2012 52North Initiative for Geospatial Open Source Software GmbH
 *//from  w  w w  .j ava 2  s  . c o  m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.n52.geoar.view.geoar.gl.mode.features;

import org.apache.http.MethodNotSupportedException;
import org.n52.geoar.view.geoar.gl.mode.BilligerColorShader;
import org.n52.geoar.view.geoar.gl.mode.FeatureShader;
import org.n52.geoar.view.geoar.gl.mode.RenderFeature2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import android.opengl.GLES20;

/**
 * 
 * @author Arne de Wall
 *
 */
public class NewGridFeature extends RenderFeature2 {
  private final int totalSize;
  private final int gridSize;
  private int lineColor;
  private float thickness = 2.5f;

  private int androidColor = -1;

  private static final Logger LOG = LoggerFactory
      .getLogger(NewGridFeature.class);

  public NewGridFeature() {
    this(BilligerColorShader.getInstance());
  }

  public NewGridFeature(FeatureShader renderer) {
    this.totalSize = 200;
    this.gridSize = 2;
    this.drawingMode = GLES20.GL_LINES;
    this.renderer = renderer;
  }

  @Override
  public void setColor(float[] colorArray) {
    try {
      throw new MethodNotSupportedException(
          "Setting Color array is not supported atm");
    } catch (MethodNotSupportedException e) { // Lol...
      LOG.debug("setColor array is not supported atm");
      e.printStackTrace();
    }
  }

  @Override
  public void onCreateInGLESThread() {
    final int centerToOrigin = totalSize / 2;

    final int numGridPerStride = totalSize / gridSize; // grids along a line
    final int numGridLinesPerStride = numGridPerStride + 1;
    /** count for lines in x and y direction */
    final int numTotalGridLines = numGridLinesPerStride * 2; 
    final int numGridEndPoints = numTotalGridLines * 2; // num of vertices

    final int numVertices = numGridEndPoints * SIZE_OF_POSITION;
    final int numColorCoords = numGridEndPoints * SIZE_OF_COLOR;

    final float[] vertices = new float[numVertices];
    final float[] colors = new float[numColorCoords];
    final float[] normals = new float[numVertices];
    
    for (int gridlineindex = 0, arrayindex = 0, nextgrid = 0; gridlineindex < numGridLinesPerStride; arrayindex +=12, gridlineindex++, nextgrid += gridSize ){
      vertices[arrayindex] = -centerToOrigin;
      vertices[arrayindex + 2] = -centerToOrigin + nextgrid;

      vertices[arrayindex + 3] = centerToOrigin;
      vertices[arrayindex + 5] = -centerToOrigin + nextgrid;
      
      vertices[arrayindex + 6] = -centerToOrigin + nextgrid;
      vertices[arrayindex + 8] = -centerToOrigin;

      vertices[arrayindex + 9] = -centerToOrigin + nextgrid;
      vertices[arrayindex + 11] = centerToOrigin;
    }

    for (int normalIndex = 1, length = normals.length; normalIndex < length; normalIndex += 3)
      normals[normalIndex] = 1.0f;

    // if (androidColor != -1) {
    // r = Color.red(androidColor);
    // g = Color.green(androidColor);
    // b = Color.blue(androidColor);
    // a = 0.5f;// (alpha == -1 ? Color.alpha(androidColor) : alpha);
    // } else {
    // r = 1.0f;
    // g = 1.0f;
    // b = 1.0f;
    // a = 0.5f;
    // }

    for (int i = 0; i < numColorCoords; i += 4) {
      colors[i] = 1.0f;
      colors[i + 1] = 1.0f;
      colors[i + 2] = 1.0f;
      colors[i + 3] = 0.75f;
    }

     setRenderObjectives(vertices, colors, normals, null);
  }

  @Override
  public void onPreRender() {
    GLES20.glLineWidth(thickness);
  }

  @Override
  public void setOpenGLPreRenderingSettings() {
    // TODO Auto-generated method stub

  }
}




Java Source Code List

.DataSourcesOverlay.java
.VisualizationOverlayItem.java
org.n52.geoar.AboutDialog.java
org.n52.geoar.DataSourceListAdapter.java
org.n52.geoar.GeoARActivity.java
org.n52.geoar.GeoARApplication.java
org.n52.geoar.ar.view.ARFragment.java
org.n52.geoar.ar.view.ARObject.java
org.n52.geoar.ar.view.ARView.java
org.n52.geoar.ar.view.DataSourceVisualizationHandler.java
org.n52.geoar.ar.view.IntroController.java
org.n52.geoar.ar.view.IntroViewer.java
org.n52.geoar.ar.view.gl.ARSurfaceViewRenderer.java
org.n52.geoar.ar.view.gl.ARSurfaceView.java
org.n52.geoar.ar.view.gl.GLESCamera.java
org.n52.geoar.ar.view.gl.MultisampleConfigs.java
org.n52.geoar.ar.view.gl.SurfaceTopology.java
org.n52.geoar.ar.view.overlay.ARCanvasSurfaceView.java
org.n52.geoar.ar.view.overlay.GUIDrawable.java
org.n52.geoar.ar.view.overlay.Radar.java
org.n52.geoar.exception.UnsupportedGeometryType.java
org.n52.geoar.map.view.DataSourceOverlayHandler.java
org.n52.geoar.map.view.GeoARMapView.java
org.n52.geoar.map.view.MapActivityContext.java
org.n52.geoar.map.view.MapFragment.java
org.n52.geoar.map.view.overlay.DataSourceOverlay.java
org.n52.geoar.map.view.overlay.DataSourcePointOverlay.java
org.n52.geoar.map.view.overlay.DataSourcePolygonOverlay.java
org.n52.geoar.map.view.overlay.DataSourcePolylineOverlay.java
org.n52.geoar.map.view.overlay.DataSourcesOverlay.java
org.n52.geoar.map.view.overlay.OverlayType.java
org.n52.geoar.map.view.overlay.PointOverlayType.java
org.n52.geoar.map.view.overlay.PolygonOverlayType.java
org.n52.geoar.map.view.overlay.PolylineOverlayType.java
org.n52.geoar.newdata.CheckList.java
org.n52.geoar.newdata.DataCache.java
org.n52.geoar.newdata.DataSourceHolder.java
org.n52.geoar.newdata.DataSourceInstanceHolder.java
org.n52.geoar.newdata.DataSourceInstanceSettingsDialogActivity.java
org.n52.geoar.newdata.InstalledPluginHolder.java
org.n52.geoar.newdata.PluginActivityContext.java
org.n52.geoar.newdata.PluginContext.java
org.n52.geoar.newdata.PluginDialogFragment.java
org.n52.geoar.newdata.PluginDownloadHolder.java
org.n52.geoar.newdata.PluginDownloader.java
org.n52.geoar.newdata.PluginFragment.java
org.n52.geoar.newdata.PluginGridAdapter.java
org.n52.geoar.newdata.PluginHolder.java
org.n52.geoar.newdata.PluginLoader.java
org.n52.geoar.newdata.PluginLogger.java
org.n52.geoar.newdata.PluginStateInputStream.java
org.n52.geoar.newdata.Tile.java
org.n52.geoar.settings.DateTimeSettingsViewField.java
org.n52.geoar.settings.DateUtils.java
org.n52.geoar.settings.NumberSettingsViewField.java
org.n52.geoar.settings.SettingsException.java
org.n52.geoar.settings.SettingsHelper.java
org.n52.geoar.settings.SettingsViewField.java
org.n52.geoar.settings.SettingsView.java
org.n52.geoar.settings.SpinnerSettingsViewField.java
org.n52.geoar.settings.StringSettingsViewField.java
org.n52.geoar.tracking.camera.CameraView.java
org.n52.geoar.tracking.camera.RealityCamera.java
org.n52.geoar.tracking.location.AdaptiveLowPassSensorBuffer.java
org.n52.geoar.tracking.location.LocationHandler.java
org.n52.geoar.tracking.location.LowPassSensorBuffer.java
org.n52.geoar.tracking.location.MeanSensorBuffer.java
org.n52.geoar.tracking.location.SensorBuffer.java
org.n52.geoar.view.InfoView.java
org.n52.geoar.view.geoar.CalibrationControlView.java
org.n52.geoar.view.geoar.Settings.java
org.n52.geoar.view.geoar.gl.mode.BilligerColorShader.java
org.n52.geoar.view.geoar.gl.mode.BilligerLightShader.java
org.n52.geoar.view.geoar.gl.mode.BilligerTextureShader.java
org.n52.geoar.view.geoar.gl.mode.BoundingBox.java
org.n52.geoar.view.geoar.gl.mode.FeatureShader.java
org.n52.geoar.view.geoar.gl.mode.PhongFeatureShader.java
org.n52.geoar.view.geoar.gl.mode.RenderFeature2.java
org.n52.geoar.view.geoar.gl.mode.Spatial.java
org.n52.geoar.view.geoar.gl.mode.TextureFeatureShader.java
org.n52.geoar.view.geoar.gl.mode.Texture.java
org.n52.geoar.view.geoar.gl.mode.features.CubeFeature2.java
org.n52.geoar.view.geoar.gl.mode.features.FlatCircleFeature.java
org.n52.geoar.view.geoar.gl.mode.features.HeightMapFeature.java
org.n52.geoar.view.geoar.gl.mode.features.NewGridFeature.java
org.n52.geoar.view.geoar.gl.mode.features.ReferencedGridFeature.java
org.n52.geoar.view.geoar.gl.mode.features.SphereFeature.java
org.n52.geoar.view.geoar.gl.mode.features.TriangleFeature.java