The Geometry namespace contains geometric types used in Rhino.

Examples are lines, curves, meshes and boundary representations.

Classes

  ClassDescription
Public classAngularDimension
Represents a dimension of an entity that can be measured with an angle.

This entity refers to the geometric element that is independent from the document.

Public classAnnotationBase
Provides a common base class to all annotation geometry.

This class refers to the geometric element that is independent from the document.

Public classArcCurve
Represent arcs and circles.

ArcCurve.IsCircle returns true if the curve is a complete circle.

Public classAreaMassProperties
Contains static initialization methods and allows access to the computed metrics of area, area centroid and area moments in closed planar curves, in meshes, in surfaces, in hatches and in boundary representations.
Public classBezierCurve
Represents a Bezier curve.

Note: as an exception, the bezier curve is not derived from Curve.

Public classBrep
Boundary Representation. A surface or polysurface along with trim curve information.
Public classBrepEdge
Represents a single edge curve in a Brep object.
Public classBrepFace
Provides strongly-typed access to brep faces.

A Brep face is composed of one surface and trimming curves.

Public classBrepLoop
Represent a single loop in a Brep object. A loop is composed of a list of trim curves.
Public classBrepRegion
Represents a brep topological region that has sides.
Public classBrepRegionFaceSide
Represents a side of a BrepRegion entity.
Public classBrepTrim
Brep trim information is stored in BrepTrim classes. Brep.Trims is an array of all the trims in the brep. A BrepTrim is derived from CurveProxy so the trim can supply easy to use evaluation tools via the Curve virtual member functions. Note well that the domains and orientations of the curve m_C2[trim.m_c2i] and the trim as a curve may not agree.
Public classBrepVertex
Brep vertex information
Public classClippingPlaneSurface
Represents a planar surface that is used as clipping plane in viewports.
Public classCurve
Represents a base class that is common to most RhinoCommon curve types.

A curve represents an entity that can be all visited by providing a single parameter, usually called t.

Public classCurveProxy
Provides strongly-typed access to Brep edges.
Public classDetailView
Represents a view of the model placed on a page layout.
Public classExtrusion
Represents an extrusion, or objects such as beams or linearly extruded elements, that can be represented by profile curves and two miter planes at the extremes.
Public classGeometryBase
Provides a common base for most geometric classes. This class is abstract.
Public classHatch
Represents a hatch in planar boundary loop or loops. This is a 2d entity with a plane defining a local coordinate system. The loops, patterns, angles, etc are all in this local coordinate system. The Hatch object manages the plane and loop array Fill definitions are in the HatchPattern or class derived from HatchPattern Hatch has an index to get the pattern definition from the pattern table.
Public classInstanceDefinitionGeometry
Represents the geometry in a block definition.
Public classInstanceReferenceGeometry
Represents a reference to the geometry in a block definition.
Public classInterpolator
Exposes a set of standard numeric interpolation algorithms.
Public classLeader
Represents a leader, or an annotation entity with text that resembles an arrow pointing to something.

This class refers to the geometric element that is independent from the document.

Public classLight
Represents a light that shines in the modeling space.
Public classLinearDimension
Represents a linear dimension.

This entity refers to the geometric element that is independent from the document.

Public classLineCurve
Represents a linear curve.
Public classMatrix
Represents an arbitrarily sized matrix of double-precision floating point numbers. If you are working with a 4x4 matrix, then you may want to use the Transform class instead.
Public classMesh
Represents a geometry type that is defined by vertices and faces.

This is often called a face-vertex mesh.

Public classMeshingParameters
Represents settings used for creating a mesh representation of a brep or surface.
Public classMeshPart
Represents a portion of a mesh for partitioning
Public classMeshPoint
Represents a point that is found on a mesh.
Public classMorphControl
Represents a geometry that is able to control the morphing behaviour of some other geometry.
Public classNurbsCurve
Represents a Non Uniform Rational B-Splines (NURBS) curve.
Public classNurbsSurface
Represents a Non Uniform Rational B-Splines (NURBS) surface.
Public classOrdinateDimension
Represents the geometry of a dimension that displays a coordinate of a point.

This class refers to the geometric element that is independent from the document.

Public classParticle
Represents a simple particle.

This base class only defines position and display properties (size, color, bitmap id). You will most likely create a class that derives from this particle class to perform some sort of physical simulation (movement over time or frames).

