# Circular Curve

## 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.

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 in case of success or an error code

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 in case of success or an error code