
#####################
A3DProjectPointCloud3
#####################

.. c:function:: A3DStatus A3DProjectPointCloud3(A3DProjectPointCloudManager *pManager, A3DUns32 uPointCloudSize, A3DVector3dData const *pPointCloudToProject, A3DProjectPointCloudOptionsData const *pOptions, A3DProjectedPointCloudData **ppProjectedPointCloud)

   .. rst-class:: sig-pretty-signature
   
      | :c:enum:`~A3DStatus` A3DProjectPointCloud3(:c:type:`~A3DProjectPointCloudManager`\ \* **pManager**\ , :c:type:`~A3DUns32` **uPointCloudSize**\ , :c:struct:`~A3DVector3dData`\ \* **pPointCloudToProject**\ , :c:struct:`~A3DProjectPointCloudOptionsData`\ \* **pOptions**\ , :c:struct:`~A3DProjectedPointCloudData`\ \*\* **ppProjectedPointCloud**\ )
   
   Function to project Point Cloud on BrepModel with a :c:type:`~A3DProjectPointCloudManager`\ .
   
   
   Memory Management
   =================
   
   In case of success, ``ppProjectedPointCloud``\ contains heap allocated memory you are responsible for. To free the memory on ``ppProjectedPointCloud``\ , call ``A3DProjectPointCloud3``\ by setting ``pManager``\ to *0*\ . In this case, all other parameters are ignored:
   
   
   ::
   
      A3DProjectPointCloud3(0,0,0,0,ppProjectedPointCloud);
   
   
   **Parameters**
   
   
      **pManager**\ : :c:type:`~A3DProjectPointCloudManager`\ created by :c:func:`~A3DProjectPointCloudManagerCreateFromModelFile`\ function.
   
      **uPointCloudSize**\ : Number of points in pPointCloudToProject.
   
      **pPointCloudToProject**\ : Point cloud to project. May also contain normals directions (ordered as follow: Point1, Normal1, Point 2, Normal2, etc.) depending on the :c:member:`A3DProjectPointCloudOptionsData::m_bPreferFaceTowardScan <A3DProjectPointCloudOptionsData.m_bPreferFaceTowardScan>`\ option. This point cloud must be in the same coordinate system as the BrepData structures stored in BrepModel.
   
      **pOptions**\ : Structure containing options (must be set). see :c:struct:`~A3DProjectPointCloudOptionsData`
   
      **ppProjectedPointCloud**\ : Point cloud projected.
   
   
   **Returns**
   
   
      ``A3D_SUCCESS``\ on success, or an error code on failure
   
   




