internal static Boolean QueryPointsByGroupINT(IntPtr instance, LandmarksGroupType group, out LandmarkPoint[] points) { int npoints = PXCMFaceData_LandmarksData_QueryNumPointsByGroup(instance, group); IntPtr outPoints2 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LandmarkPoint)) * npoints); Boolean sts = PXCMFaceData_LandmarksData_QueryPointsByGroup(instance, group, outPoints2); if (sts) { points = new LandmarkPoint[npoints]; for (int i = 0, j = 0; i < npoints; i++, j += Marshal.SizeOf(typeof(LandmarkPoint))) { points[i] = new LandmarkPoint(); Marshal.PtrToStructure(new IntPtr(outPoints2.ToInt64() + j), points[i]); } } else { points = null; } Marshal.FreeHGlobal(outPoints2); return sts; }
internal static Boolean QueryPointsByGroupINT(IntPtr instance, LandmarksGroupType group, out LandmarkPoint[] points) { int npoints = PXCMFaceData_LandmarksData_QueryNumPointsByGroup(instance, group); IntPtr outPoints2 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LandmarkPoint)) * npoints); Boolean sts = PXCMFaceData_LandmarksData_QueryPointsByGroup(instance, group, outPoints2); if (sts) { points = new LandmarkPoint[npoints]; for (int i = 0, j = 0; i < npoints; i++, j += Marshal.SizeOf(typeof(LandmarkPoint))) { points[i] = new LandmarkPoint(); Marshal.PtrToStructure(new IntPtr(outPoints2.ToInt64() + j), points[i]); } } else { points = null; } Marshal.FreeHGlobal(outPoints2); return(sts); }
internal static Boolean QueryPointINT(IntPtr instance, Int32 index, out LandmarkPoint point) { point = new LandmarkPoint(); return(PXCMFaceData_LandmarksData_QueryPoint(instance, index, point)); }
internal static extern Boolean PXCMFaceData_LandmarksData_QueryPoint(IntPtr instance, Int32 index, [Out] LandmarkPoint outPoint);
/* * Assigns points matched to groupFlags to outPoints. * User is expected to allocate outPoints to size bigger than the group size - point contains the original source (index + name). * Returns true if data and parameters exist, false otherwise. */ public Boolean QueryPointsByGroup(LandmarksGroupType groupFlags, out LandmarkPoint[] outPoints) { return QueryPointsByGroupINT(instance, groupFlags, out outPoints); }
/* * Assigns point matched to index to outPoint. * Returns true if data and outPoint exists and index is correct, false otherwise. */ public Boolean QueryPoint(Int32 index, out LandmarkPoint outPoint) { return QueryPointINT(instance, index, out outPoint); }
/* * Assigns all the points to outNumPoints array. * Returns true if data and parameters exists, false otherwise. */ public Boolean QueryPoints(out LandmarkPoint[] outPoints) { return QueryPointsINT(instance, out outPoints); }
/* * Assigns point matched to index to outPoint. * Returns true if data and outPoint exists and index is correct, false otherwise. */ public Boolean QueryPoint(Int32 index, out LandmarkPoint outPoint) { return(QueryPointINT(instance, index, out outPoint)); }
internal static Boolean QueryPointINT(IntPtr instance, Int32 index, out LandmarkPoint point) { point = new LandmarkPoint(); return PXCMFaceData_LandmarksData_QueryPoint(instance, index, point); }