Example #1
0
 /// <summary>   Gets a deep copy of the point cloud data from the interop. /// </summary>
 /// <param name="pcd">The point cloud data object to store the data in.</param>
 /// <param name="metadata">The metadata object to store the data in.</param>
 public void SetPointCloudDataFromInteropData(PointCloudData <TPoint> pcd, PointCloudMetaData metadata)
 {
     lock (_cloudDataLock)
     {
         PointCloudData <TPoint> .ConvertFromInteropData(ref pcd, metadata, _pointCloudInteropData, _pointCloudVertices);
     }
 }
Example #2
0
        /// <summary>   Updates the point cloud interop data from kernel. </summary>
        private void UpdatePointCloudInteropDataFromKernel()
        {
            if (_pointCloudData == null)
            {
                this.GetPointCloudMetaData();
                return;
            }
            if (!HandKernelInterop.GetPointCloudData(ref _pointCloudInteropData))
            {
                return;
            }

            Marshal.Copy(_pointCloudInteropData.data, _pointCloudVertices, 0, _pointCloudInteropData.size * (_pointCloudMetaData.pointSize / 4));

            lock (_cloudDataLock)
            {
                PointCloudData <TPoint> .ConvertFromInteropData(ref _pointCloudData, _pointCloudMetaData, _pointCloudInteropData, _pointCloudVertices);
            }
        }