raSystem  1.0 bata
raGroupe.h
Go to the documentation of this file.
1 #pragma once
2 
3 #define MAX_INSTANCES 500
4 
5  class RAPI raGroup : public raVisual
6  {
7  public:
8  raGroup(raSmartPointer<raDirectX> dx, IRAMesh *pVisual, int numInstancesToDraw = 0,
9  bool bAlpha = false, bool bAdditive = false, bool bDepthDisable = false,
10  D3D11_FILL_MODE fillMode = D3D11_FILL_SOLID,
11  D3D11_CULL_MODE cullMode = D3D11_CULL_BACK);
12 
13  virtual ~raGroup(void);
14 
15  virtual bool Create();
16  virtual void Destroy();
17  virtual bool CreateMesh() { return m_pVisual->CreateMesh();}
18  virtual bool DestroyMesh(){ return m_pVisual->DestroyMesh();}
19  virtual bool RenderMesh(LPCSTR techniqueName = "");
20  virtual void SetWorldMatrix(const raMatrix& value);
21  virtual void SetWorldMatrix(const raMatrix& value, int instanceNo);
22  virtual const raMatrix* GetWorldMatrix(int instanceNo);
23  virtual bool Intersects(CONST raVector3 *pRayPos,
24  CONST raVector3 *pRayDir, FLOAT *pDist) { return false; }
25  virtual ID3D11Buffer* GetVertexBuffer() { return m_pVisual->GetVertexBuffer(); }
26  virtual ID3D11Buffer* GetIndexBuffer() { return m_pVisual->GetIndexBuffer(); }
27  virtual UINT GetStrideSize() { return m_pVisual->GetStrideSize(); }
28  virtual D3D11_PRIMITIVE_TOPOLOGY GetPrimitiveTopology(UINT n) { return m_pVisual->GetPrimitiveTopology(n); }
29  virtual UINT GetNumSubsets() { return m_pVisual->GetNumSubsets();}
30  virtual SDKMESH_SUBSET* GetSubset(UINT n) { return m_pVisual->GetSubset(n);}
31 
32  void CreateRandomMatrices(float scaleX = 1.0f, float scaleY = 1.0f, float scaleZ = 1.0f, float offsetY = 0.0f);
33  UINT AddInstance(const raMatrix& world);
34 
35  IRAMesh* GetVisual(void) { return m_pVisual; }
36 
37  protected:
38  virtual void LoadInstanceData();
39  virtual bool CreateVertexLayout();
40  void InitInstanceMatrices();
41  void UpdateInstanceMatrices();
42  protected:
44  raMatrix m_InstanceMatrices[MAX_INSTANCES];
48 
49  ID3D11Buffer* m_pInstanceData;
50  };
#define MAX_INSTANCES
Definition: raGroupe.h:3
virtual bool DestroyMesh()
Definition: raGroupe.h:18
virtual void Destroy()
Definition: raVisual.cpp:100
IRAMesh * GetVisual(void)
Definition: raGroupe.h:35
IRAMesh * m_pVisual
Definition: raGroupe.h:43
ID3D11Buffer * m_pInstanceData
Definition: raGroupe.h:49
#define RAPI
Definition: raMain.h:11
virtual bool CreateMesh()
Definition: raGroupe.h:17
virtual bool Create()
Definition: raVisual.cpp:45
virtual UINT GetNumSubsets()
Definition: raGroupe.h:29
virtual bool CreateVertexLayout()
Definition: raVisual.cpp:156
virtual D3D11_PRIMITIVE_TOPOLOGY GetPrimitiveTopology(UINT n)
Definition: raGroupe.h:28
virtual bool RenderMesh(LPCSTR techniqueName="")=0
virtual ID3D11Buffer * GetVertexBuffer()
Definition: raGroupe.h:25
int m_iNumInstancesToDraw
Definition: raGroupe.h:46
virtual raMatrix * GetWorldMatrix(void)
Definition: raRender.cpp:14
raMatrix * m_pInstanceList
Definition: raGroupe.h:47
virtual bool Intersects(CONST raVector3 *pRayPos, CONST raVector3 *pRayDir, FLOAT *pDist)
Definition: raGroupe.h:23
virtual UINT GetStrideSize()
Definition: raGroupe.h:27
int m_iNumInstances
Definition: raGroupe.h:45
virtual ID3D11Buffer * GetIndexBuffer()
Definition: raGroupe.h:26
virtual SDKMESH_SUBSET * GetSubset(UINT n)
Definition: raGroupe.h:30
Definition: IRAMesh.h:3
virtual void SetWorldMatrix(const raMatrix &value)
Definition: raRender.cpp:13