raSystem  1.0 bata
raCMaterial.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
5  raCMaterial::raCMaterial(raSmartPointer<raDirectX> dx) : raMaterial(dx, ".\\Effects\\Cellular.fx", "Cellular")
6  {
7  srand((unsigned int)time(NULL));
8 
9  m_pFeaturePointsVariable = NULL;
10  for(int i = 0; i < 3 * nPoints; i++)
11  {
12  if(i % 3 == 2)
13  m_pFeaturePoints[i] = 0; // z = 0 für flache Objekte (TexturedQuad)
14  else
15  m_pFeaturePoints[i] = raGetRandFloat(-1.0f, 1.0f);
16  }
17 
18  m_pCoefficientsVariable = NULL;
19  m_Coefficients[3] = 0;
20  m_Coefficients[2] = 0;
21  m_Coefficients[1] = 1;
22  m_Coefficients[0] = -1;
23  }
25  {
27 
28  m_pFeaturePointsVariable = m_pEffect->
29  GetVariableByName("g_FeaturePoints" )->AsVector();
30  m_pFeaturePointsVariable->SetFloatVectorArray(m_pFeaturePoints, 0, nPoints); //muss nicht in jedem Frame neu gemacht werden
31 
32  m_pCoefficientsVariable = m_pEffect->
33  GetVariableByName("g_Coefficients")->AsScalar();
34 
35  return true;
36  }
37 
39  {
40  m_pCoefficientsVariable->SetFloatArray(m_Coefficients, 0, 4);
41  }
42 
44  {
45  m_Coefficients[3] = raGetRandFloat(0.0f, 1.0f);
46  m_Coefficients[2] = raGetRandFloat(-m_Coefficients[3], 1.0f);
47  m_Coefficients[1] = raGetRandFloat(-m_Coefficients[3]-m_Coefficients[2], 1.0f);
48  m_Coefficients[0] = raGetRandFloat(-m_Coefficients[3]-m_Coefficients[2]-m_Coefficients[1], 1.0f);
49  }
50 
52  {
53  }
54 };
virtual bool Create()
Definition: raMaterial.cpp:56
ID3DX11Effect * m_pEffect
Definition: raMaterial.h:57
virtual bool Create()
Definition: raCMaterial.cpp:24
~raCMaterial(void)
Definition: raCMaterial.cpp:51
void makeCoefficients()
Definition: raCMaterial.cpp:43
virtual void Setup()
Definition: raCMaterial.cpp:38
RAPI float raGetRandFloat(float min, float max)
Definition: raUtility.cpp:195
raCMaterial(raSmartPointer< raDirectX > dx)
Definition: raCMaterial.cpp:5