Advertisement
Guest User

terrain.h

a guest
Jan 6th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. using namespace std;
  2.  
  3. class Terrain
  4. {
  5. public:
  6.     struct InitInfo
  7.     {
  8.         wstring HeightmapFileName,
  9.             LayerMapFileName0,
  10.             LayerMapFileName1,
  11.             LayerMapFileName2,
  12.             LayerMapFileName3,
  13.             LayerMapFileName4,
  14.             BlendMapFileName;
  15.  
  16.         float HeightScale;
  17.         float HeightOffset;
  18.         UINT NumRows;
  19.         UINT NumCols;
  20.         float CellSpacing;
  21.     };
  22.  
  23. public:
  24.     Terrain();
  25.     ~Terrain();
  26.  
  27.     void Init(const InitInfo& info);
  28.  
  29.     float width()const;
  30.     float depth()const;
  31.  
  32.     float getHeight(float x, float y)const;
  33.     void SetDirectionToSun(const XMFLOAT3& v);
  34.     void draw(CXMMATRIX world, Camera& cam);
  35.    
  36. private:
  37.     void BuildFX();
  38.     void loadHeightMap();
  39.     void Smooth();
  40.     bool inBounds(UINT i, UINT j);
  41.     float average(UINT i, UINT j);
  42.     void BuildVertexBuffer();
  43.     void BuildIndexBuffer();
  44.  
  45. private:
  46.     InitInfo mInfo;
  47.  
  48.     UINT mNumVertices;
  49.     UINT mNumFaces;
  50.  
  51.     vector<float> mHeightmap;
  52.  
  53.     ID3DX11Effect* mFX;
  54.  
  55.  
  56.     ID3D11Buffer* mVB;
  57.     ID3D11Buffer* mIB;
  58.  
  59.     ID3D11ShaderResourceView* mLayer0;
  60.     ID3D11ShaderResourceView* mLayer1;
  61.     ID3D11ShaderResourceView* mLayer2;
  62.     ID3D11ShaderResourceView* mLayer3;
  63.     ID3D11ShaderResourceView* mLayer4;
  64.     ID3D11ShaderResourceView* mBlendMap;
  65.  
  66.     ID3DX11EffectTechnique* mTech;
  67.     ID3DX11EffectMatrixVariable* mfxWVPVar;
  68.     ID3DX11EffectMatrixVariable* mfxWorldVar;
  69.     ID3DX11EffectVectorVariable* mfxDirToSunVar;
  70.     ID3DX11EffectShaderResourceVariable* mfxLayer0Var;
  71.     ID3DX11EffectShaderResourceVariable* mfxLayer1Var;
  72.     ID3DX11EffectShaderResourceVariable* mfxLayer2Var;
  73.     ID3DX11EffectShaderResourceVariable* mfxLayer3Var;
  74.     ID3DX11EffectShaderResourceVariable* mfxLayer4Var;
  75.     ID3DX11EffectShaderResourceVariable* mfxBlendMapVar;
  76.  
  77. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement