AxisOfCoordinate.h

#pragma once


namespace Core
{
    /// 座標軸
    public ref class AxisOfCoordinate
    {
    // Construction --------------------------------------------------------
    public:
        AxisOfCoordinate( Microsoft::DirectX::Direct3D::Device^ device, float length );

        ~AxisOfCoordinate() { AxisOfCoordinate::!AxisOfCoordinate(); }
        !AxisOfCoordinate();


    // Operation -----------------------------------------------------------
    public:
        void Render( Microsoft::DirectX::Direct3D::Device^ device, Robotics::PositionVector^ position );

    private:
        void RenderCone( Microsoft::DirectX::Direct3D::Device^ device );
        void SetupColor(Microsoft::DirectX::Direct3D::Device^ device, System::Drawing::Color color );


    // Event Handler -------------------------------------------------------
    private:
        void SetLine( System::Object^ sender, System::EventArgs^ e );


    // Attribute ===========================================================
    private:
        float m_length;                                     ///< 長さ
        Microsoft::DirectX::Direct3D::VertexBuffer^ m_line; ///< ライン

        Microsoft::DirectX::Direct3D::Mesh^ m_cone;         ///< 円錐


        /// @note
        /// アンマネージ リソースを含むため、value classにしていない。
    };
}