Package org.djutils.draw.line
Class Polygon3d
java.lang.Object
org.djutils.draw.line.PolyLine3d
org.djutils.draw.line.Polygon3d
- All Implemented Interfaces:
Serializable
,Iterable<Point3d>
,Drawable<Point3d>
,Drawable3d
,PolyLine<PolyLine3d,
,Point3d, Ray3d, DirectedPoint3d, LineSegment3d> Project<Point3d>
Closed PolyLine3d. The actual closing point (which is the same as the starting point) is NOT included in the super
PolyLine3d. The constructors automatically remove the last point if it is a at the same location as the first point.
Copyright (c) 2020-2025 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUTILS License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.djutils.draw.line.PolyLine
PolyLine.TransitionFunction
-
Field Summary
Fields inherited from interface org.djutils.draw.line.PolyLine
DEFAULT_CIRCLE_PRECISION, DEFAULT_OFFSET_FILTER_RATIO, DEFAULT_OFFSET_MAXIMUM_FILTER_VALUE, DEFAULT_OFFSET_MINIMUM_FILTER_VALUE, DEFAULT_OFFSET_PRECISION, NO_FILTER
-
Constructor Summary
ConstructorsConstructorDescriptionPolygon3d
(double[] x, double[] y, double[] z) Construct a new Polygon3d.Polygon3d
(double epsilon, double[] x, double[] y, double[] z) Construct a new Polygon3d.Construct a new Polygon3d from an iterator that yields Point3d.Construct a new Polygon3d from a list of Point3d objects.Construct a new Polygon3d.Construct a new Polygon3d.Construct a new Polygon3d from an iterator that yields Point3d.Construct a new Polygon3d from a list of Point3d objects.Construct a new Polygon3d from an existing one.Construct a new Polygon3d.Construct a new Polygon3d. -
Method Summary
Modifier and TypeMethodDescription(package private) static double[]
fixClosingPoint
(double[] a, double[] b, double[] c) Ensure that the last elements in three arrays are is not equal to the first.double
Return the length of this line.getSegment
(int index) Extract one LineSegment of this PolyLine, or Polygon.project()
Project the object onto the z=0 plane.reverse()
Construct a new PolyLine with all points of this PolyLine in reverse order.final String
toString()
Produce a string describing the Drawable using default conversion for the (double) coordinate values.Produce a String describing the Drawable.Methods inherited from class org.djutils.draw.line.PolyLine3d
closestPointOnPolyLine, concatenate, concatenate, concatenate, equals, extract, get, getBounds, getLocation, getLocationExtended, getX, getY, getZ, hashCode, instantiate, iterator, iteratorToList, lengthAtIndex, makeArray, noiseFilteredLine, offsetLine, offsetLine, offsetLine, projectOrthogonal, projectOrthogonalExtended, projectOrthogonalFractional, projectOrthogonalFractionalExtended, size, transitionLine, truncate
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.djutils.draw.Drawable
getPointList, toString, toString
Methods inherited from interface org.djutils.draw.Drawable3d
getDimensions
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface org.djutils.draw.line.PolyLine
extractFractional, filterNearDuplicates, find, getFirst, getLast, getLocationFraction, getLocationFraction, getLocationFractionExtended, instantiate, offsetLine, offsetLine
-
Constructor Details
-
Polygon3d
public Polygon3d(double[] x, double[] y, double[] z) Construct a new Polygon3d.- Parameters:
x
- the x coordinates of the pointsy
- the y coordinates of the pointsz
- the z coordinates of the points- Throws:
IllegalArgumentException
- when any two successive points are equal, or when there are too few points
-
Polygon3d
public Polygon3d(double epsilon, double[] x, double[] y, double[] z) Construct a new Polygon3d.- Parameters:
epsilon
- minimum distance between points to be considered different (these will not be filtered out)x
- the x coordinates of the pointsy
- the y coordinates of the pointsz
- the z coordinates of the points- Throws:
IllegalArgumentException
- when any two successive points are equal, or when there are too few points
-
Polygon3d
Construct a new Polygon3d.- Parameters:
points
- array of Point3d objects.- Throws:
NullPointerException
- whenpoints
isnull
IllegalArgumentException
- whenpoints
is too short, or contains successive duplicate points
-
Polygon3d
Construct a new Polygon3d.- Parameters:
epsilon
- minimum distance between points to be considered different (these will not be filtered out)points
- array of Point3d objects.- Throws:
NullPointerException
- whenpoints
isnull
IllegalArgumentException
- whenpoints
is too short, or contains successive duplicate points
-
Polygon3d
Construct a new Polygon3d.- Parameters:
point1
- the first point of the new Polygon3dpoint2
- the second point of the new Polygon3dotherPoints
- all remaining points of the new Polygon3d (may be null)- Throws:
NullPointerException
- whenpoint1
orpoint2
isnull
, or contains anull
valueIllegalArgumentException
- whenpoint1
is equal to the last point ofotherPoints
, or any two successive points are equal
-
Polygon3d
Construct a new Polygon3d.- Parameters:
epsilon
- minimum distance between points to be considered different (these will not be filtered out)point1
- the first point of the new Polygon3dpoint2
- the second point of the new Polygon3dotherPoints
- all remaining points of the new Polygon3d (may be null)- Throws:
NullPointerException
- whenpoint1
orpoint2
isnull
, or contains anull
valueIllegalArgumentException
- whenpoint1
is equal to the last point ofotherPoints
, or any two successive points are equal
-
Polygon3d
Construct a new Polygon3d from a list of Point3d objects.- Parameters:
points
- the list of points- Throws:
NullPointerException
- whenpoints
isnull
IllegalArgumentException
- whenpoints
is too short, or the last two points are at the same location
-
Polygon3d
Construct a new Polygon3d from a list of Point3d objects.- Parameters:
epsilon
- minimum distance between points to be considered different (these will not be filtered out)points
- the list of points- Throws:
NullPointerException
- whenpoints
isnull
IllegalArgumentException
- whenpoints
is too short, or the last two points are at the same location
-
Polygon3d
Construct a new Polygon3d from an iterator that yields Point3d.- Parameters:
iterator
- the iterator
-
Polygon3d
Construct a new Polygon3d from an iterator that yields Point3d.- Parameters:
epsilon
- minimum distance between points to be considered different (these will not be filtered out)iterator
- the iterator
-
Polygon3d
Construct a new Polygon3d from an existing one. This constructor is primarily intended for use in extending classes.- Parameters:
polygon
- the existing Polygon3d- Throws:
NullPointerException
- whenpolygon
isnull
-
-
Method Details
-
fixClosingPoint
static double[] fixClosingPoint(double[] a, double[] b, double[] c) Ensure that the last elements in three arrays are is not equal to the first. Remove the last element if necessary.- Parameters:
a
- the a arrayb
- the b arrayc
- the c array- Returns:
- the
a
array (possibly a copy with the last element removed)
-
getLength
public double getLength()Description copied from interface:PolyLine
Return the length of this line. This is not the number of points; it is the sum of the lengths of the segments.- Specified by:
getLength
in interfacePolyLine<PolyLine3d,
Point3d, Ray3d, DirectedPoint3d, LineSegment3d> - Overrides:
getLength
in classPolyLine3d
- Returns:
- the length of this line
-
getSegment
Description copied from interface:PolyLine
Extract one LineSegment of this PolyLine, or Polygon.- Specified by:
getSegment
in interfacePolyLine<PolyLine3d,
Point3d, Ray3d, DirectedPoint3d, LineSegment3d> - Overrides:
getSegment
in classPolyLine3d
- Parameters:
index
- the rank number of the segment; must be in range 0..Size() - 2 for PolyLine, or 0.. Size() - 1 for Polygon.- Returns:
- the LineSegment that connects point index to point index + 1
-
project
Description copied from interface:Drawable3d
Project the object onto the z=0 plane.- Specified by:
project
in interfaceDrawable3d
- Overrides:
project
in classPolyLine3d
- Returns:
- the projected object
-
reverse
Description copied from interface:PolyLine
Construct a new PolyLine with all points of this PolyLine in reverse order.- Returns:
- the new
PolyLine
-
toString
Description copied from interface:Drawable
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 interfaceDrawable<Point3d>
- Overrides:
toString
in classPolyLine3d
- Returns:
- a string describing the Drawable
-
toString
Description copied from interface:Drawable
Produce a String describing the Drawable.- Specified by:
toString
in interfaceDrawable<Point3d>
- Overrides:
toString
in classPolyLine3d
- Parameters:
doubleFormat
- a format string (something like "%6.3f") which will be used to render every coordinate value)doNotIncludeClassName
- iftrue
; the output oftoString
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:
- textual representation of the Drawable
-