Esempio n. 1
0
        /// <summary>
        /// DisplayContour - Display the contour points, adjust camera position, invert points for correct display.
        /// </summary>
        /// <param name="contour"></param>
        /// <param name="blobNumber"></param>
        public void DisplayContour(PXCMPointI32[] contour, int blobNumber, int blobCount)
        {
            /* Funky Vectrosity camera flip issue*/
            VectorPoints.SetCamera();
            Camera cam = VectorLine.GetCamera();

            cam.transform.position = new Vector3(cam.transform.position.x * -1, cam.transform.position.y * -1, cam.transform.position.z);

            // remove the unsed blob
            if (blobCount < blobLine.Length)
            {
                VectorLine.Destroy(ref blobLine[1]);
            }

            //refresh the current blob
            VectorLine.Destroy(ref blobLine[blobNumber]);

            /* can't be cache since the contour length changes based on what is tracked*/
            Vector2[] splinePoints = new Vector2[contour.Length];
            for (int i = 0; i < contour.Length; i++)
            {
                splinePoints[i] = new Vector2(contour[i].x * -1, contour[i].y * -1);
            }

            blobLine[blobNumber]      = new VectorLine("BlobContourPoints", new Vector2[splinePoints.Length], null, 2.0f, LineType.Continuous);
            blobLine[blobNumber].name = "blobLine_" + blobNumber.ToString();
            blobLine[blobNumber].MakeSpline(splinePoints);
            blobLine[blobNumber].Draw();
        }
        /// <summary>
        /// DisplayContour - Display the contour points, adjust camera position, invert points for correct display.
        /// </summary>
        /// <param name="contour"></param>
        /// <param name="blobNumber"></param>
        public void DisplayContour(PXCMPointI32[] contour, int blobNumber)
        {
            /* Funky Vectrosity camera flip issue*/
            VectorLine.SetCamera(this.GetComponent <Camera>());
            Camera cam = VectorLine.GetCamera();

            cam.transform.position = new Vector3(cam.transform.position.x * -1, cam.transform.position.y * -1, cam.transform.position.z);

            if (blobLine != null)
            {
                VectorLine.Destroy(ref blobLine);
            }

            /* can't be cache since the contour length changes based on whats tracked*/
            Vector2[] splinePoints = new Vector2[contour.Length];
            for (int i = 0; i < contour.Length; i++)
            {
                splinePoints[i] = new Vector2(contour[i].x * -1, contour[i].y * -1);
            }

            blobLine = new VectorLine("BlobContourPoints", new Vector2[contour.Length + 1], null, 2.0f, LineType.Continuous);
            blobLine.MakeSpline(splinePoints);
            blobLine.Draw();
        }