private void OnTriggerStay(Collider other) { if (other.GetComponent <MeasurablePoint>() != null) { isHoveringOverPoint = true; hoveredOverPoint = other.GetComponent <MeasurablePoint>(); } }
public void Setup() { var controllerGO = Object.Instantiate(new GameObject()); controller = controllerGO.AddComponent <LengthIconController>(); var ImageGO = Object.Instantiate(new GameObject()); controller.ImageGO = ImageGO; controller.text = ImageGO.AddComponent <Text>(); measurablePoint = SetupMeasurablePoint(); unitsToggleControllerMock = SetupUnitsToggleMock(); }
public void DeleteAllPoints() { while (measureblePoints.Count > 0) { MeasurablePoint point = measureblePoints[0]; measureblePoints.Remove(point); ARReferencePoint referencePoint = point.transform.parent.GetComponent <ARReferencePoint>(); if (referencePoint != null) { referencePointManager.RemoveReferencePoint(referencePoint); } } }
public void PlacePickedUpPoint() { ARReferencePoint result = CreateAnchor(); MeasurablePoint point = CameraHandler.Instance.GetComponentInChildren <MeasurablePoint>(); if ((result == null) || (point == null)) { return; } else { point.transform.position = result.transform.position; point.transform.parent = result.transform; } }
public void PickUpPoint(MeasurablePoint point) { //Check if point exists int index = measureblePoints.FindIndex((MeasurablePoint obj) => Object.ReferenceEquals(obj, point)); if (index == -1) { Debug.Log("Tried to remove a non-tracked point"); return; } ARReferencePoint referencePoint = point.transform.parent.GetComponent <ARReferencePoint>(); if (referencePoint != null) { point.transform.parent = CameraHandler.Instance.transform; referencePointManager.RemoveReferencePoint(referencePoint); } }
public void AddNewPoint() { ARReferencePoint result = CreateAnchor(); if (result != null) { var go = Instantiate(MeasureablePointPrefab); go.transform.position = result.transform.position; go.transform.parent = result.transform; MeasurablePoint currentPoint = go.GetComponent <MeasurablePoint>(); measureblePoints.Add(currentPoint); currentPoint.state = MeasurablePoint.PointState.ACTIVE; if (measureblePoints.Count > 1) { MeasurablePoint lastPoint = measureblePoints[measureblePoints.Count - 2]; lastPoint.nextPoint = currentPoint; if (lastPoint.state != MeasurablePoint.PointState.END) { lastPoint.state = MeasurablePoint.PointState.BRIDGE; } } } }
//TODO:refactor this function public void RemovePoint(MeasurablePoint point) { //Check if point exists int index = measureblePoints.FindIndex((MeasurablePoint obj) => Object.ReferenceEquals(obj, point)); if (index == -1) { Debug.Log("Tried to remove a non-tracked point"); Destroy(point.gameObject); return; } int isFirstMiddleOrLast = -1; //1: first, 2: middle, 3: last //Check if point was first int previousIndex = index - 1; int nextIndex = index + 1; if (previousIndex < 0) { isFirstMiddleOrLast = 1; } else if (measureblePoints[previousIndex].state == MeasurablePoint.PointState.END) { isFirstMiddleOrLast = 1; } //check if point is end else if (nextIndex >= measureblePoints.Count) { isFirstMiddleOrLast = 3; } else if ((measureblePoints[index].state == MeasurablePoint.PointState.END) || (measureblePoints[index].state == MeasurablePoint.PointState.ACTIVE)) { isFirstMiddleOrLast = 3; } else { isFirstMiddleOrLast = 2; } switch (isFirstMiddleOrLast) { case 1: { //Delete point and anchor ARReferencePoint referencePoint = point.transform.parent.GetComponent <ARReferencePoint>(); referencePointManager.RemoveReferencePoint(referencePoint); break; } case 2: { //Delete point and anchor ARReferencePoint referencePoint = point.transform.parent.GetComponent <ARReferencePoint>(); referencePointManager.RemoveReferencePoint(referencePoint); //Make previous point point towards next point measureblePoints[previousIndex].state = MeasurablePoint.PointState.BRIDGE; measureblePoints[previousIndex].nextPoint = measureblePoints[nextIndex]; break; } case 3: { //Delete point and anchor ARReferencePoint referencePoint = point.transform.parent.GetComponent <ARReferencePoint>(); referencePointManager.RemoveReferencePoint(referencePoint); //make previous point an end point measureblePoints[previousIndex].state = MeasurablePoint.PointState.END; break; } } measureblePoints.Remove(point); }