Circular Curve

## Data Structures

struct  A3DCrvCircleData
Circle arc structure. More...

## Functions

A3DStatus A3DCrvCircleCreate (const A3DCrvCircleData *pData, A3DCrvCircle **ppCrv)
Creates an A3DCrvCircle from A3DCrvCircleData structure. More...

A3DStatus A3DCrvCircleGet (const A3DCrvCircle *pCrv, A3DCrvCircleData *pData)
Populates the A3DCrvCircleData structure. More...

## Detailed Description

Version
2.0

Entity type is kA3DTypeCrvCircle.

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.

## ◆ A3DCrvCircleGet()

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

Populates the A3DCrvCircleData structure.

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

## ◆ A3DCrvCircleCreate()

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

Creates an A3DCrvCircle from A3DCrvCircleData structure.

Version
2.0
Returns
A3D_SUCCESS in case of success or an error code
Return values
 A3D_INVALID_DATA_STRUCT_SIZE A3D_INVALID_DATA_STRUCT_NULL A3D_INTERVAL_INCONSISTENT_DATA A3D_SUCCESS