
#######################
A3DParameterizationData
#######################

.. c:struct:: A3DParameterizationData

   Structure for parameterizing curves. 
   
   
      2.0
   
   
   
   This structure is used in curve definitions (see :ref:`Curves Module <group__a3d__crv>`\ ). Its members specify a trimming interval (1-dimensional range) and parameterization settings. Each curve has an implicit parameterization that corresponds to its canonical form. The units of the actual parameterization and the units of the implicit parameterization may differ.
   
   The :c:struct:`~A3DParameterizationData` structure provides two coefficients (affine function) that convert from the actual parameterization units to the implicit parameterization units. 
   
   
   - ``m_dCoeffA``\ , which specifies the ratio between the actual parameter's units and the implicit parameter's units 
   - ``m_dCoeffB``\ , which specifies an offset between the two unit systems
   
   
   Here are guidelines for setting these coefficients: 
   
   
   - *Actual parameterization units match implicit parameterization units.* If the units of the actual parameterization match the units of the implicit parameterization, then the :c:member:`m_dCoeffA <A3DParameterizationData.m_dCoeffA>` member must be set to 1 and the :c:member:`m_dCoeffB <A3DParameterizationData.m_dCoeffB>` member must be set to 0. 
   - *Actual parameterization units do not match the implicit parameterization units.* If the units of the actual parameterization do not match the units of the implicit parameterization, then the :c:member:`m_dCoeffA <A3DParameterizationData.m_dCoeffA>` member must be set to the ratio of the implicit parameterization's units and the actual parameterization's units, and the :c:member:`m_dCoeffB <A3DParameterizationData.m_dCoeffB>` member must be set to the offset between the units.
   
   
      The trimming interval is always expressed in actual parameterization units.
   
   
   
      The initialization macro :c:macro:`~A3D_INITIALIZE_DATA` sets :c:member:`m_dCoeffA <A3DParameterizationData.m_dCoeffA>` and :c:member:`m_dCoeffB <A3DParameterizationData.m_dCoeffB>` to 0. Leaving :c:member:`m_dCoeffA <A3DParameterizationData.m_dCoeffA>` set to 0 (unchanged) will result in an error. If no reparameterization is desired (the interval uses the same units as the implicit parameterization), you must set :c:member:`m_dCoeffA <A3DParameterizationData.m_dCoeffA>` to **1.0**\ . 
   
   
   
   Index
   =====
   
   .. rubric:: Variables
   
   
   .. rst-class:: api-xref-list
   
   
   * :c:member:`~A3DParameterizationData.m_sInterval`
   * :c:member:`~A3DParameterizationData.m_dCoeffA`
   * :c:member:`~A3DParameterizationData.m_dCoeffB`
   
   



.. rst-class:: kind-group kind-variable

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


.. c:member:: A3DIntervalData A3DParameterizationData.m_sInterval

      .. rst-class:: sig-pretty-signature
      
         | :c:struct:`~A3DIntervalData`
      
      Curve (1-dimensional) range. 
      



.. c:member:: A3DDouble A3DParameterizationData.m_dCoeffA

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Coefficient for reparameterization. 
      



.. c:member:: A3DDouble A3DParameterizationData.m_dCoeffB

      .. rst-class:: sig-pretty-signature
      
         | :c:type:`~A3DDouble`
      
      Coefficient for reparameterization. 
      




