
#################################
A3DSimplifyModelFileWithAnalytics
#################################

.. c:function:: A3DStatus A3DSimplifyModelFileWithAnalytics(A3DAsmModelFile *p, A3DDouble dTol, A3DUns32 uNbRecognizedType, A3DEEntityType const *pOptRecognizedType)

   .. rst-class:: sig-pretty-signature
   
      | :c:enum:`~A3DStatus` A3DSimplifyModelFileWithAnalytics(:c:type:`~A3DAsmModelFile`\ * **p**\ , :c:type:`~A3DDouble` **dTol**\ , :c:type:`~A3DUns32` **uNbRecognizedType**\ , :c:enum:`~A3DEEntityType`\ * **pOptRecognizedType**\ )
   
   Function to traverse the entire modelfile and simplify all curves and surfaces to analytics if possible, according to a certain tolerance. 
   
   
   
    Recognized surface types are:
   :ref:`Conic Surface <group__a3d__srfcone>`\ , :ref:`Cylindrical Surface <group__a3d__srfcylinder>`\ , :ref:`Plane Surface <group__a3d__srfplane>`\ , :ref:`Spherical Surface <group__a3d__srfsphere>`\ , :ref:`Toric Surface <group__a3d__srftorus>` 
   
    Recognized curve types are:
   :ref:`Linear Curve <group__a3d__crvline>`\ , :ref:`Circular Curve <group__a3d__crvcircle>` 
   
    If uNbRecognizedType and pOptRecognizedType are defined, :c:func:`~A3DSimplifyModelFileWithAnalytics` recognizes only the given types.
   
   **Parameters**
   
   
      **p**\ : The input modelfile. 
   
      **dTol**\ : The tolerance (in millimeters). 
   
      **uNbRecognizedType**\ : Size of array pOptRecognizedType. 
   
      **pOptRecognizedType**\ : Optional type of surface we want to recognize.
   
   
   **Returns**
   
   
      ``A3D_SUCCESS`` on success, or an error code on failure
   
   




