Circular Curve

Types

A3DCrvCircleData

Functions

A3DStatus

A3DCrvCircleGet

A3DStatus

A3DCrvCircleCreate

Detailed Description

group a3d_crvcircle

Entity type is kA3DTypeCrvCircle.

Version

2.0

The canonical form is defined with an A3DMiscCartesianTransformationData, its origin being the center of the circle and its vector X being the axis corresponding to zero parameter. The implicit parameterization is an angle expressed as radians in the range [0, 2PI].

A3DParameterizationData lets you specify reparameterization and trim.

Here are parameterization examples:

  • To specify the interval in radians, set m_dCoeffA to 1.0 and m_dCoeffB to 0.0. These parameter values specify an identity conversion.

  • To specify the interval in degrees, set m_dCoeffA to PI/180 and m_dCoeffB to 0.0. m_dCoeffA is the ratio of radians to degrees.

Example of a circular arc

In the above example, the circular arc is in the XY plane (and therefore has an identity transformation), has radius R, and is restricted to the [ t0 , t1 ] interval.../_images/A3DPRCGeometryCrvCircle.jpg

If m_dCoeffA is 1.0 and m_dCoeffB is 0.0 and if the interval is defined as t0=0 and t1=PI/2, then t0 corresponds to the Cartesian coordinates (R,0,0) and t1 to (0,R,0). These values for the m_dCoeffA and m_dCoeffB co-efficients indicate parameterization is in radians and starts at the X axis.

Note

Radius must be greater than 0.

Warning

Radius as a parameter can be modified by A3DMiscCartesianTransformationData when the transformation defines uniform scaling.

Function Documentation

A3DStatus A3DCrvCircleGet(const A3DCrvCircle *pCrv, A3DCrvCircleData *pData)

Populates the A3DCrvCircleData structure.

Return values:
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_ENTITY_NULL

  • A3D_INVALID_ENTITY_TYPE

  • A3D_CRV_CANNOT_ACCESS_CANONICAL

  • A3D_SUCCESS

Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DCrvCircleCreate(const A3DCrvCircleData *pData, A3DCrvCircle **ppCrv)

Creates an A3DCrvCircle from A3DCrvCircleData structure.

Version

2.0

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INTERVAL_INCONSISTENT_DATA

  • A3D_SUCCESS

Returns:

A3D_SUCCESS on success, or an error code on failure