/* point directly to node */
    public float ShowArrow(GameObject markerObject, GameObject destinationNode)
    {
        GameObject  arrowObj = GetARObjectOfType(markerObject, ARObject.Type.Arrow);
        ArrowScript arrowsc  = arrowObj.GetComponent <ArrowScript>();

        arrowsc.PointToCoordinate(destinationNode.GetComponent <NodeData>().position);
        arrowObj.SetActive(true);
        SendLastObject(arrowsc.Type);
        return(arrowObj.transform.localRotation.eulerAngles.z);
    }
    /* get command from maincontroller
     * detect marker show/lost from markerConstructor
     * control arrow up/down*/

    #region Display AR
    /* point arrow to successor's position.  if null, point to destination */
    public float ShowArrow(GameObject markerObject, bool navigatable)
    {
        Debug.Log(markerObject.name);
        GameObject  objectNodeToAugment = markerObject.GetComponent <MarkerData>().GetParentNodeObject();
        GameObject  arrowObj            = GetARObjectOfType(markerObject, ARObject.Type.Arrow);
        ArrowScript arrowsc             = arrowObj.GetComponent <ArrowScript>();

        if (navigatable || objectNodeToAugment.GetComponent <NodeData>().successor != null)
        {
            arrowsc.PointToCoordinate(objectNodeToAugment.GetComponent <NodeData>().successor.GetComponent <NodeData>().position);
            Debug.Log("Point to " + objectNodeToAugment.GetComponent <NodeData>().successor.name);
        }
        else
        {
            Debug.Log("Can't navigatable");
            arrowsc.PointToCoordinate(objectNodeToAugment.GetComponent <NodeData>().position);
        }
        arrowObj.SetActive(true);
        SendLastObject(arrowsc.Type);
        return(arrowObj.transform.localRotation.eulerAngles.z);
    }