Geometric Objects¶
Geometrical Objects in Two Dimensions¶
-
class
Line2
¶ -
class
Line2
(from, to) Parametric line in two dimensions as defined by an origin and a normalized direction vector. The first constructor creates a line with origin (0,0) and direction along the x axis. The second signature creates a line originating from from and pointing towards to.
-
At
(t)¶ Returns the point on the line at (signed) distance t from origin.
Parameters: t (float) – free parameter Return type: Vec2
-
GetDirection
()¶ Returns the normalized direction vector. Also available as
direction
.Return type: Vec2
-
direction
¶
-
origin
¶
-
-
class
Rectangle2
¶ -
class
Rectangle2
(top_left, bottom_right) Axis aligned rectangle. The first signature creates a rectangle with top-left corner (-1, -1) and bottom-right corner (1, 1), wheras the second method allows to set the top-left and bottom-right corners directly.
Parameters: -
width
¶ Type: float
-
height
¶ Type: float
-
SetStart
(top_left)¶ Set top-left corner, leaving the bottom-right corner untouched.
-
SetEnd
(bottom_right)¶ Set the bottom-right corner, leaving the top-left corner untouched.
-
-
class
Circle2
¶ -
class
Circle2
(circle) -
class
Circle2
(center, radius) The first signature creates a circle centered at (0, 0) and radius 1.0. The second signature creates a circle with the same paramters as circle. The third signature creates a new circle with given center and radius.
-
SetRadius
(radius)¶ Set radius of circle
Parameters: center – The new radius
-
GetCenter
()¶ Returns the center of the circle
-
GetRadius
()¶ Returns the radius of the circle
-
GetArea
()¶ Returns the area of the circle
-
GetCircumference
()¶ Returns the circumference of the circle
-
-
class
Ellipse2
¶ -
class
Ellipse2
(center, a, b, gamma) An ellipse is defined by a center, two principal axis and gamma that defines the angle between the first principal axis an the x-axis.
-
At
(t)¶ ?
-
AtAngle
(angle)¶ ?
-
GetBoundingBox
()¶ Returns the bounding rectangle (axis-aligned) of the ellipse
Return type: Rectangle2
-
GetA
()¶ Returns the first principal-axis
-
GetB
()¶ Returns the second principal-axis
-
GetGamma
()¶ Returns the angle of the first principal axis to the x-axis
-
GetArea
()¶ Returns the area of the ellipse
-
GetOrigin
()¶ Returns the center of the ellipse
-
SetA
(a)¶ Set the length of the first principal axis
-
SetB
(b)¶ Set the length of the second principal axis
-
SetGamma
(gamma)¶ Set the angle of the first principal axis to the x-axis
-
SetOrigin
(ori)¶ Set the center of the ellipse
-
Geometrical Objects in Three Dimensions¶
-
class
Line3
¶ -
class
Line3
(from, to) Parametric line in three dimensions as defined by an origin and a normalized direction vector. The first constructor creates a line with origin (0,0) and direction along the x axis. The second signature creates a line originating from from and pointing towards to.
-
At
(t)¶ Returns the point on the line at (signed) distance t from origin.
Parameters: t (float) – free parameter Return type: Vec3
-
-
class
Plane
¶ -
class
Plane
(p1, p2, p3) -
class
Plane
(x, y, z, p) -
class
Plane
(line, point) -
class
Plane
(point, normal) A plane in 3d-space. The plane can be constructed by either passing in 3 points (p1, p2, p3), a normal and a point, the four parameters that define the implicit plane equation (x, y, z, p) or a line and a point.
-
GetP
()¶ Returns the plane offset, i.e. the projection of any point on the plane onto the normal. Also available as
p
.Return type: float
-
p
¶ Type: float
-
-
class
Sphere
¶ -
class
Sphere
(center, radius) Represents a sphere in 3d space. The first constructor creates a sphere with radius 1, centered at (0, 0, 0), the second allows you to set the radius and center directly.
Parameters: - center (
Vec3
) – The center - radius (float) – The radius
-
radius
¶ The radius of the sphere. Read-write. Also available as
GetRadius()
,SetRadius()
.Type: float
-
origin
¶ The center of the sphere. Read-write. Also available as
GetOrigin()
,SetOrigin()
.Type: Vec3
- center (
-
class
AlignedCuboid
(min, max)¶ Axis aligned cuboid is a cuboid whose axes are aligned to the x-, y-, and z- axes of the coordinate system. For arbitrarily oriented bounding cuboid class, see
Cuboid
.
-
class
CuboidAxis
¶ -
class
CuboidAxis
(dir, half_extent) A cuboid axis is defined by a half-extent, and a direction vector. This class is used in together with the
Cuboid
class.Parameters: - dir (
Vec3
) – Direction vector, will be normalized - half_extent (float) – The half extent
-
vector
¶ The normalized direction vector of the cuboid axis. Also available as
GetVector()
Type: Vec3
-
half_extent
¶ The half extent of the cuboid axis is the magnitude of the cuboid axis measured from the center to the corner. Also available as
GetHalfExtent()
Type: float
-
extent
¶ The extent of the cuboid axis. This value is always twice the
half_extent
. Read-only. Also available asGetExtent()
.Type: float
-
GetHalfExtent
()¶ See
half_extent
- dir (
-
class
Cuboid
(center, axis_a, axis_b, axis_c)¶ An arbitrarily oriented cuboid defined by a center and 3 axis. The 3 cuboid axis are stored in the order they are passed to the constructor. This means, that there is no guarantee that the 3 axes form a right-handed coordinate system. If a right-handed coordinate system is a requirement, you have to ensure this on your own:
center=... axis_a=geom.CuboidAxis(...) axis_b=geom.CuboidAxis(...) axis_c=geom.CuboidAxis(geom.Cross(axis_a.vector, axis_b.vector), ...) cuboid=geom.Cuboid(center, axis_a, axis_b, axis_c)
Parameters: - center (
Vec3
) – The center - axis_a (
CuboidAxis
) – The first axis - axis_b (
CuboidAxis
) – The second axis - axis_c (
CuboidAxis
) – The third axis
-
axis_a
¶ The first cuboid axis
Type: CuboidAxis
-
axis_b
¶ The second cuboid axis
Type: CuboidAxis
-
axis_c
¶ The third cuboid axis
Type: CuboidAxis
- center (
Operations on Geometrical Objects¶
-
Angle
(lhs, rhs)¶ Calculate the angle (in radians) between lhs and rhs.
Parameters: Return type: float
-
IntersectionPoint
(lhs, rhs)¶ Calculates and returns the intersection point between lhs and rhs
Parameters: Raises: RuntimeError
when the two objects do not intersectReturn type:
-
IntersectionLine
(plane2, plane2)¶ Returns the intersection line between plane1 and plane2.
Parameters: Raises: RuntimeError
if the two planes are parallel.
-
Distance
(lhs, rhs)¶ Returns the minimal distance between lhs and rhs.
Parameters: Return type: float
-
IsOnLine
(line, point, epsilon=geom.EPSILON)¶ Check whether point lies on line and returns true if point i no further away than epsilon.
Return type: bool
-
IsInPlane
(plane, object, epsilon=geom.EPSILON)¶ Check whether object lies in plane and returns true if the difference is no bigger than epsilon.
Parameters: Return type: bool
-
AreParallel
(lhs, rhs, epsilon=geom.EPSILON)¶ Check whether lhs and rhs are parallel and returns true, if the difference is below the given treshold epsilon.
Parameters: Return type: bool
-
AreIntersecting
(line1, line2, epsilon=geom.EPSILON)¶ Check whether line1 and line2 are intersecting and returns true, if they intersect below the given threshold epsilon.
Parameters: Return type: bool
-
IsInSphere
(sphere, point)¶ Check whether the sphere contains point.
Return type: bool
-
MinDistance
(list1, list2)¶ Calculate the minimal distance between two sets of points
Parameters: - list1 (
Vec3List
) – the first set of points - list2 (
Vec3List
) – the second set of points
- list1 (