aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/graph
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-05-06 14:39:17 +0200
committerSven Gothel <[email protected]>2011-05-06 14:39:17 +0200
commitd75835796900cac602f7e5789601ffba0a27efe2 (patch)
tree4331f4fa053f2f2ea02eee4c1974d7ea71689be0 /src/jogl/classes/jogamp/graph
parent59aa8737528743b83cf56b804c9d713bc325c97c (diff)
Graph: More std. functionality (equals, clone) / Better in-place transformation (cubic -> quadratic)
Impl. more of John Pritchard <[email protected]> proposal https://github.com/syntelos/jogl/commit/05a7ec92d30e1e688b1eb7cc317cad83a0e8fd60 +++ More std. functionality (equals, deep clone) of AABBox, Vertex, Outline and OutlineShape. Simplify Vertex: - Remove 2 component constructor - Add on-curve in Vertex.Factory / Constructor - Adding equals(Object) - Remove Comparable/compareTo, since we only can make an equals statement Outline/OutlineShape: Handle dirty flag for boundary (new set/remove operation) OutlineShape: Better in-place transformation (cubic -> quadratic)
Diffstat (limited to 'src/jogl/classes/jogamp/graph')
-rw-r--r--src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java35
-rw-r--r--src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java8
-rw-r--r--src/jogl/classes/jogamp/graph/geom/plane/Path2D.java2
3 files changed, 12 insertions, 33 deletions
diff --git a/src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java b/src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java
index 433019361..46d7fa947 100644
--- a/src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java
+++ b/src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java
@@ -81,43 +81,22 @@ public class GlyphShape {
if(!shape.getLastOutline().isEmpty()){
shape.addEmptyOutline();
}
- Vertex vert = vertexFactory().create(coords[0],coords[1]);
- vert.setOnCurve(true);
- addVertexToLastOutline(vert);
-
+ addVertexToLastOutline(vertexFactory().create(coords, 0, 2, true));
numVertices++;
}
else if(segmentType == PathIterator.SEG_LINETO){
- Vertex vert1 = vertexFactory().create(coords[0],coords[1]);
- vert1.setOnCurve(true);
- addVertexToLastOutline(vert1);
-
+ addVertexToLastOutline(vertexFactory().create(coords, 0, 2, true));
numVertices++;
}
else if(segmentType == PathIterator.SEG_QUADTO){
- Vertex vert1 = vertexFactory().create(coords[0],coords[1]);
- vert1.setOnCurve(false);
- addVertexToLastOutline(vert1);
-
- Vertex vert2 = vertexFactory().create(coords[2],coords[3]);
- vert2.setOnCurve(true);
- addVertexToLastOutline(vert2);
-
+ addVertexToLastOutline(vertexFactory().create(coords, 0, 2, false));
+ addVertexToLastOutline(vertexFactory().create(coords, 2, 2, true));
numVertices+=2;
}
else if(segmentType == PathIterator.SEG_CUBICTO){
- Vertex vert1 = vertexFactory().create(coords[0],coords[1]);
- vert1.setOnCurve(false);
- addVertexToLastOutline(vert1);
-
- Vertex vert2 = vertexFactory().create(coords[2],coords[3]);
- vert2.setOnCurve(false);
- addVertexToLastOutline(vert2);
-
- Vertex vert3 = vertexFactory().create(coords[4],coords[5]);
- vert3.setOnCurve(true);
- addVertexToLastOutline(vert3);
-
+ addVertexToLastOutline(vertexFactory().create(coords, 0, 2, false));
+ addVertexToLastOutline(vertexFactory().create(coords, 2, 2, false));
+ addVertexToLastOutline(vertexFactory().create(coords, 4, 2, true));
numVertices+=3;
}
else if(segmentType == PathIterator.SEG_CLOSE){
diff --git a/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java b/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java
index 79e842887..b7c7c19e2 100644
--- a/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java
+++ b/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java
@@ -409,7 +409,7 @@ public class AffineTransform implements Cloneable, Serializable {
float x = src.getX();
float y = src.getY();
- dst.setCoord(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12);
+ dst.setCoord(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12, 0f);
return dst;
}
@@ -422,7 +422,7 @@ public class AffineTransform implements Cloneable, Serializable {
if (dstPoint == null) {
throw new IllegalArgumentException("dst["+dstOff+"] is null");
}
- dstPoint.setCoord(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12);
+ dstPoint.setCoord(x * m00 + y * m01 + m02, x * m10 + y * m11 + m12, 0f);
dst[dstOff++] = dstPoint;
}
}
@@ -452,7 +452,7 @@ public class AffineTransform implements Cloneable, Serializable {
float x = src.getX();
float y = src.getY();
- dst.setCoord(x * m00 + y * m01, x * m10 + y * m11);
+ dst.setCoord(x * m00 + y * m01, x * m10 + y * m11, 0f);
return dst;
}
@@ -477,7 +477,7 @@ public class AffineTransform implements Cloneable, Serializable {
float x = src.getX() - m02;
float y = src.getY() - m12;
- dst.setCoord((x * m11 - y * m01) / det, (y * m00 - x * m10) / det);
+ dst.setCoord((x * m11 - y * m01) / det, (y * m00 - x * m10) / det, 0f);
return dst;
}
diff --git a/src/jogl/classes/jogamp/graph/geom/plane/Path2D.java b/src/jogl/classes/jogamp/graph/geom/plane/Path2D.java
index edeabaa40..da64fe4e4 100644
--- a/src/jogl/classes/jogamp/graph/geom/plane/Path2D.java
+++ b/src/jogl/classes/jogamp/graph/geom/plane/Path2D.java
@@ -315,7 +315,7 @@ public final class Path2D implements Cloneable {
j -= pointShift[type];
}
}
- return new SVertex(points[j], points[j + 1]);
+ return new SVertex(points[j], points[j + 1], 0f, true);
}
public void reset() {