public void MeasurePointerClick(object sender, MeasurePointerEventArgs e)
    {
        if (e.target.tag == "ButtonMeasure" && e.target.GetComponent <Button>().interactable == true)
        {
            // reset the previously selected button colour
            if (currentSelectedButton != null)
            {
                currentSelectedButton.GetComponent <Image>().color = currentSelectedButton.GetComponent <Button>().colors.normalColor;
            }
            // save the currently selected button
            currentSelectedButton = e.target;

            // invoke click event
            e.target.GetComponent <Image>().color = e.target.GetComponent <Button>().colors.pressedColor;
            e.target.GetComponent <Button>().onClick.Invoke();
            // trigger custom event with the button clicked
            EventManager.TriggerEvent("MeasureButtonClicked", new EventParam(e.target.gameObject));
            // save measure mode
            currentActiveMeasure = e.target.name;
        }
        if (e.target.tag == "ButtonMarker" && e.target.GetComponent <Button>().interactable == true)
        {
            e.target.GetComponent <Image>().color = e.target.GetComponent <Button>().colors.pressedColor;
            EventManager.TriggerEvent("MarkerButtonClicked", new EventParam(e.target.gameObject));
        }
    }
 public void DisplayTargetResults(object sender, MeasurePointerEventArgs e)
 {
     if (e.target.tag != "TerrainMeasure" && e.target.tag != "ButtonMeasure")
     {
         EventManager.TriggerEvent("DisplayResults_" + currentActiveMeasure, new EventParam(e.target.gameObject));
     }
 }
 public void PlaceWulffElementClick(object sender, MeasurePointerEventArgs e)
 {
     if ((e.target.tag == "TerrainMeasure" || e.target.tag == "Movable") && currentActiveMeasure == "Wulff")
     {
         EventManager.TriggerEvent("PlaceWulffElementClickEvent", new EventParam(e.point));
     }
 }
 public void PlaceMarkerClick(object sender, MeasurePointerEventArgs e)
 {
     if (!e.target.tag.Contains("Button") && currentActiveMeasure == "Marker")
     {
         EventManager.TriggerEvent("PlaceMarkerClickEvent", new EventParam(e.point));
     }
 }
 public void PlacePlaneClick(object sender, MeasurePointerEventArgs e)
 {
     if ((e.target.tag == "TerrainMeasure" || e.target.tag == "Movable") && currentActiveMeasure == "Plane Distance")
     {
         EventManager.TriggerEvent("PlaceDistancePlaneClickEvent", new EventParam(e.point));
     }
     if ((e.target.tag == "TerrainMeasure" || e.target.tag == "Movable") && currentActiveMeasure == "Plane Angle")
     {
         EventManager.TriggerEvent("PlaceAnglePlaneClickEvent", new EventParam(e.point));
     }
 }
 public void MeasurePointerOutside(object sender, MeasurePointerEventArgs e)
 {
     if (e.target.tag == "ButtonMeasure" && e.target.GetComponent <Button>().interactable == true && e.target.name != currentActiveMeasure)
     {
         //if (e.target.GetComponent<Image>().color != e.target.GetComponent<Button>().colors.pressedColor)
         e.target.GetComponent <Image>().color = e.target.GetComponent <Button>().colors.normalColor;
         EventManager.TriggerEvent("MeasureButtonExited", new EventParam(e.target.gameObject));
     }
     if (e.target.tag == "ButtonMarker" && e.target.GetComponent <Button>().interactable == true)
     {
         e.target.GetComponent <Image>().color = e.target.GetComponent <Button>().colors.normalColor;
     }
 }
    public void GrabElement(object sender, MeasurePointerEventArgs e)
    {
        if (e.target.tag.Contains("Movable"))
        {
            isGrabbed      = true;
            grabbedElement = e.target;
            positionOffset = e.target.position - transform.position;

            initPlaneRotationQuat = e.target.localRotation;
            initHandRotationQuat  = transform.parent.localRotation;

            initialHandPosition = transform.position;

            EventManager.TriggerEvent("StartUpdatingLines", null);

            StartCoroutine("UpdateElementTransform");
        }
    }