.. _group__a3d__geometry__types:

##########################
Geometry Type Declarations
##########################


   2.0



In general, each curve and surface has a parametric function that describes its minimal natural definition.


- Curves have a parametric function that takes a single argument, ``Parameter``\ ), which is a real number. The result of the ``PointOnCurve`` function is a 3D cartesian point represented by three real numbers.`` PointOnCurve = F(Parameter) ``\ For example, the following parametric function provides the minimal natural definition of a circle on the Z=0 plane, centered in (0,0,0), and having the radius: ``R``\ .`` X = Radius * cos(Parameter), Y = R * sin(Parameter), Z = 0 `` 
- Surfaces have a parametric function that takes two arguments, ``Parameter_U`` and ``Parameter_V``\ , which are real numbers. The result of the function (``PointOnSurface``\ ) is a 3D cartesian point represented by three real numbers.`` PointOnSurface = F(Parameter_U, Parameter_V) ``\ For example, the following parametric function provides the minimal natural definition of the Z=0 plane:`` X = Parameter_U, Y = Parameter_V, Z = 0 ``  

To represent other circles and planes, the following items are sequentially applied to each curve and surface (except for NURBS curves and NURBS surfaces): 


1. Trim  
2. Parametric transformation (an affine function)  
3. Cartesian transformation 

For example, the following equation shows the application of these modifications:

``PointOnCurve = CartesianTransformation( F(CoefA * Parameter + CoefB) ) ``

Where the equation components have the following characteristics: 


- ``Parameter`` value is bounded by two real numbers as follows: ``IntervalMin <= Parameter <= IntervalMax``\ . 
- ``CoefA`` and ``CoefB`` are real numbers that define the affine function (the parametric transformation). 
- ``CartesianTransformation`` is a spatial transformation. 

.. rst-class:: kind-group kind-topic

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


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


* :ref:`Curve Type Declarations <group__a3d__curves__type>`
* :ref:`Surface Type Declarations <group__a3d__surfaces__type>`
* :ref:`Geometric Mathematical Operator Type Declarations <group__a3d__math__types>`

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

   a3d_curves_type
   a3d_surfaces_type
   a3d_math_types


