Uranium
Application Framework
UM.Math.Polygon.Polygon Class Reference

A class representing an immutable arbitrary 2-dimensional polygon. More...

Public Member Functions

def __init__ (self, points=None)
 
def __eq__ (self, other)
 
def __repr__ (self)
 Gives a debugging representation of the polygon. More...
 
bool isValid (self)
 
def getPoints (self)
 
Tuple[float, float] project (self, normal)
 Project this polygon on a line described by a normal. More...
 
"Polygon" translate (self, x=0, y=0)
 Moves the polygon by a fixed offset. More...
 
"Polygon" mirror (self, point_on_axis, axis_direction)
 Mirrors this polygon across the specified axis. More...
 
"Polygon" intersectionConvexHulls (self, "Polygon" other)
 Computes the intersection of the convex hulls of this and another polygon. More...
 
Optional[Tuple[float, float]] intersectsPolygon (self, "Polygon" other)
 Check to see whether this polygon intersects with another polygon. More...
 
"Polygon" getConvexHull (self)
 Calculate the convex hull around the set of points of this polygon. More...
 
"Polygon" getMinkowskiSum (self, "Polygon" other)
 Perform a Minkowski sum of this polygon with another polygon. More...
 
"Polygon" getMinkowskiHull (self, "Polygon" other)
 Create a Minkowski hull from this polygon and another polygon. More...
 
bool isInside (self, point)
 Whether the specified point is inside this polygon. More...
 

Static Public Member Functions

def approximatedCircle (radius)
 Return vertices from an approximate circle. More...
 

Detailed Description

A class representing an immutable arbitrary 2-dimensional polygon.

Member Function Documentation

◆ __repr__()

def UM.Math.Polygon.Polygon.__repr__ (   self)

Gives a debugging representation of the polygon.

This lists the polygon's coordinates, like so:: [[0,0], [1,3], [3,0]]

Returns
A representation of the polygon that is useful for debugging.

◆ approximatedCircle()

def UM.Math.Polygon.Polygon.approximatedCircle (   radius)
static

Return vertices from an approximate circle.

An octagon is returned, which comes close enough to a circle.

Parameters
radiusThe radius of the circle.
Returns
A polygon that approximates a circle.

◆ getConvexHull()

"Polygon" UM.Math.Polygon.Polygon.getConvexHull (   self)

Calculate the convex hull around the set of points of this polygon.

Returns
The convex hull around the points of this polygon.

◆ getMinkowskiHull()

"Polygon" UM.Math.Polygon.Polygon.getMinkowskiHull (   self,
"Polygon"  other 
)

Create a Minkowski hull from this polygon and another polygon.

The Minkowski hull is the convex hull around the Minkowski sum of this polygon with other.

Parameters
otherPolygon The Polygon to do a Minkowski addition with.
Returns
The convex hull around the Minkowski sum of this Polygon with other

◆ getMinkowskiSum()

"Polygon" UM.Math.Polygon.Polygon.getMinkowskiSum (   self,
"Polygon"  other 
)

Perform a Minkowski sum of this polygon with another polygon.

Parameters
otherThe polygon to perform a Minkowski sum with.
Returns
Polygon The Minkowski sum of this polygon with other.

◆ intersectionConvexHulls()

"Polygon" UM.Math.Polygon.Polygon.intersectionConvexHulls (   self,
"Polygon"  other 
)

Computes the intersection of the convex hulls of this and another polygon.

Parameters
otherThe other polygon to intersect convex hulls with.
Returns
The intersection of the two polygons' convex hulls.

◆ intersectsPolygon()

Optional[Tuple[float, float]] UM.Math.Polygon.Polygon.intersectsPolygon (   self,
"Polygon"  other 
)

Check to see whether this polygon intersects with another polygon.

Parameters
otherPolygon The polygon to check for intersection.
Returns
A tuple of the x and y distance of intersection, or None if no intersection occured.

◆ isInside()

bool UM.Math.Polygon.Polygon.isInside (   self,
  point 
)

Whether the specified point is inside this polygon.

If the point is exactly on the border or on a vector, it does not count as being inside the polygon.

Parameters
pointThe point to check of whether it is inside.
Returns
True if it is inside, or False otherwise.

◆ mirror()

"Polygon" UM.Math.Polygon.Polygon.mirror (   self,
  point_on_axis,
  axis_direction 
)

Mirrors this polygon across the specified axis.

Parameters
point_on_axisA point on the axis to mirror across.
axis_directionThe direction vector of the axis to mirror across.

◆ project()

Tuple[float, float] UM.Math.Polygon.Polygon.project (   self,
  normal 
)

Project this polygon on a line described by a normal.

Parameters
normalThe normal to project on.
Returns
A tuple describing the line segment of this Polygon projected on to the infinite line described by normal. The first element is the minimum value, the second the maximum.

◆ translate()

"Polygon" UM.Math.Polygon.Polygon.translate (   self,
  x = 0,
  y = 0 
)

Moves the polygon by a fixed offset.

Parameters
xThe distance to move along the X-axis.
yThe distance to move along the Y-axis.

The documentation for this class was generated from the following file: