/// <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(); }