diff options
-rwxr-xr-x | src/com/jogamp/graph/curve/OutlineShape.java | 28 | ||||
-rw-r--r-- | src/com/jogamp/graph/curve/tess/CDTriangulator2D.java | 7 | ||||
-rw-r--r-- | src/com/jogamp/graph/geom/AABBox.java | 12 | ||||
-rw-r--r-- | src/com/jogamp/graph/geom/Line.java | 61 | ||||
-rw-r--r-- | src/com/jogamp/graph/geom/Outline.java | 4 | ||||
-rw-r--r-- | src/com/jogamp/graph/geom/opengl/SVertex.java | 4 | ||||
-rwxr-xr-x | src/com/jogamp/graph/math/VectorUtil.java (renamed from src/jogamp/graph/math/VectorFloatUtil.java) | 8 | ||||
-rw-r--r-- | src/jogamp/graph/curve/tess/Loop.java | 22 | ||||
-rw-r--r-- | src/jogamp/graph/curve/text/GlyphShape.java | 10 |
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(); - } + } } |