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


