// Use this for initialization private void Start() { volumeLineRenderer = GetComponentInChildren <LineRenderer>(); TMPro = GetComponentInChildren <TextMeshPro>(); myAudioSource = GetComponent <AudioSource>(); xLen = .1f; controllPoint = GeoObjConstruction.iPoint(this.transform.position); prismBase.Add(controllPoint); prismBase.Add(GeoObjConstruction.dPoint(controllPoint.Position3 + Vector3.right * (sideLength1 - 2 * xLen))); prismBase.Add(GeoObjConstruction.dPoint(controllPoint.Position3 + Vector3.right * (sideLength1 - 2 * xLen) + Vector3.forward * (sideLength2 - 2 * xLen))); prismBase.Add(GeoObjConstruction.dPoint(controllPoint.Position3 + Vector3.forward * (sideLength2 - 2 * xLen))); List <AbstractLineSegment> prismBaseLines = new List <AbstractLineSegment>(); for (int i = 0; i < 3; i++) { prismBaseLines.Add(GeoObjConstruction.dLineSegment(prismBase[i], prismBase[i + 1])); } prismBaseLines.Add(GeoObjConstruction.dLineSegment(prismBase[prismBase.Count - 1], prismBase[0])); prismBasePoly = GeoObjConstruction.dPolygon(prismBaseLines, prismBase); prism = GeoObjConstruction.dPrism(prismBasePoly, prismBasePoly.center + Vector3.up * xLen); prismTopPoly = prism.bases[1]; cutoutRectangle.Add(prismBase[0]); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[0].Position3 + Vector3.back * xLen)); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[1].Position3 + Vector3.back * xLen)); cutoutRectangle.Add(prismBase[1]); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[1].Position3 + Vector3.right * xLen)); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[2].Position3 + Vector3.right * xLen)); cutoutRectangle.Add(prismBase[2]); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[2].Position3 + Vector3.forward * xLen)); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[3].Position3 + Vector3.forward * xLen)); cutoutRectangle.Add(prismBase[3]); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[3].Position3 + Vector3.left * xLen)); cutoutRectangle.Add(GeoObjConstruction.dPoint(prismBase[0].Position3 + Vector3.left * xLen)); List <AbstractLineSegment> cutoutLines = new List <AbstractLineSegment>(); for (int i = 0; i < cutoutRectangle.Count - 1; i++) { cutoutLines.Add(GeoObjConstruction.dLineSegment(cutoutRectangle[i], cutoutRectangle[i + 1])); } cutoutLines.Add(GeoObjConstruction.dLineSegment(cutoutRectangle[0], cutoutRectangle[cutoutRectangle.Count - 1])); cutoutRectanglePoly = GeoObjConstruction.dPolygon(cutoutLines, cutoutRectangle); foreach (MasterGeoObj mgo in prism.transform.parent.GetComponentsInChildren <MasterGeoObj>()) { if (mgo != controllPoint) { mgo.LeapInteraction = false; } } controllPoint.GetComponent <Leap.Unity.Interaction.InteractionBehaviour>().OnGraspedMovement += updateDiagram; controllPoint.GetComponent <Leap.Unity.Interaction.InteractionBehaviour>().OnGraspEnd += updateDiagram; volumeLineRenderer.useWorldSpace = false; Color tmp = Color.blue; tmp.a = .5f; cutoutRectanglePoly.figColor = tmp; foreach (AbstractPolygon poly in prism.allfaces) { tmp = Color.red; tmp.a = .5f; poly.figColor = tmp; } prism.bases[0].figColor = Color.clear; }