PositionAndPostureChangeEventArgs.h

#pragma once


namespace Core
{
    /// 位置と姿勢の変更イベント
    public ref class PositionAndPostureChangeEventArgs : public System::EventArgs
    {
    // Construction --------------------------------------------------------
    public:
        PositionAndPostureChangeEventArgs( Robotics::PositionVector^ position, Robotics::RotationMatrix^ posture ) :
            m_position( position ), m_posture( posture )
        {
        }


    // Attribute ===========================================================
    private:
        Robotics::PositionVector^ m_position;  ///< 位置[ m ]
        Robotics::RotationMatrix^ m_posture;   ///< 姿勢


    // Property ------------------------------------------------------------
    public:
        /// 位置[ m ]
        property Robotics::PositionVector^ Position
        {
            Robotics::PositionVector^ get()
            {
                return m_position;
            }
        }

        /// 姿勢
        property Robotics::RotationMatrix^ Posture
        {
            Robotics::RotationMatrix^ get()
            {
                return m_posture;
            }
        }
    };


    /// Delegate
    public delegate void PositionAndPostureChangeEventHandler( System::Object^ sender, PositionAndPostureChangeEventArgs^ e );
}