
#####################
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. 
   
      **pOption**\ : Structure containing option (must be set). see A3DProjectPointCloudOption 
   
      **ppProjectedPointCloud**\ : Point cloud projected.
   
   
   **Returns**
   
   
      ``A3D_SUCCESS`` on success, or an error code on failure
   
   