Public classParticleSystem
Public classPlaneSurface
Represents a plane surface, with plane and two intervals.
Public classPoint
Represents a geometric point.

This is fundamentally a class that derives from GeometryBase and contains a single Point3d location.

Public classPoint3dGrid
Represents a rectangular grid of 3D points.
Public classPointCloud
Represents a collection of coordinates with optional normal vectors and colors.
Public classPointCloudItem
Represents a single item in a pointcloud. A PointCloud item always has a location, but it has an optional normal vector and color.
Public classPolyCurve
Represents a curve that is the result of joining several (possibly different) types of curves.
Public classPolyline
Represents an ordered set of points connected by linear segments.

Polylines are closed if start and end points coincide.

Public classPolylineCurve
Represents the geometry of a set of linked line segments.

This is fundamentally a class that derives from Curve and internally contains a Polyline.

Public classRadialDimension
Represents a dimension of a circular entity that can be measured with radius or diameter.

This entity refers to the geometric element that is independent from the document.

Public classRevSurface
Represents a surface of revolution.

Revolutions can be incomplete (they can form arcs).

Public classRTree
Represents a spatial search structure based on implementations of the R-tree algorithm by Toni Gutman.
Public classRTreeEventArgs
Represents event data that is passed when when an item that meets certain criteria is found and the passed RTree event is raised.
Public classSpaceMorph
Represents a spacial, Euclidean morph.
Public classSumSurface
Represents a sum surface, or an extrusion of a curve along a curved path.
Public classSurface
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).

Public classSurfaceCurvature
Maintains computed information for surface curvature evaluation.
Public classSurfaceProxy
Provides a base class to brep faces and other surface proxies.
Public classSweepOneRail
Utility class for generating breps by sweeping cross section curves over a single rail curve.
Public classSweepTwoRail
Utility class for generating breps by sweeping cross section curves over two rail curves.
Public classTextDot
Represents a text dot, or an annotation entity with text that always faces the camera and always has the same size.

This class refers to the geometric element that is independent from the document.

Public classTextEntity
Represents text geometry.

This class refers to the geometric element that is independent from the document.

Public classUnroller
Represents the operation of unrolling a single surface.
Public classVolumeMassProperties
Contains static initialization methods and allows access to the computed metrics of volume, volume centroid and volume moments in in solid meshes, in solid surfaces and in solid (closed) boundary representations.

Structures

  StructureDescription
Public structureArc
Represents the value of a plane, two angles and a radius in a subcurve of a three-dimensional circle.

The curve is parameterized by an angle expressed in radians. For an IsValid arc the total subtended angle AngleRadians() = Domain()(1) - Domain()(0) must satisfy 0 < AngleRadians() < 2*Pi

The parameterization of the Arc is inherited from the Circle it is derived from. In particular

t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis

where xaxis and yaxis, (part of Circle.Plane) form an othonormal frame of the plane containing the circle.

Public structureBoundingBox
Represents the value of two points in a bounding box defined by the two extreme corner points.

This box is therefore aligned to the world X, Y and Z axes.

Public structureBox
Represents the value of a plane and three intervals in an orthogonal, oriented box that is not necessarily parallel to the world Y, X, Z axes.
Public structureCircle
Represents a circle in 3D.

The values used are a radius and an orthonormal frame of the plane containing the circle, with origin at the center.

The circle is parameterized by radians from 0 to 2 Pi given by

t -> center + cos(t)*radius*xaxis + sin(t)*radius*yaxis

where center, xaxis and yaxis define the orthonormal frame of the circle plane.

Public structureComponentIndex
Represents an index of an element contained in another object.
Public structureCone
Represents the center plane, radius and height values in a right circular cone.
Public structureControlPoint
Represents control-point geometry with three-dimensional position and weight.
Public structureCylinder
Represents the values of a plane, a radius and two heights -on top and beneath- that define a right circular cylinder.
Public structureEllipse
Represents the values of a plane and the two semiaxes radii in an ellipse.
Public structureInterval
Represents an interval in one-dimensional space, that is defined as two extrema or bounds.
Public structureLine
Represents the value of start and end points in a single line segment.
Public structureMeshFace
Represents the values of the four indices of a mesh face quad.

If the third and fourth values are the same, this face represents a triangle.

