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


