geometry
Primitives
Bases
Base class for all geometric objects. |
|
Base class for geometric primitives. |
|
Base class for geometric shapes. |
|
Class representing a general curve object. |
|
Class representing a general surface object. |
0-dimensional
A vector is defined by XYZ components and a homogenisation factor. |
|
A quaternion is defined by 4 components, X, Y, Z, and W. |
|
A point is defined by XYZ coordinates. |
|
Class for working with pointclouds. |
|
A plane is defined by a base point and a normal vector. |
|
A frame is defined by a base point and two orthonormal base vectors. |
1-dimensional
A line is defined by two points. |
|
A polyline is defined by a sequence of points connected by line segments. |
|
A Bezier curve is defined by control points and a degree. |
|
A NURBS curve is defined by control points, weights, knots, and a degree. |
2-dimensional
A circle is defined by a plane and a radius. |
|
A ellipse is defined by a plane and a major and minor axis. |
|
A polygon is defined by a sequence of points forming a closed loop. |
|
A NURBS surface is defined by control points, weights, knots, and a degree, in two directions U and V. |
3-dimensional
A box is defined by a frame and its dimensions along the frame's x-, y- and z-axes. |
|
A sphere is defined by a point and a radius. |
|
A cylinder is defined by a circle and a height. |
|
A cone is defined by a circle and a height. |
|
A capsule is defined by a line segment and a radius. |
|
A torus is defined by a plane and two radii. |
|
A polyhedron is defined by its vertices and faces. |
Transformations
Class representing a projection transformation. |
|
Class representing a reflection transformation. |
|
Class representing a rotation transformation. |
|
Class representing a scale transformation. |
|
Class representing a shear transformation. |
|
Class representing a general 4x4 transformation matrix. |
|
Class representing a translation transformation. |
Functions
Points, Vectors, Lines, Planes, Circles
Compute the smallest angle between the vectors defined by three points. |
|
Compute the smallest angle between the vectors defined by the XY components of three points. |
|
Compute the smallest angle between two vectors. |
|
Compute the smallest angle between the XY components of two vectors. |
|
Computes the signed angle between two vectors. |
|
Compute the two angles between two vectors defined by three points. |
|
Compute the two angles between the two vectors defined by the XY components of three points. |
|
Compute the the 2 angles formed by a pair of vectors. |
|
Compute the angles between the XY components of two vectors. |
|
Compute the smallest angle between the two normal vectors of two planes. |
|
Compute the centroid of a set of points. |
|
Compute the centroid of a set of points lying in the XY-plane. |
|
Compute the weighted centroid of a set of points. |
|
Construct a circle from three points. |
|
Create a circle from three points lying in the XY-plane |
|
Compute the midpoint of two points. |
|
Compute the midpoint of two points lying in the XY-plane. |
|
Compute the midpoint of a line defined by two points. |
|
Compute the midpoint of a line defined by two points. |
|
Calculates the tangent points on a circle in the XY plane. |
Polygons & Polyhedrons
Compute the area of a polygon. |
|
Compute the area of a polygon lying in the XY-plane. |
|
Compute the area of a triangle defined by three points. |
|
Compute the area of a triangle defined by three points lying in the XY-plane. |
|
Compute the centroid of the surface of a polygon. |
|
Compute the centroid of the surface of a polygon projected to the XY plane. |
|
Compute the centroid of the vertices of a polygon. |
|
Compute the centroid of the vertices of a polygon projected to the XY plane. |
|
Compute the centroid of the edges of a polygon. |
|
Compute the centroid of the edges of a polygon prohected to the XY plane. |
|
Compute the center of mass of a polyhedron. |
|
Compute the normal of a polygon defined by a sequence of points. |
|
Compute the normal vector of a triangle. |
|
Compute the normal vector of a triangle assumed to lie in the XY plane. |
|
Compute the volume of a polyhedron represented by a closed mesh. |
Point Sets
Fit a circle through a set of points. |
|
Fit a frame to a set of points. |
|
Fit a plane to a list of (more than three) points. |
|
Fit a plane through more than three (non-coplanar) points. |
|
Returns the sphere's center and radius that fits best through a set of points. |
|
Computes the axis-aligned minimum bounding box of a list of points. |
|
Compute the axis-aligned minimum bounding box of a list of points in the XY-plane. |
|
Construct convex hull for a set of points. |
|
Compute the convex hull of a set of points. |
|
Computes the convex hull of a set of 2D points. |
|
Compute the convex hull of a set of points in the XY plane. |
|
Align two point clouds using the Iterative Closest Point (ICP) method. |
|
Oriented bounding box of a set of points. |
|
Compute the oriented minimum bounding box of a set of points in 3D space. |
|
Compute the oriented minimum bounding box of set of points in the XY plane. |
Distance
Compute closest line to a point from a list of lines. |
|
Calculates the closest point in a pointcloud. |
|
Calculates the closest point in a list of points in the XY-plane. |
|
Computes closest point on line to a given point. |
|
Compute closest point on line (continuous) to a given point lying in the XY-plane. |
|
Compute closest point on a plane to a given point. |
|
Find the closest point on a polyline to a given point. |
|
Compute closest point on a polyline to a given point, assuming they both lie in the XY-plane. |
|
Computes closest point on line segment (p1, p2) to test point. |
|
Compute closest point on a line segment to a given point lying in the XY-plane. |
|
Compute the shortest distance between two lines. |
|
Compute the distance bewteen a and b. |
|
Compute the distance between points a and b, assuming they lie in the XY plane. |
|
Compute the squared distance bewteen points a and b. |
|
Compute the squared distance between points a and b lying in the XY plane. |
|
Compute the distance between a point and a line. |
|
Compute the distance between a point and a line, assuming they lie in the XY-plane. |
|
Compute the squared distance between a point and a line. |
|
Compute the squared distance between a point and a line lying in the XY-plane. |
|
Compute the distance from a point to a plane defined by origin point and normal. |
|
Compute the signed distance from a point to a plane defined by origin point and normal. |
Intersections
Calculates the intersection points of two circles in 2d lying in the XY plane. |
|
Computes the intersection of an ellipse and a line in the XY plane. |
|
Compute the intersection between a line and a box in the XY plane. |
|
Compute the intersection of two lines, assuming they lie on the XY plane. |
|
Computes the intersection of two lines. |
|
Computes the intersection point of a line and a plane |
|
Compute the intersection between a line and a segment. |
|
Compute the intersection of a line and a segment. |
|
Computes the intersection point of a line (ray) and a triangle based on the Moeller Trumbore intersection algorithm |
|
Compute the intersection of tow meshes. |
|
Computes the intersection of a plane and a circle. |
|
Computes the intersection of three planes |
|
Computes the intersection of two planes |
|
Calculate the intersection point of a plane with a polyline. |
|
Compute the intersection(s) between a ray and a mesh. |
|
Computes the intersection point of a line segment and a plane |
|
Calculate the intersection point of a segment and a polyline. |
|
Calculate the intersection point of a segment and a polyline on the XY-plane. |
|
Compute the intersection of two lines segments. |
|
Compute the intersection of two lines segments, assuming they lie in the XY plane. |
|
Computes the intersection of a sphere and a line. |
|
Computes the intersection of 2 spheres. |
Interpolation
Compute the barycentric coordinates of a point wrt to a triangle. |
|
Creates a coons patch from a set of four or three boundary polylines (ab, bc, dc, ad). |
|
Compute the interpolated points between two sets of points. |
|
Compute an interpolated set of points between two sets of points, at a given distance. |
Offsets
Offset a line by a distance. |
|
Offset a polyline by a distance. |
|
Offset a polygon (closed) by a distance. |
Boolean operations
Compute the boolean union of two triangle meshes. |
|
Compute the boolean difference of two triangle meshes. |
|
Compute the boolean intersection of two triangle meshes. |
Triangulation
Construct a Conforming Delaunay triangulation of set of vertices, constrained to the specified segments. |
|
Construct a Delaunay triangulation of set of vertices, constrained to the specified segments. |
|
Computes the delaunay triangulation for a list of points. |
|
Computes the delaunay triangulation for a list of points using Numpy. |
|
Construct a Delaunay triangulation of set of vertices. |
|
Generate a voronoi diagram from a set of points. |
Triangle meshes
Compute the discrete gaussian curvature of a triangle mesh. |
|
Compute the geodesic distance from every vertex of the mesh to a source vertex. |
|
Compute the harmonic parametrisation of a triangle mesh within a fixed circular boundary. |
|
Compute isolines on a triangle mesh using a scalarfield of data points assigned to its vertices. |
|
Compute the least squares conformal map of a triangle mesh. |
|
Compute the discrete mean curvature of a triangle mesh. |
|
Compute massmatrix on a triangle mesh using a scalarfield of data points assigned to its vertices. |
|
Compute the principal curvature directions of a triangle mesh. |
|
Remeshing of a triangle mesh. |
|
Constrained remeshing of a triangle mesh. |
|
Remesh a mesh along an isoline of a scalarfield over the vertices. |
|
Slice a mesh by a list of planes. |
Quad meshes
Planarize the faces of a quad mesh. |
Predicates
Determine if c is on the left of ab when looking from a to b, and assuming that all points lie in the XY plane. |
|
Determine if three points are colinear. |
|
Determine if two lines are colinear. |
|
Determine if three points are colinear on the XY-plane. |
|
Determine if the points are coplanar. |
|
Verifies if two lines intersect. |
|
Verifies if two lines intersect on the XY-plane. |
|
Determine if a line (ray) intersects with a plane. |
|
Verifies if a line (ray) intersects with a triangle. |
|
Verifies if two planes intersect. |
|
Determine if a line segment intersects with a plane. |
|
Verifies if two segments intersect. |
|
Determines if two segments, ab and cd, intersect. |
|
Determine if a point lies behind a plane. |
|
Determine if a point lies in front of a plane. |
|
Determine if a point lies in a circle. |
|
Determine if a point lies in a circle lying on the XY-plane. |
|
Determine if a point is in the interior of a convex polygon lying on the XY-plane. |
|
Determine if a point lies in front of a plane. |
|
Determine if a point is in the interior of a polygon lying on the XY-plane. |
|
Determine if the point lies inside the given polyhedron. |
|
Determine if a point is in the interior of a triangle. |
|
Determine if a point is in the interior of a triangle lying on the XY-plane. |
|
Determine if a point lies on a line. |
|
Determine if a point lies on a line on the XY-plane. |
|
Determine if a point lies on a plane. |
|
Determine if a point is on a polyline. |
|
Determine if a point is on a polyline on the XY-plane. |
|
Determine if a point lies on a given line segment. |
|
Determine if a point lies on a given line segment on the XY-plane. |
|
Determine if a polygon is convex. |
|
Determine if the polygon is convex on the XY-plane. |
|
Determine if a polygon is in the interior of another polygon on the XY-plane. |
Transformations
Returns the axis and the angle of the rotation matrix M. |
|
Returns the axis-angle vector of the rotation matrix M. |
|
Returns an axis and an angle of rotation from the given quaternion. |
|
Returns the basis vectors from the rotation matrix R. |
|
Calculates a matrix from the components of scale, shear, euler_angles, translation and perspective. |
|
Calculates the components of rotation, translation, scale, shear, and perspective of a given transformation matrix M. |
|
Dehomogenizes points or vectors. |
|
Dehomogenize a list of vectors and unflatten the 2D list into a 3D list. |
|
Returns Euler angles from the rotation matrix M according to specified axis sequence and type of rotation. |
|
Returns Euler angles from a quaternion. |
|
Dehomogenizes points or vectors. |
|
Homogenize a list of frames and flatten the 3D list into a 2D list using numpy. |
|
Construct an identity matrix. |
|
Convert local coordinates to global coordinates. |
|
Convert local coordinates to global (world) coordinates. |
|
Calculates the determinant of a square matrix M. |
|
Calculates a rotation matrix from an rotation axis, an angle and an optional point of rotation. |
|
Calculates a rotation matrix from an axis-angle vector. |
|
Creates a rotation matrix from basis vectors (= orthonormal vectors). |
|
Computes a change of basis transformation between two frames. |
|
Calculates a rotation matrix from Euler angles. |
|
Computes a change of basis transformation from world XY to the frame. |
|
Computes a transformation between two frames. |
|
Returns an orthogonal projection matrix to project onto a plane. |
|
Returns an parallel projection matrix to project onto a plane. |
|
Returns a matrix from perspective entries. |
|
Returns a perspective projection matrix to project onto a plane along lines that emanate from a single point, called the center of projection. |
|
Calculates a rotation matrix from quaternion coefficients. |
|
Returns a 4x4 scaling transformation. |
|
Constructs a shear matrix by an angle along the direction vector on the shear plane (defined by point and normal). |
|
Returns a shear matrix from the 3 factors for x-y, x-z, and y-z axes. |
|
Returns a 4x4 translation matrix in row-major order. |
|
Calculates the inverse of a square matrix M. |
|
Mirror a point about a plane. |
|
Mirror a point about a line. |
|
Mirror a point about a line. |
|
Mirror a point about a plane. |
|
Mirror multiple points about a point. |
|
Mirror multiple points about a point. |
|
Mirrors vector about vector. |
|
Orient points from one plane to another. |
|
Corrects xaxis and yaxis to be unit vectors and orthonormal. |
|
Project a point onto a line. |
|
Project a point onto a line in the XY plane. |
|
Project a point onto a plane. |
|
Project points onto a line. |
|
Project points onto a line in the XY plane. |
|
Project multiple points onto a plane. |
|
Converts a quaternion into a canonic form if needed. |
|
Conjugate of a quaternion. |
|
Returns a quaternion describing a rotation around the given axis by the given angle. |
|
Returns a quaternion from Euler angles. |
|
Returns the 4 quaternion coefficients from a rotation matrix. |
|
Checks if a quaternion is unit-length. |
|
Multiplies two quaternions. |
|
Calculates the length (euclidean norm) of a quaternion. |
|
Makes a quaternion unit-length. |
|
Bounce a line of a reflection plane. |
|
Bounce a line of a reflection triangle. |
|
Rotates points around an arbitrary axis in 3D. |
|
Rotates points in the XY plane around the Z axis at a specific origin. |
|
Scale points. |
|
Scale points in the XY plane. |
|
Transform multiple frames with one transformation matrix. |
|
Transform multiple points with one transformation matrix. |
|
Transform multiple points with one Transformation using numpy. |
|
Transform multiple vectors with one transformation matrix. |
|
Transform multiple vectors with one Transformation using numpy. |
|
Translate points. |
|
Translate points and in the XY plane. |
|
Returns the 3 values of translation from the matrix M. |
|
Convert global coordinates to local coordinates. |
|
Convert global coordinates to local coordinates. |
Linear algebra
Add two vectors. |
|
Add two vectors, assuming they lie in the XY-plane. |
|
Returns True if two lists are element-wise equal within a tolerance. |
|
Returns the index of the first maximum value within an array. |
|
Returns the index of the first minimum value within an array. |
|
Returns True if two values are equal within a tolerance. |
|
Compute the cross product of two vectors. |
|
Compute the cross product of two vectors, assuming they lie in the XY-plane. |
|
Dehomogenise a list of vectors. |
|
Element-wise division of two vectors. |
|
Element-wise division of two vectors assumed to lie in the XY plane. |
|
Compute the dot product of two vectors. |
|
Compute the dot product of two vectors, assuming they lie in the XY-plane. |
|
Homogenise a list of vectors. |
|
Calculate the length of the vector. |
|
Compute the length of a vector, assuming it lies in the XY plane. |
|
Compute the squared length of a vector. |
|
Compute the squared length of a vector, assuming it lies in the XY plane. |
|
Mutliply a matrix with a matrix. |
|
Multiply a matrix with a vector. |
|
Element-wise multiplication of two vectors. |
|
Element-wise multiplication of two vectors assumed to lie in the XY plane. |
|
Calculate the length of a vector. |
|
Calculate the norm of each vector in a list of vectors. |
|
Normalise a given vector. |
|
Normalize a vector, assuming it lies in the XY-plane. |
|
Normalise multiple vectors. |
|
Normalise multiple vectors, assuming they lie in the XY plane. |
|
Orthonormalize a set of vectors. |
|
Raise a vector to the given power. |
|
Raise a list of vectors to the given power. |
|
Scale a vector by a given factor. |
|
Scale a vector by a given factor, assuming it lies in the XY plane. |
|
Scale multiple vectors by a given factor. |
|
Scale multiple vectors by a given factor, assuming they lie in the XY plane. |
|
Raise a vector to the power 2. |
|
Raise a multiple vectors to the power 2. |
|
Subtract one vector from another. |
|
Subtract one vector from another, assuming they lie in the XY plane. |
|
Calculate the sum of a series of vectors along the specified axis. |
|
Transpose a matrix. |
|
Average of a vector. |
|
Compute the component of u in the direction of v. |
|
Compute the component of u in the direction of v, assuming they lie in the XY-plane. |
|
Standard deviation of a vector. |
|
Variance of a vector. |
Misc
A tree for nearest neighbor search in a k-dimensional space. |
Evalutes a spiral at a parameter. |
|
Evalutes a circle at a parameter. |
|
Evalutes an helix at a parameter. |
|
Evalutes a logarithmic spiral at a parameter. |