Class Polygon3d

    • Constructor Detail

      • Polygon3d

        public Polygon3d​(double[] x,
                         double[] y,
                         double[] z)
                  throws DrawRuntimeException
        Construct a new Polygon3d.
        Parameters:
        x - double[]; the x coordinates of the points
        y - double[]; the y coordinates of the points
        z - double[]; the z coordinates of the points
        Throws:
        DrawRuntimeException - when any two successive points are equal, or when there are too few points
      • Polygon3d

        public Polygon3d​(Point3d point1,
                         Point3d point2,
                         Point3d... otherPoints)
                  throws NullPointerException,
                         DrawRuntimeException
        Construct a new Polygon3d.
        Parameters:
        point1 - Point3d; the first point of the new Polygon3d
        point2 - Point3d; the second point of the new Polygon3d
        otherPoints - Point3d[]; all remaining points of the new Polygon3d (may be null)
        Throws:
        NullPointerException - when point1 or point2 is null
        DrawRuntimeException - when point1 is equal to the last point of otherPoints, or any two successive points are equal
      • Polygon3d

        public Polygon3d​(Iterator<Point3d> iterator)
        Construct a new Polygon3d from an iterator that yields Point3d.
        Parameters:
        iterator - Iterator<Point3d>; the iterator
      • Polygon3d

        public Polygon3d​(boolean filterDuplicates,
                         Point3d... points)
                  throws DrawRuntimeException
        Create a new Polygon3d, optionally filtering out repeating successive points.
        Parameters:
        filterDuplicates - boolean; if true; filter out successive repeated points; otherwise do not filter
        points - Point3d...; the coordinates of the polygon as Point3d
        Throws:
        DrawRuntimeException - when number of points < 2
      • Polygon3d

        public Polygon3d​(boolean filterDuplicates,
                         List<Point3d> pointList)
                  throws DrawRuntimeException
        Create a new Polygon3d, optionally filtering out repeating successive points.
        Parameters:
        filterDuplicates - boolean; if true; filter out successive repeated points; otherwise do not filter
        pointList - List<Point3d>; list of the coordinates of the line as Point3d; any duplicate points in this list are removed (this method may modify the provided list)
        Throws:
        DrawRuntimeException - when number of non-equal points < 2
    • Method Detail

      • fixClosingPointX

        static double[] fixClosingPointX​(double[] x,
                                         double[] y,
                                         double[] z)
        Ensure that the last point is not equal to the first. Remove the last point if necessary.
        Parameters:
        x - double[]; the x coordinates of the points
        y - double[]; the y coordinates of the points
        z - double[]; the z coordinates of the points
        Returns:
        double[]; the y coordinates of the points (possibly a copy with the last element removed)
      • fixClosingPointY

        static double[] fixClosingPointY​(double[] x,
                                         double[] y,
                                         double[] z)
        Ensure that the last point is not equal to the first. Remove the last point if necessary.
        Parameters:
        x - double[]; the x coordinates of the points
        y - double[]; the y coordinates of the points
        z - double[]; the z coordinates of the points
        Returns:
        double[]; the y coordinates of the points (possibly a copy with the last element removed)
      • fixClosingPointZ

        static double[] fixClosingPointZ​(double[] x,
                                         double[] y,
                                         double[] z)
        Ensure that the last point is not equal to the first. Remove the last point if necessary.
        Parameters:
        x - double[]; the x coordinates of the points
        y - double[]; the y coordinates of the points
        z - double[]; the z coordinates of the points
        Returns:
        double[]; the y coordinates of the points (possibly a copy with the last element removed)
      • getSegment

        public LineSegment3d getSegment​(int index)
        Extract one LineSegment of this PolyLine, or Polygon.
        Specified by:
        getSegment in interface PolyLine<PolyLine3d,​Point3d,​Ray3d,​LineSegment3d>
        Overrides:
        getSegment in class PolyLine3d
        Parameters:
        index - int; the rank number of the segment; must be in range 0..Size() - 2 for PolyLine, or 0.. Size() - 1 for Polygon.
        Returns:
        LS; the LineSegment that connects point index to point index + 1
      • project

        public Polygon2d project()
                          throws DrawRuntimeException
        Project the object onto the z=0 plane.
        Specified by:
        project in interface Drawable3d
        Overrides:
        project in class PolyLine3d
        Returns:
        Drawable2d; the projected object
        Throws:
        DrawRuntimeException - when projecting onto the z=0 plane results in an invalid object. E.g. a Line3d that consists of points that all have the exact same x and y coordinates cannot be a line after projecting on the z=0 plane.
      • reverse

        public Polygon3d reverse()
        Construct a new PolyLine with all points of this PolyLine in reverse order.
        Returns:
        L; the new PolyLine
      • toString

        public final String toString()
        Produce a string describing the Drawable using default conversion for the (double) coordinate values. Regrettably, it is not allowed to provide a default implementation here.
        Specified by:
        toString in interface Drawable<Point3d>
        Overrides:
        toString in class PolyLine3d
        Returns:
        String; a string describing the Drawable
      • toString

        public String toString​(String doubleFormat,
                               boolean doNotIncludeClassName)
        Produce a String describing the Drawable.
        Specified by:
        toString in interface Drawable<Point3d>
        Overrides:
        toString in class PolyLine3d
        Parameters:
        doubleFormat - String; a format string (something like "%6.3f") which will be used to render every coordinate value)
        doNotIncludeClassName - boolean; if true; the output of toString is not prefixed by the class name. This is useful for concatenating the textual representation of lots of Drawables (e.g. an array, or a List).
        Returns:
        String; textual representation of the Drawable