Karamba.Geometry Namespace

Karamba3D implements its own set of geometric entities so that it can be run independently from RhinoCommon. This makes it e.g. easier to test via unit-tests and allows usage in environments like Dynamo or web-applicaitons. The namespace Karamba.GHopper.Geometry contains extension methods which provide conversion methods from and to RhinoCommon geometry objects via '.convert()'.

Classes

Arc3 Represents a sub-curve of a three-dimensional circle. The arc curve is parametrized by an angle expressed in radians. The parametrization depends on the plane on which the arc/circle is defined. In particular
t => Origin + cos(t)*Radius*XAxis + sin(t)*Radius*YAxis.
AxisAlignedBoundingBox2 an axis-aligned bounding box.
CoordinateSystem3 A class that represent a coordinate system.
Edge3ShellMesh Represents an edge of a ffeb.ShellMesh.
InfiniteLine2 Two-dimensional straight line.
Line2 two-dimensional straight line segment.
Line3Line3Intersection static class for intersecting lines mutually.
Mesh2 a sample implementation of a 2d mesh.
Mesh3 Mesh.
Plane3 3 dimensional plane.
PolyLine3 Polyline.
SimpleLoop2 a sample implementation of a closed polygonal loop.
Vector2 a 2d vector.
Vector3Projector projects vectors on planes, onto vectors or onto themselves. By default it returns the length of the vector.
Vector3ProjectorOnPlane3 return the length of the projection of a vector onto a vector.
Vector3ProjectorOnVector3 return the length of the projection of a vector onto a vector.

Structures

BoundingBox3 3 dimensional bounding box.
ComponentIndex3 Represents an index of an element contained in another object.
DiscontinuityEnhancedPoint1D Coordinate of a 1 dimensional point that is enhanced with an extra info about discontinuity type that takes place.
Edge3 Represents an edge of a Mesh.
Face3 Mesh triangle.
Interval3 Represents an interval in one-dimensional space, that is defined as two extrema or bounds.
Line3 Segment.
Matrix3x2 A structure encapsulating a 3x2 matrix.
Matrix4x4 A structure encapsulating a 4x4 matrix.
Point2 point in UV-space, see https://www.codeproject.com/Tips/862988/Find-the-Intersection-Point-of-Two-Line-Segments.
Point3 3 dimensional point.
Quaternion A structure encapsulating a four-dimensional vector (x,y,z,w), which is used to efficiently rotate an object about the (x,y,z) vector by the angle theta, where w = cos(theta/2).
Segment3 Segment.
Transform3 3-dimensional transformation represented by a 4x4 matrix.
Vector3 3 dimensional vector of doubles.

Interfaces

IBrep A Brep.
IBrepCurveList Provides access to all the underlying curves in a Brep object.
IBrepEdge BrepFace.
IBrepEdgeList Provides access to all the Edges in a Brep object.
IBrepFace BrepFace.
IBrepFaceList Provides access to all the Faces in a Brep object.
IBrepLoop Represent a single loop in a Brep object. A loop is composed of a list of trim curves.
IBrepLoopList Provides access to all the Loops in a Brep object.
IBrepTrim A BrepTrim.
IBrepTrimList Provides access to all the Trims in a Brep object.
IBrepVertex BrepVertex.
IBrepVertexList Provides access to all the Vertices in a Brep object.
ICurve Curve.
IInsideBrep tests whether a geometric entity lies inside a brep.
IInterval Represents an interval in one-dimensional space, that is defined as two extrema or bounds.
ILoop2 A closed polygon.
IMesh Triangle mesh interface.
IMesh2 everything a 2d mesh is supposed to be capable of.
IReadonlyMesh Readonly mesh. Provides read access to mesh.
ISurface Represents a base class that is common to most RhinoCommon surface types.

A surface represents an entity that can be all visited by providing two independent parameters, usually called (u, v), or sometimes (s, t).

IVicinity interface for testing whether a given point is in the vicinity of some predefined geometric objects.
IVicinityPointsToCurve pulls points to a curve if closer than a given maximum and returns an ordered list points which lie on the curve.

Enumerations

BrepLoopType3 Each brep loop has a defined type, e.g. outer, inner or point on surface.
BrepTrimType3 type of trim.
ComponentIndexType3 Defines enumerated values to represent component index types.
Continuity3 Provides enumerated values for continuity along geometry, such as continuous first derivative or continuous unit tangent and curvature.
DiscontinuityTypes Type of discontinuities for a DiscontinuityEnhancedPoint1D.
LineIntersectionType Indicates whether a line is intersecting or to be intersected.
PointContainment3 Defines enumerated values for closed curve/point spatial relationships.