殺虫侍
読み取り中…
検索中…
一致する文字列を見つけられません
sphere.h
[詳解]
1
7#pragma once
8#include <vector>
9#include "vertex.h"
10#include "material.h"
11
12class Renderer;
13
19class Sphere
20{
21public:
28 Sphere(float radius, int slice, int stack);
29
31 ~Sphere();
32
35
40 void Draw(Renderer& renderer);
41
46 void SetPosition(const DirectX::XMFLOAT3& pos) { m_position = pos; }
47
52 void SetRadius(float r) { m_radius = r; }
53
58 void Initialize(Renderer& renderer);
59
64 void ChangeColor(DirectX::XMFLOAT4 color);
65
66private:
68 void setupTransform(Renderer& renderer);
70 void setupMaterial(Renderer& renderer);
72 bool createMaterialBuffer(Renderer& renderer);
74 bool createVertexBuffer(Renderer& renderer);
75
76 std::vector<Vertex> m_vertices;
77 ID3D11Buffer* m_vertexBuffer = nullptr;
78
79 float m_radius;
80 int m_slice;
81 int m_stack;
82
83 DirectX::XMFLOAT3 m_position = { 0.f, 0.f, 0.f };
84 MaterialSet m_materialSet;
85 DirectX::XMFLOAT4 m_color{ 1.f, 1.f, 0.f, 1.f };
86
87 Renderer* m_pRenderer = nullptr;
88};
Direct3D 11 デバイスとスワップチェーンを管理するレンダラークラス
Definition renderer.h:21
void Draw(Renderer &renderer)
球体を描画する
Definition sphere.cpp:65
Sphere(float radius, int slice, int stack)
球体パラメータを指定するコンストラクタ
Definition sphere.cpp:4
void SetPosition(const DirectX::XMFLOAT3 &pos)
球体の中心座標を設定する
Definition sphere.h:46
void Initialize(Renderer &renderer)
頂点バッファと初期マテリアルを生成する
Definition sphere.cpp:33
~Sphere()
デストラクタ
Definition sphere.cpp:28
void DestroyVertexBuffer()
頂点バッファを解放する
Definition sphere.cpp:60
void ChangeColor(DirectX::XMFLOAT4 color)
球体の表示色を変更する
Definition sphere.cpp:146
void SetRadius(float r)
球体の半径を設定する
Definition sphere.h:52
マテリアル用データ構造体の定義
頂点データ構造体の定義