コード例 #1
0
        private void SetLandmarkPoint(PXCMFaceData.LandmarksData data, PXCMFaceData.LandmarkPoint[] points, PXCMFaceData.LandmarkType type, Item item)
        {
            var index = data.QueryPointIndex(type);
            var pos   = points[index];

            item.Position = CreatePosition(pos.image.ToPoint3D(), pos.world.ToPoint3D());
        }
コード例 #2
0
        public static int FacePointName(PXCMFaceData.LandmarkType landmarkID)
        {
            if (landmarksData == null)
            {
                return(0);
            }

            return(landmarksData.QueryPointIndex(landmarkID));
        }
コード例 #3
0
        /**
         * Displays Landmarks by type, as they are defined in the SDK
         * @param Graphics g for the view
         */
        public override void Work(Graphics g)
        {
            if (!guInit)
            {
                GuiInit();
            }
            if (model.FaceAktuell != null)
            {
                PXCMFaceData.LandmarksData lp = model.FaceAktuell.QueryLandmarks();
                if (lp == null)
                {
                    //Console.WriteLine("LandmarksData null, goddamnit!!");
                    g.DrawString("LandmarksData null, goddamnit!!", font, stringBrush, stringRect);
                    return;
                }
                PXCMFaceData.LandmarkPoint lPoint;
                if (((PXCMFaceData.LandmarkType)crossThreadValue) == PXCMFaceData.LandmarkType.LANDMARK_NOT_NAMED)
                {
                    for (int i = 1; i < 33; i++)
                    {
                        lp.QueryPoint(lp.QueryPointIndex((PXCMFaceData.LandmarkType)i), out lPoint);

                        Point p = new Point();

                        p.X = (int)lPoint.image.x;
                        p.Y = (int)lPoint.image.y;

                        g.DrawEllipse(pen, lPoint.image.x - 2, lPoint.image.y - 2, 4, 4);
                    }
                }
                else
                {
                    lp.QueryPoint(lp.QueryPointIndex((PXCMFaceData.LandmarkType)crossThreadValue), out lPoint);

                    Point p = new Point();

                    p.X = (int)lPoint.image.x;
                    p.Y = (int)lPoint.image.y;

                    g.DrawEllipse(pen, lPoint.image.x - 2, lPoint.image.y - 2, 4, 4);
                }
            }
            g.DrawString(((PXCMFaceData.LandmarkType)crossThreadValue).ToString(), font, stringBrush, stringRect);
        }
コード例 #4
0
 private PXCMFaceData.LandmarkPoint GetLandmarkPoint(PXCMFaceData.LandmarksData pxcmLandmarksData, PXCMFaceData.LandmarkType landmarkType)
 {
     PXCMFaceData.LandmarkPoint landmarkPoint = null;
     pxcmLandmarksData.QueryPoint(pxcmLandmarksData.QueryPointIndex(landmarkType), out landmarkPoint);
     return(landmarkPoint);
 }