This document is for OpenStructure version 1.10, the latest version is 2.8 !

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
GetOrigin()

Returns the origin of the line: Also available as origin.

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:
  • top_left (Vec2) – The top-left corner
  • bottom_right (Vec2) – The bottom-right corner
GetWidth()

Returns the width of the rectangle. Also available as width.

GetHeight()

Returns the height of the rectangle. Also available as height.

width
Type:float
height
Type:float
GetStart()

Get top-left corner

Return type:Vec2
GetEnd()

Get bottom-right corner

Return type:Vec2
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.

SetCenter(center)

Set center of circle

Parameters:center (Vec2) – The new center
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
GetOrigin()

Returns the origin of the line: Also available as origin.

Return type:Vec3
GetDirection()

Returns the normalized direction vector. Also available as direction.

Return type:Vec3
direction
Type:Vec3
origin
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.

GetNormal()

Returns the normal of the plane. Also available as normal

Return type:Vec3
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
GetOrigin()

Get the origin of the plane. Also available as origin.

Return type:Vec3
origin
Type:Vec3
normal
Type:Vec3
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
GetOrigin()

See origin

SetOrigin(origin)

See origin

GetRadius()

See radius

SetRadius(radius)

See radius

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.

GetMin()

Get minimum coordinate, i.e. the lower bound of x-, y-, and z for any point in the cuboid

Return type:Vec3
GetMax()

Get maximum coordinate, i.e. the upper bound of x-, y-, and z for any point in the cuboid.

Return type:Vec3
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 as GetExtent().

Type:float
GetHalfExtent()

See half_extent

GetExtent()

See extent

GetVector()

See vector

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

The center of the cuboid.

Type:Vec3
axis_a

The first cuboid axis

Type:CuboidAxis
axis_b

The second cuboid axis

Type:CuboidAxis
axis_c

The third cuboid axis

Type:CuboidAxis

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 intersect

Return type:

Vec3 (Vec2 in case of Line2)

IntersectionLine(plane2, plane2)

Returns the intersection line between plane1 and plane2.

Parameters:
  • plane1 (Plane) – The first plane
  • plane2 (Plane) – The second plane
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

Search

Enter search terms or a module, class or function name.

Contents

Documentation is available for the following OpenStructure versions:

dev / 2.8 / 2.7 / 2.6 / 2.5 / 2.4 / 2.3.1 / 2.3 / 2.2 / 2.1 / 2.0 / 1.9 / 1.8 / 1.7.1 / 1.7 / 1.6 / 1.5 / 1.4 / 1.3 / 1.2 / 1.11 / (Currently viewing 1.10) / 1.1

This documentation is still under heavy development!
If something is missing or if you need the C++ API description in doxygen style, check our old documentation for further information.