.. _group__a3d__crvcircle:

##############
Circular Curve
##############


   2.0



Entity type is :c:enumerator:`~kA3DTypeCrvCircle`\ .

The canonical form is defined with an :c:struct:`~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].

:c:struct:`~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.


   Radius must be greater than **0**\ . 



   Radius as a parameter can be modified by :c:struct:`~A3DMiscCartesianTransformationData` when the transformation defines uniform scaling. 



**Returns**


   ``A3D_SUCCESS`` on success, or an error code on failure


.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DCrvCircleData`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DCrvCircleGet`
* :c:func:`~A3DCrvCircleCreate`

.. toctree::
   :maxdepth: 1
   :hidden:

   ../structures/A3DCrvCircleData
   ../functions/A3DCrvCircleGet
   ../functions/A3DCrvCircleCreate


