Example #1
0
 // Token: 0x06002D8E RID: 11662 RVA: 0x000E07D8 File Offset: 0x000DEBD8
 private void Dispose(bool disposing)
 {
     if (this._pNative == IntPtr.Zero)
     {
         return;
     }
     this.__EventCleanup();
     NativeObjectCache.RemoveObject <MultiSourceFrame>(this._pNative);
     MultiSourceFrame.Windows_Kinect_MultiSourceFrame_ReleaseObject(ref this._pNative);
     this._pNative = IntPtr.Zero;
 }
    public Status Update()
    {
        Kinect.MultiSourceFrame frame = _Reader.AcquireLatestFrame();
        if (frame == null)
        {
            //Debug.LogWarning("Frame not arrived");
            return(Status.ZeroBody);
        }

        Kinect.DepthFrame depthFrame = frame.DepthFrameReference.AcquireFrame();

        if (depthFrame == null)
        {
            return(Status.ZeroBody);
        }

        depthFrame.CopyFrameDataToArray(DepthData);
        depthFrame.Dispose();
        depthFrame = null;

        Kinect.BodyFrame bodyFrame = frame.BodyFrameReference.AcquireFrame();

        if (bodyFrame == null)
        {
            return(Status.ZeroBody);
        }

        bodyFrame.GetAndRefreshBodyData(_BodyData);
        bodyFrame.Dispose();
        bodyFrame = null;

        int    bodyIdx;
        Status status;

        checkTrackedBody(out bodyIdx, out status);
        if (status != Status.ZeroBody)
        {
            JointData            = _BodyData[bodyIdx].Joints;
            JointOriendationData = _BodyData[bodyIdx].JointOrientations;
        }

        return(status);
    }
    public bool GetMultiSourceFrame(KinectInterop.SensorData sensorData)
    {
        if(multiSourceFrameReader != null)
        {
            multiSourceFrame = multiSourceFrameReader.AcquireLatestFrame();

            if(multiSourceFrame != null)
            {
                // try to get all frames at once
                msBodyFrame = (sensorFlags & KinectInterop.FrameSource.TypeBody) != 0 ? multiSourceFrame.BodyFrameReference.AcquireFrame() : null;
                msBodyIndexFrame = (sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 ? multiSourceFrame.BodyIndexFrameReference.AcquireFrame() : null;
                msColorFrame = (sensorFlags & KinectInterop.FrameSource.TypeColor) != 0 ? multiSourceFrame.ColorFrameReference.AcquireFrame() : null;
                msDepthFrame = (sensorFlags & KinectInterop.FrameSource.TypeDepth) != 0 ? multiSourceFrame.DepthFrameReference.AcquireFrame() : null;
                msInfraredFrame = (sensorFlags & KinectInterop.FrameSource.TypeInfrared) != 0 ? multiSourceFrame.InfraredFrameReference.AcquireFrame() : null;

                bool bAllSet =
                    ((sensorFlags & KinectInterop.FrameSource.TypeBody) == 0 || msBodyFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) == 0 || msBodyIndexFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeColor) == 0 || msColorFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeDepth) == 0 || msDepthFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeInfrared) == 0 || msInfraredFrame != null);

                if(!bAllSet)
                {
                    // release all frames
                    if(msBodyFrame != null)
                    {
                        msBodyFrame.Dispose();
                        msBodyFrame = null;
                    }

                    if(msBodyIndexFrame != null)
                    {
                        msBodyIndexFrame.Dispose();
                        msBodyIndexFrame = null;
                    }

                    if(msColorFrame != null)
                    {
                        msColorFrame.Dispose();
                        msColorFrame = null;
                    }

                    if(msDepthFrame != null)
                    {
                        msDepthFrame.Dispose();
                        msDepthFrame = null;
                    }

                    if(msInfraredFrame != null)
                    {
                        msInfraredFrame.Dispose();
                        msInfraredFrame = null;
                    }
                }
        //				else
        //				{
        //					bool bNeedBody = (sensorFlags & KinectInterop.FrameSource.TypeBody) != 0;
        //					bool bNeedBodyIndex = (sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0;
        //					bool bNeedColor = (sensorFlags & KinectInterop.FrameSource.TypeColor) != 0;
        //					bool bNeedDepth = (sensorFlags & KinectInterop.FrameSource.TypeDepth) != 0;
        //					bool bNeedInfrared = (sensorFlags & KinectInterop.FrameSource.TypeInfrared) != 0;
        //
        //					bAllSet = true;
        //				}
            }

            return (multiSourceFrame != null);
        }

        return false;
    }
    public void FreeMultiSourceFrame(KinectInterop.SensorData sensorData)
    {
        // release all frames
        if(msBodyFrame != null)
        {
            msBodyFrame.Dispose();
            msBodyFrame = null;
        }

        if(msBodyIndexFrame != null)
        {
            msBodyIndexFrame.Dispose();
            msBodyIndexFrame = null;
        }

        if(msColorFrame != null)
        {
            msColorFrame.Dispose();
            msColorFrame = null;
        }

        if(msDepthFrame != null)
        {
            msDepthFrame.Dispose();
            msDepthFrame = null;
        }

        if(msInfraredFrame != null)
        {
            msInfraredFrame.Dispose();
            msInfraredFrame = null;
        }

        if(multiSourceFrame != null)
        {
            multiSourceFrame = null;
        }
    }
    public bool GetMultiSourceFrame(KinectInterop.SensorData sensorData)
    {
        if(multiSourceFrameReader != null)
        {
            multiSourceFrame = multiSourceFrameReader.AcquireLatestFrame();
            return (multiSourceFrame != null);
        }

        return false;
    }
 public void FreeMultiSourceFrame(KinectInterop.SensorData sensorData)
 {
     if(multiSourceFrame != null)
     {
         multiSourceFrame = null;
     }
 }
Example #7
0
 // Token: 0x06002D89 RID: 11657 RVA: 0x000E0784 File Offset: 0x000DEB84
 internal MultiSourceFrame(IntPtr pNative)
 {
     this._pNative = pNative;
     MultiSourceFrame.Windows_Kinect_MultiSourceFrame_AddRefObject(ref this._pNative);
 }