프로젝트

일반

사용자정보

통계
| 개정판:

t1 / TFDContents / Assets / Standard Assets / Windows / Kinect / DepthFrameReference.cs @ 9

이력 | 보기 | 이력해설 | 다운로드 (3.51 KB)

1 3 KTH
#if !(UNITY_WSA_10_0 && NETFX_CORE)
2
using RootSystem = System;
3
using System.Linq;
4
using System.Collections.Generic;
5
namespace Windows.Kinect
6
{
7
    //
8
    // Windows.Kinect.DepthFrameReference
9
    //
10
    public sealed partial class DepthFrameReference : Helper.INativeWrapper
11
12
    {
13
        internal RootSystem.IntPtr _pNative;
14
        RootSystem.IntPtr Helper.INativeWrapper.nativePtr { get { return _pNative; } }
15
16
        // Constructors and Finalizers
17
        internal DepthFrameReference(RootSystem.IntPtr pNative)
18
        {
19
            _pNative = pNative;
20
            Windows_Kinect_DepthFrameReference_AddRefObject(ref _pNative);
21
        }
22
23
        ~DepthFrameReference()
24
        {
25
            Dispose(false);
26
        }
27
28
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
29
        private static extern void Windows_Kinect_DepthFrameReference_ReleaseObject(ref RootSystem.IntPtr pNative);
30
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
31
        private static extern void Windows_Kinect_DepthFrameReference_AddRefObject(ref RootSystem.IntPtr pNative);
32
        private void Dispose(bool disposing)
33
        {
34
            if (_pNative == RootSystem.IntPtr.Zero)
35
            {
36
                return;
37
            }
38
39
            __EventCleanup();
40
41
            Helper.NativeObjectCache.RemoveObject<DepthFrameReference>(_pNative);
42
                Windows_Kinect_DepthFrameReference_ReleaseObject(ref _pNative);
43
44
            _pNative = RootSystem.IntPtr.Zero;
45
        }
46
47
48
        // Public Properties
49
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
50
        private static extern long Windows_Kinect_DepthFrameReference_get_RelativeTime(RootSystem.IntPtr pNative);
51
        public  RootSystem.TimeSpan RelativeTime
52
        {
53
            get
54
            {
55
                if (_pNative == RootSystem.IntPtr.Zero)
56
                {
57
                    throw new RootSystem.ObjectDisposedException("DepthFrameReference");
58
                }
59
60
                return RootSystem.TimeSpan.FromMilliseconds(Windows_Kinect_DepthFrameReference_get_RelativeTime(_pNative));
61
            }
62
        }
63
64
65
        // Public Methods
66
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
67
        private static extern RootSystem.IntPtr Windows_Kinect_DepthFrameReference_AcquireFrame(RootSystem.IntPtr pNative);
68
        public Windows.Kinect.DepthFrame AcquireFrame()
69
        {
70
            if (_pNative == RootSystem.IntPtr.Zero)
71
            {
72
                throw new RootSystem.ObjectDisposedException("DepthFrameReference");
73
            }
74
75
            RootSystem.IntPtr objectPointer = Windows_Kinect_DepthFrameReference_AcquireFrame(_pNative);
76
            Helper.ExceptionHelper.CheckLastError();
77
            if (objectPointer == RootSystem.IntPtr.Zero)
78
            {
79
                return null;
80
            }
81
82
            return Helper.NativeObjectCache.CreateOrGetObject<Windows.Kinect.DepthFrame>(objectPointer, n => new Windows.Kinect.DepthFrame(n));
83
        }
84
85
        private void __EventCleanup()
86
        {
87
        }
88
    }
89
90
}
91
#endif