Class RMPathUtils
- java.lang.Object
-
- com.inductiveautomation.rm.graphics.RMPathUtils
-
public class RMPathUtils extends java.lang.Object
Some utility methods for RMPaths.
-
-
Field Summary
Fields Modifier and Type Field Description static int
JOIN_OP_ADD
static int
JOIN_OP_INTERSECT
static int
JOIN_OP_SUBTRACT
static int
JOIN_OP_XOR
-
Constructor Summary
Constructors Constructor Description RMPathUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static RMPath
appendOval(RMPath aPath, RMRect aRect, float startAngle, float sweep, boolean connect)
Adds elements describing an oval in the given rect to this path.static RMPath
appendShape(RMPath aPath, java.awt.Shape aShape)
Returns a new path from an AWT shape.static double
getDistance(RMPath aPath, RMPoint aPoint)
Returns shortest distance from any point in path to given point.static double
getDistanceSigned(RMPath aPath, RMPoint aPoint)
Returns shortest distance from any point in path to given point (negative means inside the path).static RMPath
getPathFlattened(RMPath aPath)
Returns a path with only moveto, lineto.static RMPath
getPathWithFlattendCubics(RMPath aPath)
Returns a copy of the path with cubics demoted to one or more quadratics.static boolean
hasCubics(RMPath aPath)
Returns whether the path has any cubic curves in it.static boolean
isPolygonal(RMPath aPath)
Returns whether path has any curve segments (QuadTo, CurveTo).static RMPath
join(java.util.List paths, int aJoinOp)
Returns the combined paths from given paths.static void
quadraticCurveTo(RMPath aPath, RMPoint cp1, RMPoint cp2, RMPoint aPoint)
This is effectively a curveTo but does it internally with one or more approximated quadratics.
-
-
-
Field Detail
-
JOIN_OP_ADD
public static final int JOIN_OP_ADD
- See Also:
- Constant Field Values
-
JOIN_OP_SUBTRACT
public static final int JOIN_OP_SUBTRACT
- See Also:
- Constant Field Values
-
JOIN_OP_INTERSECT
public static final int JOIN_OP_INTERSECT
- See Also:
- Constant Field Values
-
JOIN_OP_XOR
public static final int JOIN_OP_XOR
- See Also:
- Constant Field Values
-
-
Method Detail
-
appendShape
public static RMPath appendShape(RMPath aPath, java.awt.Shape aShape)
Returns a new path from an AWT shape.
-
appendOval
public static RMPath appendOval(RMPath aPath, RMRect aRect, float startAngle, float sweep, boolean connect)
Adds elements describing an oval in the given rect to this path.
-
isPolygonal
public static boolean isPolygonal(RMPath aPath)
Returns whether path has any curve segments (QuadTo, CurveTo).
-
hasCubics
public static boolean hasCubics(RMPath aPath)
Returns whether the path has any cubic curves in it.
-
getPathFlattened
public static RMPath getPathFlattened(RMPath aPath)
Returns a path with only moveto, lineto.
-
getPathWithFlattendCubics
public static RMPath getPathWithFlattendCubics(RMPath aPath)
Returns a copy of the path with cubics demoted to one or more quadratics.
-
quadraticCurveTo
public static void quadraticCurveTo(RMPath aPath, RMPoint cp1, RMPoint cp2, RMPoint aPoint)
This is effectively a curveTo but does it internally with one or more approximated quadratics. I found a C++ version of this on http://homepages.tig.com.au/~dkl/swf/ - Jeff Martin. It illustrates how to approximate 4-point cubic Beziers with 3-point quadratic Beziers. PostScript (and most apps) use cubics, Flash uses quadratics.
-
getDistance
public static double getDistance(RMPath aPath, RMPoint aPoint)
Returns shortest distance from any point in path to given point.
-
getDistanceSigned
public static double getDistanceSigned(RMPath aPath, RMPoint aPoint)
Returns shortest distance from any point in path to given point (negative means inside the path).
-
join
public static RMPath join(java.util.List paths, int aJoinOp)
Returns the combined paths from given paths.
-
-