Android Open Source - geoar-app Bounding Box






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 ww  .  j  a v a2 s .  com
 * 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;

import java.nio.FloatBuffer;

/**
 * 
 * @author Arne de Wall
 *
 */
public class BoundingBox {
  
  private float[][] boundingPoints;
  
  public BoundingBox(float[] vertices){
    this.boundingPoints = new float[8][3];
    
    float[] min = { Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE };
    float[] max = { Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE };
    
    float[] vertex = new float[3];
    
    for(int i = 0; i < vertices.length; i+=3){
      vertex[0] = vertices[i];
      vertex[1] = vertices[i+1];
      vertex[2] = vertices[i+2];
      
      min[0] = Math.min(min[0], vertex[0]);
      max[0] = Math.max(max[0], vertex[0]);
      min[1] = Math.min(min[1], vertex[1]);
      max[1] = Math.max(max[1], vertex[1]);
      min[2] = Math.min(min[2], vertex[2]);
      max[2] = Math.max(max[2], vertex[2]);
    }
    
    boundingPoints[0] = new float[] { min[0], min[1], min[2] }; // -x,-y,-z
    boundingPoints[1] = new float[] { min[0], min[1], max[2] }; // -x,-y,z
    boundingPoints[2] = new float[] { max[0], min[1], max[2] }; // x,-y,z
    boundingPoints[3] = new float[] { max[0], min[1], min[2] }; // x,-y,-z

    boundingPoints[4] = new float[] { min[0], max[1], min[2] }; // -x, y, -z
    boundingPoints[5] = new float[] { min[0], max[1], max[2] }; // -x, y, z
    boundingPoints[6] = new float[] { max[0], max[1], max[2] }; // ...
    boundingPoints[7] = new float[] { max[0], max[1], min[2] };
  }

  @Deprecated
  private void generateBoundingBox() {
    // get vertices of geometry
    FloatBuffer vertices = null; // geometry.getVerticesBuffer();
    vertices.rewind(); // set position to zero

    float[] min = { Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE };
    float[] max = { Float.MIN_VALUE, Float.MIN_VALUE, Float.MIN_VALUE };

    float[] vertex = new float[3];

    while (vertices.hasRemaining()) {
      vertex[0] = vertices.get(); // x
      vertex[1] = vertices.get(); // y
      vertex[2] = vertices.get(); // z

      min[0] = Math.min(min[0], vertex[0]);
      max[0] = Math.max(max[0], vertex[0]);
      min[1] = Math.min(min[1], vertex[1]);
      max[1] = Math.max(max[1], vertex[1]);
      min[2] = Math.min(min[2], vertex[2]);
      max[2] = Math.max(max[2], vertex[2]);
    }

    boundingPoints[0] = new float[] { min[0], min[1], min[2] }; // -x,-y,-z
    boundingPoints[1] = new float[] { min[0], min[1], max[2] }; // -x,-y,z
    boundingPoints[2] = new float[] { max[0], min[1], max[2] }; // x,-y,z
    boundingPoints[3] = new float[] { max[0], min[1], min[2] }; // x,-y,-z

    boundingPoints[4] = new float[] { min[0], max[1], min[2] }; // -x, y, -z
    boundingPoints[5] = new float[] { min[0], max[1], max[2] }; // -x, y, z
    boundingPoints[6] = new float[] { max[0], max[1], max[2] }; // ...
    boundingPoints[7] = new float[] { max[0], max[1], min[2] };
  }

}




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