殺虫侍
読み取り中…
検索中…
一致する文字列を見つけられません
model.h
[詳解]
1
7#pragma once
8#include "material.h"
9
10class Renderer;
11class Mesh;
12class aiNode;
13class aiMaterial;
14
22class Model
23{
24public:
26 Model();
27
29 ~Model();
30
37 bool Setup(Renderer& renderer, const char* filePath);
38
40 void Terminate();
41
43 void Draw();
44
50 void ProcessNode(aiNode* node, const DirectX::XMMATRIX& parentTransform);
51
56 void SetPosition(const DirectX::XMFLOAT3& pos);
57
62 void SetRotation(const DirectX::XMFLOAT4& rot);
63
68 void SetScale(const DirectX::XMFLOAT3& scale);
69
74 void SetPivot(const DirectX::XMFLOAT3& pivot);
75
80 void SetPivotRotation(const DirectX::XMFLOAT4& rot);
81
83 void ChangeMaterial();
84
85private:
90 DirectX::XMMATRIX getModelTransform() const;
91
92 Mesh* m_meshes = nullptr;
93 unsigned int m_meshNum = 0;
94
95 DirectX::XMFLOAT3 m_position{ 0,0,0 };
96 DirectX::XMFLOAT4 m_rotation{ 0,0,0,0 };
97 DirectX::XMFLOAT3 m_scale{ 1,1,1 };
98
99 DirectX::XMFLOAT3 m_pivot = { 0,0,0 };
100 DirectX::XMFLOAT4 m_pivotRotation = { 0,0,0,0 };
101
102protected:
108 virtual void initializeMaterialSet(int idx, aiMaterial* mat) = 0;
109
112};
単一メッシュのジオメトリデータと GPU バッファを管理するクラス
Definition mesh.h:21
void ProcessNode(aiNode *node, const DirectX::XMMATRIX &parentTransform)
Assimp のノード階層を再帰的に処理してメッシュを構築する
Definition model.cpp:95
void Draw()
全メッシュを描画する
Definition model.cpp:63
bool Setup(Renderer &renderer, const char *filePath)
モデルファイルを読み込んでメッシュを構築する
Definition model.cpp:18
void SetPivotRotation(const DirectX::XMFLOAT4 &rot)
ピボットを中心とした追加回転を設定する
Definition model.cpp:152
void Terminate()
メッシュリソースを解放する
Definition model.cpp:54
virtual void initializeMaterialSet(int idx, aiMaterial *mat)=0
インデックス idx のメッシュにマテリアルを設定する(サブクラスで実装)
void ChangeMaterial()
マテリアルを全メッシュに再適用する
Definition model.cpp:157
void SetPosition(const DirectX::XMFLOAT3 &pos)
モデルのワールド座標を設定する
Definition model.cpp:132
void SetRotation(const DirectX::XMFLOAT4 &rot)
モデルの回転を設定する
Definition model.cpp:137
Renderer * m_pRenderer
レンダラーへのポインタ
Definition model.h:110
void SetScale(const DirectX::XMFLOAT3 &scale)
モデルのスケールを設定する
Definition model.cpp:142
void SetPivot(const DirectX::XMFLOAT3 &pivot)
回転のピボット座標を設定する
Definition model.cpp:147
MaterialSet m_materialSets[10]
マテリアルセット配列(最大10)
Definition model.h:111
~Model()
デストラクタ
Definition model.cpp:13
Model()
コンストラクタ
Definition model.cpp:8
Direct3D 11 デバイスとスワップチェーンを管理するレンダラークラス
Definition renderer.h:21
マテリアル用データ構造体の定義
マテリアルのデータ・テクスチャ・シェーダー・GPU バッファをまとめた構造体
Definition material.h:26