예제 #1
0
 /// <summary>
 /// Constructor that allocates a pinned buffer
 /// </summary>
 /// <param name="dataFormat">
 /// A <see cref="DepthCamera.DataFormatOption"/>
 /// </param>
 /// <param name="allocateBuffer">
 ///
 /// </param>
 internal DepthMap(DepthCamera.DataFormatOption dataFormat)
 {
     this.Width       = DepthCamera.DataFormatDimensions[dataFormat].X;
     this.Height      = DepthCamera.DataFormatDimensions[dataFormat].Y;
     this.DataFormat  = dataFormat;
     this.Data        = new byte[DepthCamera.DataFormatSizes[dataFormat]];
     this.dataHandle  = GCHandle.Alloc(this.Data, GCHandleType.Pinned);
     this.DataPointer = this.dataHandle.AddrOfPinnedObject();
 }
예제 #2
0
 /// <summary>
 /// Constructor where a buffer allocation isn't needed
 /// </summary>
 /// <param name="dataFormat">
 /// A <see cref="DepthCamera.DataFormatOption"/>
 /// </param>
 /// <param name="bufferPointer">
 /// A <see cref="IntPtr"/>
 /// </param>
 internal DepthMap(DepthCamera.DataFormatOption dataFormat, IntPtr bufferPointer)
 {
     this.Width       = DepthCamera.DataFormatDimensions[dataFormat].X;
     this.Height      = DepthCamera.DataFormatDimensions[dataFormat].Y;
     this.DataFormat  = dataFormat;
     this.Data        = null;
     this.dataHandle  = default(GCHandle);
     this.DataPointer = bufferPointer;
 }
예제 #3
0
        /// <summary>
        /// Sets the DepthCameras's data format. Support function for DepthCamera.DataFormat
        /// </summary>
        /// <param name="format">
        /// A <see cref="DepthCamera.DataFormatOptions"/>
        /// </param>
        private void SetDataFormat(DepthCamera.DataFormatOption format)
        {
            // change depth map that's waiting cause format has changed
            this.UpdateNextFrameDepthMap();

            int result = KinectNative.freenect_set_depth_format(this.parentDevice.devicePointer, format);

            if (result != 0)
            {
                throw new Exception("Could not switch to depth format " + format + ". Error Code: " + result);
            }
            this.dataFormat = format;
        }
예제 #4
0
 public static extern int freenect_set_depth_format(IntPtr device, DepthCamera.DataFormatOption depthFormat);