public static ShapeState StartStateMachine()
        {
            if (tool == null)
            {
                Debug.LogError("Cannot start FSM, no tool associated to the FSM");
                return(null);
            }
            else if (s_defaultState == null)
            {
                Debug.LogError("Cannot start FSM, default state has not be set");
                return(null);
            }

            s_defaultState.InitState();
            return(s_defaultState);
        }
        protected virtual ShapeState NextState()
        {
            EndState();
            if (m_nextState == null)
            {
                return(ResetState());
            }

            m_nextState.InitState();
            SceneView.RepaintAll();
            return(m_nextState);
        }