Example #1
0
 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;
 }
Example #2
0
        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);
        }
Example #3
0
        internal static Boolean QueryPointINT(IntPtr instance, Int32 index, out LandmarkPoint point)
        {
            point = new LandmarkPoint();

            return(PXCMFaceData_LandmarksData_QueryPoint(instance, index, point));
        }
Example #4
0
 internal static extern Boolean PXCMFaceData_LandmarksData_QueryPoint(IntPtr instance, Int32 index, [Out] LandmarkPoint outPoint);
Example #5
0
 /*
     * 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);
 }
Example #6
0
 /*
     * 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);
 }
Example #7
0
 /*
     * 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);
 }
Example #8
0
 /*
  * 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));
 }
Example #9
0
 internal static Boolean QueryPointINT(IntPtr instance, Int32 index, out LandmarkPoint point)
 {
     point = new LandmarkPoint();
     return PXCMFaceData_LandmarksData_QueryPoint(instance, index, point);
 }