DrawModel.h
#pragma once
#include "ExpressionModel.h"
namespace Core
{
ref class AxisOfCoordinate;
ref class AxisOfRotation;
ref class Model;
ref class Link;
ref class Distinction;
/// モデルの描画
public ref class DrawModel
{
// Construction --------------------------------------------------------
public:
DrawModel( Microsoft::DirectX::Direct3D::Device^ device, System::Object^ obj );
// Operation -----------------------------------------------------------
public:
void CreateModelFigure();
void Render();
Distinction^ SelectLink( System::Drawing::Point location );
private:
void DrawLink();
void DrawSelectedLink( Link^ link );
float ComputeDistanceToIntersection( Distinction^ distinction, System::Drawing::PointF location );
void TransferToLinkPosition( Link^ link );
Microsoft::DirectX::Matrix ConvertToMatrix( Robotics::RotationMatrix^ matrix );
System::Drawing::Color GetColorFromHSB( double hue, double saturation, double brightness );
// Attribute ===========================================================
private:
Model^ m_model; ///< モデル
Distinction^ m_selectedLink; ///< 選択されているリンク
Microsoft::DirectX::Direct3D::Device^ m_device; ///< デバイス
AxisOfCoordinate^ m_axisOfCoordinate; ///< 座標軸
AxisOfRotation^ m_axisOfRotation; ///< 回転軸
ExpressionModel m_expressionMode; ///< 表示モード
// Property ------------------------------------------------------------
public:
/// 選択されているリンク
property Distinction^ SelectedLink
{
Distinction^ get()
{
return m_selectedLink;
}
}
/// 表示モード
property ExpressionModel ExpressionMode
{
ExpressionModel get()
{
return m_expressionMode;
}
void set( ExpressionModel value );
}
};
}