ModelPanel.h
#pragma once
#include "SelectEventArgs.h"
#include "ExpressionModel.h"
namespace Core
{
ref class Model;
ref class Draw;
/// <summary>
/// モデル パネル
/// </summary>
public ref class ModelPanel : public WeifenLuo::WinFormsUI::Docking::DockContent
{
// Construction --------------------------------------------------------
public:
ModelPanel( void );
protected:
~ModelPanel();
// Operation -----------------------------------------------------------
public:
void ChangeExpressionMode();
protected:
virtual void OnLoad( System::EventArgs^ e ) override;
private:
void InitializeComponent(void);
void RotateViewpoint( System::Drawing::Point location );
void TranslateViewpoint( System::Drawing::Point location );
void SelecetObject( System::Drawing::Point location );
// Event Handler -------------------------------------------------------
private:
void Redraw( System::Object^ sender, System::EventArgs^ e );
System::Void PanelPaint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e);
System::Void PanelResize(System::Object^ sender, System::EventArgs^ e);
System::Void PanelMouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e);
System::Void PanelMouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e);
System::Void PanelMouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e);
System::Void PanelMouseWheel(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e);
// Event ---------------------------------------------------------------
public:
event SelectEventHandler^ Selected; ///< 選択イベント
// Attribute ===========================================================
private:
Model^ m_model; ///< モデル
Draw^ m_draw; ///< 描画
System::Drawing::Point m_mousePosition; ///< マウス位置
// Property ------------------------------------------------------------
public:
/// モデル
property Model^ Model
{
Core::Model^ get()
{
return m_model;
}
}
/// 表示モード
property ExpressionModel ExpressionMode
{
ExpressionModel get();
}
//
// 以降は デザイナによって自動生成されたコード
//
private:
System::ComponentModel::Container ^components;
System::Windows::Forms::Panel^ m_drawPanel;
/// @note
/// ドッキングパネル上には、DirectXで直接の描画が出来ない。
/// よってパネルを作成し、そこに描画するようにしている。
};
}