Geometry (Curves and Surfaces)

Curves and surfaces.

This module describes the functions and structures for parsing and creating geometric entities, essentially curves and surfaces. It also includes means addressing issues specific to geometric entities, such as interval definition, axis definition, and parameterization.

Generally, most curve and surface data structures contain canonical, parameterization, and transformation settings:

  • A canonical form is the simplest parametric equations to define a curve or surface. The term canonical means commonly known standards for parametrically representing geometric information, in conjunction with an underyling mathematical equation in the form P(t) for a curve or P(u,v) for a surface. For instance, a line is defined with an origin O and a direction v, corresponding to the equation P(t) = O + t.vEach curve and surface has an implicit parameterization that corresponds to the object’s canonical form. This implicit parameterization includes units and range. For example, the implicit parameterization of a circle has radians as its units and has the range [0,2PI]. Geometry Type Declarations introduces canonical forms for curves and surfaces. The *PRC Format Specification* provides a full description of all canonical forms and their associated equations.
  • Parameterization settings for a curve or surface translates from the implicit parameterization of the canonical form to the actual parameterization of the geometric entity.The parameterization settings include reparameterization coefficients and a range. The reparameterization coefficients converts from the units and range of the canonical form to the units and range of the final representation (the actual parameterization). The range specifies the portion of the canonical form to use, expressed in the units of the actual parameterization. The reparameterization coefficients specify the offset and scaling between the units of the canonical form and the units of the actual parameterization. Parameterization for Curve and Surface Geometries describes range definitions and parameterization settings.
  • A transformation setting denotes the actual placement of the geometric entity in 3D space. Transformations describes transformation settings.

Curves

Geometric curves (A3DCrvBase) are a mandatory part of the topology construct in an A3DTopoBody entity. Do not confuse an A3DCrvBase entity with an A3DRiCurve entity. The latter is a particular representation item that has an A3DTopoSingleWireBody as its topology entry point.

All curves are defined as described in these steps:

  1. Define the canonical form of the whole curve.
  2. Define the actual parameterization and the portion of curve (trimming information) (A3DParameterizationData).
  3. Define the orientation and scaling of the curve using a Cartesian transformation. The transformation cannot specify mirror or non-uniform scaling transformations (see A3DMiscCartesianTransformationData).

Here are definitions for terms that apply to curves.

  • Curve is a mathematical description for a whole curve.
  • Arc is a portion of a curve corresponding to an interval.

Surfaces

Geometric surfaces (A3DSurfBase) are a mandatory part of the topology construct that is represented by an A3DTopoBrepData entity.

All surfaces are defined as follows:

  1. Define the canonical form of the whole surface.

  2. Define the actual parameterization and the portion of surface (trimming information) (A3DUVParameterizationData).

  3. Define the orientation and scaling of the curve using a Cartesian transformation. The transformation cannot specify mirror or non-uniform scaling transformations (see A3DMiscCartesianTransformationData).

    Depending on how surfaces were defined, please notice that some might have their parameterization implicitly reverted (and more especially for periodic ones).

Transformations

This section describes the transformation entities that can be applied to PRC entities containing geometry.

The abstract base entity for this module (A3DMiscTransformation) appears in structure members as a pointer that references either an A3DMiscCartesianTransformation or an A3DMiscGeneralTransformation entity. There are no functions to separately create or access an A3DMiscTransformation entity.

To determine the type of transformation entity referenced by an A3DMiscTransformation pointer, use the A3DEntityGetType() function.

Topics