/// <summary>
        /// </summary>
        public static CalculatorGraphConfig ParseFromTextFormat(this pb::MessageParser <CalculatorGraphConfig> parser, string configText)
        {
            UnsafeNativeMethods.mp_api__ConvertFromCalculatorGraphConfigTextFormat(configText, out var serializedProtoPtr).Assert();

            var config = Protobuf.DeserializeProto(serializedProtoPtr, CalculatorGraphConfig.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(config);
        }
예제 #2
0
        public override FaceGeometry.FaceGeometry Get()
        {
            UnsafeNativeMethods.mp_Packet__GetFaceGeometry(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var geometry = Protobuf.DeserializeProto <FaceGeometry.FaceGeometry>(serializedProtoPtr, FaceGeometry.FaceGeometry.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(geometry);
        }
        /// <remarks>Crashes if config is not set</remarks>
        public CalculatorGraphConfig Config()
        {
            UnsafeNativeMethods.mp_CalculatorGraph__Config(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var config = Protobuf.DeserializeProto <CalculatorGraphConfig>(serializedProtoPtr, CalculatorGraphConfig.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(config);
        }
        public override NormalizedLandmarkList Get()
        {
            UnsafeNativeMethods.mp_Packet__GetNormalizedLandmarkList(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var normalizedLandmarkList = Protobuf.DeserializeProto <NormalizedLandmarkList>(serializedProtoPtr, NormalizedLandmarkList.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(normalizedLandmarkList);
        }
예제 #5
0
        public override Rect Get()
        {
            UnsafeNativeMethods.mp_Packet__GetRect(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var rect = Protobuf.DeserializeProto <Rect>(serializedProtoPtr, Rect.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(rect);
        }
예제 #6
0
        public override TimedModelMatrixProtoList Get()
        {
            UnsafeNativeMethods.mp_Packet__GetTimedModelMatrixProtoList(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var matrixProtoList = Protobuf.DeserializeProto <TimedModelMatrixProtoList>(serializedProtoPtr, TimedModelMatrixProtoList.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(matrixProtoList);
        }
예제 #7
0
        public override Detection Get()
        {
            UnsafeNativeMethods.mp_Packet__GetDetection(mpPtr, out var serializedProtoPtr).Assert();
            GC.KeepAlive(this);

            var detection = Protobuf.DeserializeProto <Detection>(serializedProtoPtr, Detection.Parser);

            UnsafeNativeMethods.mp_api_SerializedProto__delete(serializedProtoPtr);

            return(detection);
        }
예제 #8
0
        public static List <T> DeserializeProtoVector <T>(IntPtr ptr, pb::MessageParser <T> parser) where T : pb::IMessage <T>
        {
            var serializedProtoVector = Marshal.PtrToStructure <SerializedProtoVector>(ptr);
            var protos = new List <T>(serializedProtoVector.size);

            unsafe {
                byte **protoPtr = (byte **)serializedProtoVector.data;

                for (var i = 0; i < serializedProtoVector.size; i++)
                {
                    protos.Add(Protobuf.DeserializeProto <T>((IntPtr)(*protoPtr++), parser));
                }
            }

            return(protos);
        }