
###################
A3DCollisionCompute
###################

.. c:function:: A3DStatus A3DCollisionCompute(A3DCollisionGroupData const *pGroup1, A3DCollisionGroupData const *pGroup2, A3DCollisionParameterData const *pParameterData, A3DUns32 *uCollisionResultsSize, A3DCollisionResultData **pCollisionResults)

   .. rst-class:: sig-pretty-signature
   
      | :c:enum:`~A3DStatus` A3DCollisionCompute(:c:struct:`~A3DCollisionGroupData`\ \* **pGroup1**\ , :c:struct:`~A3DCollisionGroupData`\ \* **pGroup2**\ , :c:struct:`~A3DCollisionParameterData`\ \* **pParameterData**\ , :c:type:`~A3DUns32`\ \* **uCollisionResultsSize**\ , :c:struct:`~A3DCollisionResultData`\ \*\* **pCollisionResults**\ )
   
   Determine interferences between :c:type:`~A3DRiRepresentationItem`\ .
   
   
      11.1
   
   
   This function allows to determine if there are interferences between :c:type:`~A3DRiRepresentationItem`\ from one or two groups.
   
   if pParameterData->m_dContactLimit is set to 0., the function return onlykA3DCollision_Collisioninstead ofkA3DCollision_Contact,kA3DCollision_FirstInsideandkA3DCollision_SecondInside.
   
   A3D_INVALID_DATA_STRUCT_SIZEA3D_INVALID_DATA_STRUCT_NULLA3D_INVALID_DATAA3D_SUCCESSA3D_ERROR
   
   **Parameters**
   
   
      **pGroup1**\ : define the first group of :c:struct:`~A3DTransfoRepresentationItemData`\ .
   
      **pGroup2**\ : define a optional second group of :c:struct:`~A3DTransfoRepresentationItemData`\ .
   
      **pParameterData**\ : set parameters for collision computation.
   
      **uCollisionResultsSize**\ : Number of :c:struct:`~A3DCollisionResultData`\ in pCollisionResults.
   
      **pCollisionResults**\ : Array of :c:struct:`~A3DCollisionResultData`\ , containing collision computation result. pCollisionResults is automatically allocated by A3DCollisionCompute.
   
   
   **Returns**
   
   
      ``A3D_SUCCESS``\ on success, or an error code on failure
   
   




