public void Navigate()

    /* run navigate algorithm by usion beginpoint and destpoint to update all markerdata value
     *  if in same floor, navigate to connecttor of floor
     *  if can't find route, arrow will directly point to destination*/
    {
        BuildingData building = this.beginPoint.GetComponent <MarkerData>()
                                .GetFloor().GetComponent <FloorData>()
                                .GetBuilding().GetComponent <BuildingData>();

        if (building.IsSameFloor(this.beginPoint, this.destinationPoint))
        {
            Debug.Log("Same Floor  Navigating " + this.beginPoint.GetComponent <MarkerData>().floor);
            if (this.beginPoint == this.destinationPoint) //                                <<<<< check room name
            {
                Debug.Log("=== Founded Destination ===");
                appState = AppState.Idle;
                Debug.Log(" Reach at Main navigate and idle");
            }
            else if (dijsktra.FindShortestPath(this.beginPoint.GetComponent <MarkerData>().GetFloor(),
                                               this.beginPoint, this.destinationPoint))
            {
                navigatable = true;
            }
            else
            {
                navigatable = false;
            }
        }
        else
        {
            Debug.Log("==================================== Different Floor  Navigating " + this.beginPoint.GetComponent <MarkerData>().floor + " To " + this.destinationPoint.GetComponent <MarkerData>().floor);
            bool begintoLift = dijsktra.FindShortestPath(
                this.beginPoint.GetComponent <MarkerData>().GetFloor(),
                this.beginPoint, building.GetConnector(this.beginPoint));
            Debug.Log("==================================== brk");
            bool liftToDest = dijsktra.FindShortestPath(
                this.destinationPoint.GetComponent <MarkerData>().GetFloor(),
                building.GetConnector(this.destinationPoint), this.destinationPoint);
            if (begintoLift && liftToDest)
            {
                navigatable = true;
            }
            else
            {
                navigatable = false;
            }
        }
        //case point to null of successor
    }
    public void Navigate()

    /* run navigate algorithm by usion beginpoint and destpoint to update all markerdata value
     *  if in same floor, navigate to connecttor of floor
     *  if can't find route, arrow will directly point to destination*/
    {
        if (this.beginPoint.GetComponent <NodeData>().IsSameFloorWith(this.destinationPoint))
        {
            Debug.Log("Same Floor  Navigating " + this.beginPoint.GetComponent <NodeData>().GetParentObjectData().GetParentObjectData().floorName);
            // if (this.beginPoint.GetComponent<NodeData>().GetParentObjectData().roomName
            //     == this.destinationPoint.GetComponent<NodeData>().GetParentObjectData().roomName) //<<<<< Dead Code. check room name
            // {
            //     Debug.Log("=== Founded Destination ===");
            //     appState = AppState.Idle;
            //     Debug.Log(" Reach at Main navigate and idle");
            // }
            if (dijsktra.FindShortestPath(this.beginPoint, this.destinationPoint))
            {
                navigatable = true;
            }
            else
            {
                navigatable = false;
            }
        }
        else
        {
            Debug.Log("==================================== Different Floor  Navigating "
                      + this.beginPoint.GetComponent <NodeData>().GetParentObjectData().GetParentObjectData().floorName
                      + " To " + this.destinationPoint.GetComponent <NodeData>().GetParentObjectData().GetParentObjectData().floorName);

            bool begintoLift = dijsktra.FindShortestPath(this.beginPoint, GetConnectorNode(this.beginPoint));
            Debug.Log("==================================== brk");
            bool liftToDest = dijsktra.FindShortestPath(GetConnectorNode(this.destinationPoint), this.destinationPoint);
            if (begintoLift && liftToDest)
            {
                navigatable = true;
            }
            else
            {
                navigatable = false;
            }
        }
        //case point to null of successor
    }