aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/graph/geom
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/classes/com/jogamp/graph/geom')
-rw-r--r--src/jogl/classes/com/jogamp/graph/geom/AABBox.java51
1 files changed, 28 insertions, 23 deletions
diff --git a/src/jogl/classes/com/jogamp/graph/geom/AABBox.java b/src/jogl/classes/com/jogamp/graph/geom/AABBox.java
index 8a604eccd..7051e9110 100644
--- a/src/jogl/classes/com/jogamp/graph/geom/AABBox.java
+++ b/src/jogl/classes/com/jogamp/graph/geom/AABBox.java
@@ -36,14 +36,16 @@ import com.jogamp.graph.math.VectorUtil;
*
*/
public class AABBox {
- private float[] low = {Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE};
- private float[] high = {-1*Float.MAX_VALUE,-1*Float.MAX_VALUE,-1*Float.MAX_VALUE};
+ private float[] low = new float[3];
+ private float[] high = new float[3];
private float[] center = new float[3];
/** Create a Axis Aligned bounding box (AABBox)
* where the low and and high MAX float Values.
*/
- public AABBox() {}
+ public AABBox() {
+ reset();
+ }
/** Create an AABBox specifying the coordinates
* of the low and high
@@ -57,6 +59,7 @@ public class AABBox {
public AABBox(float lx, float ly, float lz,
float hx, float hy, float hz)
{
+ reset();
resize(lx, ly, lz);
resize(hx, hy, hz);
@@ -67,24 +70,31 @@ public class AABBox {
* @param low min xyz-coordinates
* @param high max xyz-coordinates
*/
- public AABBox(float[] low, float[] high)
- {
+ public AABBox(float[] low, float[] high) {
+ reset();
resize(low[0],low[1],low[2]);
resize(high[0],high[1],high[2]);
computeCenter();
}
+
+ /** resets this box to the inverse low/high, allowing the next {@link #resize(float, float, float)} command to hit. */
+ public void reset() {
+ setLow(Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE);
+ setHigh(-1*Float.MAX_VALUE,-1*Float.MAX_VALUE,-1*Float.MAX_VALUE);
+ center[0] = 0f;
+ center[1] = 0f;
+ center[2] = 0f;
+ }
/** Get the max xyz-coordinates
* @return a float array containing the max xyz coordinates
*/
- public float[] getHigh()
- {
+ public float[] getHigh() {
return high;
}
- private void setHigh(float hx, float hy, float hz)
- {
+ private void setHigh(float hx, float hy, float hz) {
this.high[0] = hx;
this.high[1] = hy;
this.high[2] = hz;
@@ -93,13 +103,11 @@ public class AABBox {
/** Get the min xyz-coordinates
* @return a float array containing the min xyz coordinates
*/
- public float[] getLow()
- {
+ public float[] getLow() {
return low;
}
- private void setLow(float lx, float ly, float lz)
- {
+ private void setLow(float lx, float ly, float lz) {
this.low[0] = lx;
this.low[1] = ly;
this.low[2] = lz;
@@ -108,8 +116,7 @@ public class AABBox {
/** Resize the AABBox to encapsulate another AABox
* @param newBox AABBox to be encapsulated in
*/
- public void resize(AABBox newBox)
- {
+ public void resize(AABBox newBox) {
float[] newLow = newBox.getLow();
float[] newHigh = newBox.getHigh();
@@ -132,8 +139,7 @@ public class AABBox {
computeCenter();
}
- private void computeCenter()
- {
+ private void computeCenter() {
center[0] = (high[0] + low[0])/2;
center[1] = (high[1] + low[1])/2;
center[2] = (high[2] + low[2])/2;
@@ -145,8 +151,7 @@ public class AABBox {
* @param y y-axis coordinate value
* @param z z-axis coordinate value
*/
- public void resize(float x, float y, float z)
- {
+ public void resize(float x, float y, float z) {
/** test low */
if (x < low[0])
low[0] = x;
@@ -173,7 +178,7 @@ public class AABBox {
* @return true if x belong to (low.x, high.x) and
* y belong to (low.y, high.y)
*/
- public boolean contains(float x, float y){
+ public boolean contains(float x, float y) {
if(x<low[0] || x>high[0]){
return false;
}
@@ -191,7 +196,7 @@ public class AABBox {
* @return true if x belong to (low.x, high.x) and
* y belong to (low.y, high.y) and z belong to (low.z, high.z)
*/
- public boolean contains(float x, float y, float z){
+ public boolean contains(float x, float y, float z) {
if(x<low[0] || x>high[0]){
return false;
}
@@ -236,7 +241,7 @@ public class AABBox {
* length of the vector between low and high.
* @return a float representing the size of the AABBox
*/
- public float getSize(){
+ public float getSize() {
return VectorUtil.computeLength(low, high);
}
@@ -288,7 +293,7 @@ public class AABBox {
public float getDepth() {
return high[2] - low[2];
}
- public AABBox clone(){
+ public AABBox clone() {
return new AABBox(this.low, this.high);
}