Public structurePlane
Represents the value of a center point and two axes in a plane in three dimensions.
Public structurePoint2d
Represents the two coordinates of a point in two-dimensional space, using Double-precision floating point numbers.
Public structurePoint2f
Represents the two coordinates of a point in two-dimensional space, using Single-precision floating point numbers.
Public structurePoint3d
Represents the three coordinates of a point in three-dimensional space, using Double-precision floating point values.
Public structurePoint3f
Represents the three coordinates of a point in three-dimensional space, using Single-precision floating point numbers.
Public structurePoint4d
Represents the four coordinates of a point in four-dimensional space.

The W (fourth) dimension is often considered the weight of the point as seen in 3D space.

Public structureQuaternion
Represents the four coefficient values in a quaternion.

The first value a is the real part, while the rest multipies i, j and k, that are imaginary.

quaternion = a + bi + cj + dk

Public structureRay3d
Represents an immutable ray in three dimensions, using position and direction.
Public structureRectangle3d
Represents the values of a plane and two intervals that form an oriented rectangle in three dimensions.
Public structureSphere
Represents the plane and radius values of a sphere.
Public structureTorus
Represents the value of a plane and two radii in a torus that is oriented in three-dimensional space.
Public structureTransform
Represents the values in a 4x4 transform matrix.

This is parallel to C++ ON_Xform.

Public structureVector2d
Represents the two components of a vector in two-dimensional space, using Double-precision floating point numbers.
Public structureVector2f
Represents the two components of a vector in two-dimensional space, using Single-precision floating point numbers.
Public structureVector3d
Represents the three components of a vector in three-dimensional space, using Double-precision floating point numbers.
Public structureVector3f
Represents the three components of a vector in three-dimensional space, using Single-precision floating point numbers.

Enumerations

  EnumerationDescription
Public enumerationBlendContinuity
Used in curve and surface blending functions
Public enumerationBrepLoopType
Each brep loop has a defined type, e.g. outer, inner or point on surface.
Public enumerationBrepSolidOrientation
Enumerates all possible Solid Orientations for a Brep.
Public enumerationBrepTrimType
Each brep trim has a defined type.
Public enumerationComponentIndexType
Defines enumerated values to represent component index types.
Public enumerationContinuity
Provides enumerated values for continuity along geometry, such as continuous first derivative or continuous unit tangent and curvature.
Public enumerationCurveEnd
Defines the extremes of a curve through a flagged enumeration.
Public enumerationCurveEvaluationSide
Defines enumerated values for the options that defines a curve evaluation side when evaluating kinks.
Public enumerationCurveExtensionStyle
Defines enumerated values for styles to use during curve extension, such as "Line", "Arc" or "Smooth".
Public enumerationCurveKnotStyle
Defines enumerated values for knot spacing styles in interpolated curves.
Public enumerationCurveOffsetCornerStyle
Defines enumerated values for all implemented corner styles in curve offsets.
Public enumerationCurveOrientation
Defines enumerated values for closed curve orientations.
Public enumerationCurveSimplifyOptions
Enumerates the options to use when simplifying a curve.
Public enumerationEdgeAdjacency
Enumerates all possible Topological Edge adjacency types.
Public enumerationExtrudeCornerType
Corner types used for creating a tapered extrusion
Public enumerationIsoStatus
Defines enumerated values for isoparametric curve direction on a surface, such as X or Y, and curve sides, such as North or West boundary.

Note: odd values are all x-constant; even values > 0 are all y-constant.

Public enumerationLightStyle
Defines enumerated values to represent light styles or types, such as directional or spotlight.
Public enumerationLoftType
Specifies enumerated constants for all supported loft types.
Public enumerationMeshingParameterStyle
Type of Mesh Parameters used by the RhinoDoc for meshing objects
Public enumerationMeshType
Defines enumerated values for various mesh types.
Public enumerationPipeCapMode
constansts used for CreatePipe functions
Public enumerationPlaneFitResult
Enumerates all possible outcomes of a Least-Squares plane fitting operation.
Public enumerationPointContainment
Defines enumerated values for closed curve/point spatial relationships.
Public enumerationPointFaceRelation
Enumerates the possible point/BrepFace spatial relationships.
Public enumerationRegionContainment
Defines enumerated values for closed curve/closed curve relationships.
Public enumerationTextJustification
Specifies enumerated constants used to indicate the internal alignment and justification of text.
Public enumerationTransformSimilarityType
Lists all possible outcomes for transform similarity.