Class RMPathUtils


  • public class RMPathUtils
    extends java.lang.Object
    Some utility methods for RMPaths.
    • 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 isClosed​(RMPath aPath)
      Returns whether given path has any open subpaths.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RMPathUtils

        public RMPathUtils()
    • 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.
      • isClosed

        public static boolean isClosed​(RMPath aPath)
        Returns whether given path has any open subpaths.
      • 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.