aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-03-29 15:05:49 +0200
committerSven Gothel <[email protected]>2011-03-29 15:05:49 +0200
commit5f0293b84d0146d9e750ea7e75caaa101ae3b3c3 (patch)
treee95f0c919a0a385cf70ef6846295a83705c0af60
parent4ed4dc3847d8d53a3424011f3d56b00ef246a81e (diff)
Refactoring for public: Remove Line ; public/private API cleanup
-rwxr-xr-xsrc/com/jogamp/graph/curve/OutlineShape.java28
-rw-r--r--src/com/jogamp/graph/curve/tess/CDTriangulator2D.java7
-rw-r--r--src/com/jogamp/graph/geom/AABBox.java12
-rw-r--r--src/com/jogamp/graph/geom/Line.java61
-rw-r--r--src/com/jogamp/graph/geom/Outline.java4
-rw-r--r--src/com/jogamp/graph/geom/opengl/SVertex.java4
-rwxr-xr-xsrc/com/jogamp/graph/math/VectorUtil.java (renamed from src/jogamp/graph/math/VectorFloatUtil.java)8
-rw-r--r--src/jogamp/graph/curve/tess/Loop.java22
-rw-r--r--src/jogamp/graph/curve/text/GlyphShape.java10
9 files changed, 33 insertions, 123 deletions
diff --git a/src/com/jogamp/graph/curve/OutlineShape.java b/src/com/jogamp/graph/curve/OutlineShape.java
index d7b941282..9373808f1 100755
--- a/src/com/jogamp/graph/curve/OutlineShape.java
+++ b/src/com/jogamp/graph/curve/OutlineShape.java
@@ -30,12 +30,10 @@ package com.jogamp.graph.curve;
import java.util.ArrayList;
import java.util.Collections;
-import jogamp.graph.math.VectorFloatUtil;
-
import com.jogamp.graph.geom.Outline;
-import com.jogamp.graph.geom.Line;
import com.jogamp.graph.geom.Triangle;
import com.jogamp.graph.geom.Vertex;
+import com.jogamp.graph.math.VectorUtil;
import com.jogamp.graph.curve.tess.CDTriangulator2D;
@@ -153,7 +151,7 @@ public class OutlineShape {
if(!(currentVertex.isOnCurve()) && !(nextVertex.isOnCurve())) {
newOutline.addVertex(currentVertex);
- float[] newCoords = VectorFloatUtil.mid(currentVertex.getCoord(), nextVertex.getCoord());
+ float[] newCoords = VectorUtil.mid(currentVertex.getCoord(), nextVertex.getCoord());
newOutline.addVertex(pointFactory, newCoords, 0, 3, true);
}
else {
@@ -188,28 +186,6 @@ public class OutlineShape {
}
- /** Generates the lines the define the noncurved
- * parts of this graph
- * @return arraylist of lines
- */
- public ArrayList<Line<Vertex>> getLines(){
- ArrayList<Line<Vertex>> lines = new ArrayList<Line<Vertex>>();
- for(Outline<Vertex> outline:outlines){
- ArrayList<Vertex> outVertices = outline.getVertices();
- int size = outVertices.size();
- for(int i=0; i < size; i++) {
- Vertex currentVertex = outVertices.get(i);
- if(currentVertex.isOnCurve()) {
- Vertex v2 = outVertices.get((i+1)%size);
- if(v2.isOnCurve()){
- lines.add(new Line<Vertex>(currentVertex, v2));
- }
- }
- }
- }
- return lines;
- }
-
/** Triangluate the graph object
* @param sharpness sharpness of the curved regions default = 0.5
*/
diff --git a/src/com/jogamp/graph/curve/tess/CDTriangulator2D.java b/src/com/jogamp/graph/curve/tess/CDTriangulator2D.java
index 2a1b52b1c..0a7cf08d4 100644
--- a/src/com/jogamp/graph/curve/tess/CDTriangulator2D.java
+++ b/src/com/jogamp/graph/curve/tess/CDTriangulator2D.java
@@ -33,11 +33,12 @@ import java.util.ArrayList;
import jogamp.graph.curve.tess.GraphOutline;
import jogamp.graph.curve.tess.GraphVertex;
import jogamp.graph.curve.tess.Loop;
-import jogamp.graph.math.VectorFloatUtil;
import com.jogamp.graph.geom.Outline;
import com.jogamp.graph.geom.Triangle;
import com.jogamp.graph.geom.Vertex;
+import com.jogamp.graph.math.VectorUtil;
+
import jogamp.opengl.Debug;
/** Constrained Delaunay Triangulation
@@ -94,7 +95,7 @@ public class CDTriangulator2D <T extends Vertex> {
GraphOutline<T> outline = new GraphOutline<T>(polyline);
GraphOutline<T> innerPoly = extractBoundaryTriangles(outline, false);
vertices.addAll(polyline.getVertices());
- loop = new Loop<T>(innerPoly, VectorFloatUtil.CCW);
+ loop = new Loop<T>(innerPoly, VectorUtil.CCW);
loops.add(loop);
}
else {
@@ -168,7 +169,7 @@ public class CDTriangulator2D <T extends Vertex> {
Triangle<T> t= null;
boolean holeLike = false;
- if(VectorFloatUtil.ccw(v0,v1,v2)){
+ if(VectorUtil.ccw(v0,v1,v2)){
t = new Triangle<T>(v0, v1, v2);
}
else {
diff --git a/src/com/jogamp/graph/geom/AABBox.java b/src/com/jogamp/graph/geom/AABBox.java
index 2e99daa83..a2566b91f 100644
--- a/src/com/jogamp/graph/geom/AABBox.java
+++ b/src/com/jogamp/graph/geom/AABBox.java
@@ -27,7 +27,7 @@
*/
package com.jogamp.graph.geom;
-import jogamp.graph.math.VectorFloatUtil;
+import com.jogamp.graph.math.VectorUtil;
/**
* Axis Aligned Bounding Box.
@@ -186,7 +186,7 @@ public class AABBox {
public float getSize(){
- return VectorFloatUtil.computeLength(low, high);
+ return VectorUtil.computeLength(low, high);
}
public float[] getCenter() {
@@ -211,17 +211,17 @@ public class AABBox {
diffH[1] = high[1] - center[1];
diffH[2] = high[2] - center[2];
- diffH = VectorFloatUtil.scale(diffH, size);
+ diffH = VectorUtil.scale(diffH, size);
float[] diffL = new float[3];
diffL[0] = low[0] - center[0];
diffL[1] = low[1] - center[1];
diffL[2] = low[2] - center[2];
- diffL = VectorFloatUtil.scale(diffL, size);
+ diffL = VectorUtil.scale(diffL, size);
- high = VectorFloatUtil.vectorAdd(center, diffH);
- low = VectorFloatUtil.vectorAdd(center, diffL);
+ high = VectorUtil.vectorAdd(center, diffH);
+ low = VectorUtil.vectorAdd(center, diffL);
}
public float getX() {
diff --git a/src/com/jogamp/graph/geom/Line.java b/src/com/jogamp/graph/geom/Line.java
deleted file mode 100644
index 92d1b007f..000000000
--- a/src/com/jogamp/graph/geom/Line.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Copyright 2010 JogAmp Community. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of JogAmp Community.
- */
-package com.jogamp.graph.geom;
-
-public class Line <T extends Vertex> {
- private T v1;
- private T v2;
-
- public Line(T v1, T v2) {
- this.v1 = v1;
- this.v2 = v2;
- }
-
- public T getV1() {
- return v1;
- }
-
- public void setV1(T v1) {
- this.v1 = v1;
- }
-
- public T getV2() {
- return v2;
- }
-
- public void setV2(T v2) {
- this.v2 = v2;
- }
- public boolean isEqual(T t1, T t2){
- if((t1 == v1 || t1 == v2)
- &&(t2 == v2 || t2 == v1)){
- return true;
- }
- return false;
- }
-}
diff --git a/src/com/jogamp/graph/geom/Outline.java b/src/com/jogamp/graph/geom/Outline.java
index d9bde4177..4e588623e 100644
--- a/src/com/jogamp/graph/geom/Outline.java
+++ b/src/com/jogamp/graph/geom/Outline.java
@@ -30,8 +30,8 @@ package com.jogamp.graph.geom;
import java.util.ArrayList;
import com.jogamp.graph.geom.Vertex;
+import com.jogamp.graph.math.VectorUtil;
-import jogamp.graph.math.VectorFloatUtil;
/** Define a single continuous stroke by control vertices.
@@ -124,7 +124,7 @@ public class Outline<T extends Vertex> implements Comparable<Outline<T>>{
if(closed){
T first = vertices.get(0);
T last = getLastVertex();
- if(!VectorFloatUtil.checkEquality(first.getCoord(), last.getCoord())){
+ if(!VectorUtil.checkEquality(first.getCoord(), last.getCoord())){
@SuppressWarnings("unchecked")
T v = (T) first.clone();
vertices.add(v);
diff --git a/src/com/jogamp/graph/geom/opengl/SVertex.java b/src/com/jogamp/graph/geom/opengl/SVertex.java
index 86b95854d..076ac7456 100644
--- a/src/com/jogamp/graph/geom/opengl/SVertex.java
+++ b/src/com/jogamp/graph/geom/opengl/SVertex.java
@@ -27,9 +27,9 @@
*/
package com.jogamp.graph.geom.opengl;
-import jogamp.graph.math.VectorFloatUtil;
import com.jogamp.graph.geom.Vertex;
+import com.jogamp.graph.math.VectorUtil;
public class SVertex implements Vertex {
private int id = Integer.MAX_VALUE;
@@ -151,7 +151,7 @@ public class SVertex implements Vertex {
}
public int compareTo(Vertex p) {
- if(VectorFloatUtil.checkEquality(coord, p.getCoord())) {
+ if(VectorUtil.checkEquality(coord, p.getCoord())) {
return 0;
}
return -1;
diff --git a/src/jogamp/graph/math/VectorFloatUtil.java b/src/com/jogamp/graph/math/VectorUtil.java
index b2b9a8ee8..cca9a454f 100755
--- a/src/jogamp/graph/math/VectorFloatUtil.java
+++ b/src/com/jogamp/graph/math/VectorUtil.java
@@ -25,13 +25,15 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of JogAmp Community.
*/
-package jogamp.graph.math;
+package com.jogamp.graph.math;
import java.util.ArrayList;
+import jogamp.graph.math.MathFloat;
+
import com.jogamp.graph.geom.Vertex;
-public class VectorFloatUtil {
+public class VectorUtil {
public static final int CW = -1;
public static final int CCW = 1;
@@ -222,7 +224,7 @@ public class VectorFloatUtil {
*/
public static boolean checkCollinear(float[] v1, float[] v2, float[] v3)
{
- return (computeDeterminant(v1, v2, v3) == VectorFloatUtil.COLLINEAR);
+ return (computeDeterminant(v1, v2, v3) == VectorUtil.COLLINEAR);
}
/** Compute Vector
diff --git a/src/jogamp/graph/curve/tess/Loop.java b/src/jogamp/graph/curve/tess/Loop.java
index e4553968b..80b96b939 100644
--- a/src/jogamp/graph/curve/tess/Loop.java
+++ b/src/jogamp/graph/curve/tess/Loop.java
@@ -29,11 +29,11 @@ package jogamp.graph.curve.tess;
import java.util.ArrayList;
-import jogamp.graph.math.VectorFloatUtil;
import com.jogamp.graph.geom.AABBox;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Triangle;
+import com.jogamp.graph.math.VectorUtil;
public class Loop <T extends Vertex> {
private HEdge<T> root = null;
@@ -103,9 +103,9 @@ public class Loop <T extends Vertex> {
if(vertices.size()<3) {
throw new IllegalArgumentException("outline's vertices < 3: " + vertices.size());
}
- boolean isCCW = VectorFloatUtil.ccw(vertices.get(0).getPoint(), vertices.get(1).getPoint(),
+ boolean isCCW = VectorUtil.ccw(vertices.get(0).getPoint(), vertices.get(1).getPoint(),
vertices.get(2).getPoint());
- boolean invert = isCCW && (direction == VectorFloatUtil.CW);
+ boolean invert = isCCW && (direction == VectorUtil.CW);
HEdge<T> firstEdge = null;
HEdge<T> lastEdge = null;
@@ -160,7 +160,7 @@ public class Loop <T extends Vertex> {
public void addConstraintCurve(GraphOutline<T> polyline) {
// GraphOutline outline = new GraphOutline(polyline);
/**needed to generate vertex references.*/
- initFromPolyline(polyline, VectorFloatUtil.CW);
+ initFromPolyline(polyline, VectorUtil.CW);
GraphVertex<T> v3 = locateClosestVertex(polyline);
HEdge<T> v3Edge = v3.findBoundEdge();
@@ -199,12 +199,12 @@ public class Loop <T extends Vertex> {
GraphVertex<T> v = initVertices.get(i);
GraphVertex<T> nextV = initVertices.get(i+1);
for(GraphVertex<T> cand:vertices){
- float distance = VectorFloatUtil.computeLength(v.getCoord(), cand.getCoord());
+ float distance = VectorUtil.computeLength(v.getCoord(), cand.getCoord());
if(distance < minDistance){
for (GraphVertex<T> vert:vertices){
if(vert == v || vert == nextV || vert == cand)
continue;
- inValid = VectorFloatUtil.inCircle(v.getPoint(), nextV.getPoint(),
+ inValid = VectorUtil.inCircle(v.getPoint(), nextV.getPoint(),
cand.getPoint(), vert.getPoint());
if(inValid){
break;
@@ -230,7 +230,7 @@ public class Loop <T extends Vertex> {
private HEdge<T> findClosestValidNeighbor(HEdge<T> edge, boolean delaunay) {
HEdge<T> next = root.getNext();
- if(!VectorFloatUtil.ccw(root.getGraphPoint().getPoint(), next.getGraphPoint().getPoint(),
+ if(!VectorUtil.ccw(root.getGraphPoint().getPoint(), next.getGraphPoint().getPoint(),
edge.getGraphPoint().getPoint())){
return null;
}
@@ -248,7 +248,7 @@ public class Loop <T extends Vertex> {
e = e.getNext();
continue;
}
- inValid = VectorFloatUtil.inCircle(root.getGraphPoint().getPoint(), next.getGraphPoint().getPoint(),
+ inValid = VectorUtil.inCircle(root.getGraphPoint().getPoint(), next.getGraphPoint().getPoint(),
cand, e.getGraphPoint().getPoint());
if(inValid){
break;
@@ -339,7 +339,7 @@ public class Loop <T extends Vertex> {
float[] p0p1 = new float[]{vert1.getX() - vertex.getX(), vert1.getY() - vertex.getY(),
vert1.getZ() - vertex.getZ()};
- float dotD1D0 = VectorFloatUtil.dot(prepD1, d0);
+ float dotD1D0 = VectorUtil.dot(prepD1, d0);
if(dotD1D0 == 0){
/** ray parallel to segment */
current = next;
@@ -347,8 +347,8 @@ public class Loop <T extends Vertex> {
continue;
}
- float s = VectorFloatUtil.dot(prepD1,p0p1)/dotD1D0;
- float t = VectorFloatUtil.dot(prepD0,p0p1)/dotD1D0;
+ float s = VectorUtil.dot(prepD1,p0p1)/dotD1D0;
+ float t = VectorUtil.dot(prepD0,p0p1)/dotD1D0;
if(s >= 0 && t >= 0 && t<= 1){
hits++;
diff --git a/src/jogamp/graph/curve/text/GlyphShape.java b/src/jogamp/graph/curve/text/GlyphShape.java
index 78ae7396c..712633f4b 100644
--- a/src/jogamp/graph/curve/text/GlyphShape.java
+++ b/src/jogamp/graph/curve/text/GlyphShape.java
@@ -31,7 +31,6 @@ import java.util.ArrayList;
import jogamp.graph.geom.plane.PathIterator;
-import com.jogamp.graph.geom.Line;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Triangle;
@@ -158,12 +157,5 @@ public class GlyphShape {
*/
public ArrayList<Vertex> getVertices(){
return shape.getVertices();
- }
-
- /** Get the list of AA lines defined by this object
- * @return arraylist of lines
- */
- public ArrayList<Line<Vertex>> getLines(){
- return shape.getLines();
- }
+ }
}