ランタイム
IPerspectiveRenderer.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #include "Mix/Reference.h"
7 #include "Mix/Geometry/Sphere.h"
8 #include "Mix/Geometry/AABB.h"
9 #include "Mix/Geometry/OBB.h"
10 #include "Mix/Geometry/Frustum.h"
11 
12 namespace Mix{ namespace Graphics{ namespace Utility{
13 
17  {
18  protected:
20  virtual ~IPerspectiveRenderer( void ){}
21 
22  public:
25  virtual void SetColor( const Mix::Vector4& color ) = 0;
28  virtual const Mix::Vector4& GetColor( void ) const = 0;
29 
32  virtual void SetMatrix( const Mix::Matrix4x4& mat ) = 0;
35  virtual const Mix::Matrix4x4& GetMatrix( void ) const = 0;
36 
40  virtual void AddLine( const Mix::Vector3& p0, const Mix::Vector3& p1 ) = 0;
44  virtual void AddLines( const Mix::Vector3* points, UInt32 pointNum ) = 0;
45 
48  virtual void AddAxis( Float32 scale = 1.0f ) = 0;
49 
52  virtual void AddBox( const Mix::Vector3& halfExtents ) = 0;
55  virtual void AddBox( const Mix::Geometry::OBB& obb ) = 0;
58  virtual void AddBox( const Mix::Geometry::AABB& aabb ) = 0;
59 
64  virtual void AddCylinder( UInt32 axis, Float32 length, Float32 radius ) = 0;
65 
70  virtual void AddCapsule( UInt32 axis, Float32 length, Float32 radius ) = 0;
71 
74  virtual void AddFrustum( const Mix::Geometry::Frustum& frustum ) = 0;
75 
78  virtual void AddSphere( Float32 radius ) = 0;
81  virtual void AddSphere( const Mix::Vector3& radius ) = 0;
85  virtual void AddSphere( const Mix::Vector3& center, Float32 radius ) = 0;
89  virtual void AddSphere( const Mix::Vector3& center, const Mix::Vector3& radius ) = 0;
92  virtual void AddSphere( const Mix::Geometry::Sphere& sphere ) = 0;
93 
99  virtual void AddCone( const Mix::Vector3& pos, const Mix::Vector3& vec, Float32 angle, UInt32 divCount ) = 0;
100 
104  virtual void AddDisc( const Mix::Vector3& axis, Float32 radius ) = 0;
105 
109  virtual void AddPolygon( const Mix::Vector3* points, UInt32 pointNum ) = 0;
110 
112  virtual void Update( void ) = 0;
113 
116  virtual void Draw( const Mix::Matrix4x4& viewProjMat ) = 0;
117  };
118 
119 }}}
3次元浮動小数点ベクトルクラス
Definition: Vector3.h:12
フラスタムクラス
Definition: Frustum.h:14
virtual void AddLines(const Mix::Vector3 *points, UInt32 pointNum)=0
ラインを追加します
スフィアクラスインクルードファイル
AABBクラスインクルードファイル
AABBクラス
Definition: AABB.h:12
球クラス
Definition: Sphere.h:12
4x4行列クラス
Definition: Matrix4x4.h:12
unsigned int UInt32
符号無し32ビット整数
Definition: Common.h:68
virtual const Mix::Vector4 & GetColor(void) const =0
色を取得します return 色を表す Mix::Vector4 クラスを返します
パースペクティブレンダラーインターフェース
Definition: IPerspectiveRenderer.h:16
virtual void AddCone(const Mix::Vector3 &pos, const Mix::Vector3 &vec, Float32 angle, UInt32 divCount)=0
コーン( 円錐 )を追加します
OBBクラスインクルードファイル
virtual void Draw(const Mix::Matrix4x4 &viewProjMat)=0
描画を行います
OBBクラス
Definition: OBB.h:10
virtual void AddLine(const Mix::Vector3 &p0, const Mix::Vector3 &p1)=0
ラインを追加します
virtual void AddSphere(Float32 radius)=0
スフィアを追加します
ミックス
Definition: AtomicValue.h:6
virtual void AddAxis(Float32 scale=1.0f)=0
軸を追加します
virtual void Update(void)=0
更新を行います
float Float32
32ビット浮動小数点
Definition: Common.h:83
リファレンスクラス
Definition: Reference.h:12
virtual void AddCylinder(UInt32 axis, Float32 length, Float32 radius)=0
シリンダーを追加します
virtual const Mix::Matrix4x4 & GetMatrix(void) const =0
変換行列を取得します
リファレンスクラスインクルードファイル
virtual void AddCapsule(UInt32 axis, Float32 length, Float32 radius)=0
カプセルを追加します
virtual void SetMatrix(const Mix::Matrix4x4 &mat)=0
変換行列を設定します
4次元浮動小数点ベクトルクラス
Definition: Vector4.h:12
virtual void AddBox(const Mix::Vector3 &halfExtents)=0
ボックスを追加します
フラスタムクラスインクルードファイル
virtual void SetColor(const Mix::Vector4 &color)=0
色を設定します
virtual ~IPerspectiveRenderer(void)
デストラクタ
Definition: IPerspectiveRenderer.h:20
virtual void AddPolygon(const Mix::Vector3 *points, UInt32 pointNum)=0
多角形を追加します
virtual void AddDisc(const Mix::Vector3 &axis, Float32 radius)=0
ディスク(円盤)を追加します
virtual void AddFrustum(const Mix::Geometry::Frustum &frustum)=0
フラスタムを追加します