The DejaVU Framework --
hush 3.1
-
[up]
[top] -
index
make
include
source
logic
grammar
scripts
html
configure
mx
slides
talks
scenes
reports
projects
<body bgcolor="#FFFFFF" text="#000000">
//=============================================================================
// Terrain.h by Frank Luna (C) 2004 All Rights Reserved.
//
// Assumptions: In this book, we only use one terrain per demo and we
// construct the terrain geometry directly in world space.
//=============================================================================
ifndef TERRAIN_H
define TERRAIN_H
include <Heightmap.h>
include <d3dUtil.h>
include <Vertex.h>
<h4 align=right text=red> Terrain</h4><hr>
class Terrain
{
public:
Terrain(UINT vertRows, UINT vertCols, float dx, float dz,
std::string heightmap, std::string tex0, std::string tex1,
std::string tex2, std::string blendMap, float heightScale,
float yOffset);
~Terrain();
DWORD getNumTriangles();
DWORD getNumVertices();
float getWidth();
float getDepth();
void onLostDevice();
void onResetDevice();
// (x, z) relative to terrain's local space.
float getHeight(float x, float z);
void setDirToSunW(const D3DXVECTOR3& d);
void draw();
private:
void buildGeometry();
void buildSubGridMesh(RECT& R, VertexPNT* gridVerts);
void buildEffect();
struct SubGrid
{
ID3DXMesh* mesh;
AABB box;
// For sorting.
bool operator<(const SubGrid& rhs)const;
const static int NUM_ROWS = 33;
const static int NUM_COLS = 33;
const static int NUM_TRIS = (NUM_ROWS-1)*(NUM_COLS-1)*2;
const static int NUM_VERTS = NUM_ROWS*NUM_COLS;
};<hr>
private:
Heightmap mHeightmap;
std::vector mSubGrids;
DWORD mVertRows;
DWORD mVertCols;
float mWidth;
float mDepth;
float mDX;
float mDZ;
IDirect3DTexture9* mTex0;
IDirect3DTexture9* mTex1;
IDirect3DTexture9* mTex2;
IDirect3DTexture9* mBlendMap;
ID3DXEffect* mFX;
D3DXHANDLE mhTech;
D3DXHANDLE mhViewProj;
D3DXHANDLE mhDirToSunW;
D3DXHANDLE mhTex0;
D3DXHANDLE mhTex1;
D3DXHANDLE mhTex2;
D3DXHANDLE mhBlendMap;
};<hr>
endif // TERRAIN_H
<hr>
<style type="text/css">
div.mainnavigate {
margin: 20px 2px;
/*
background-color: #ffffff;
*/
border: 1px solid black;
}
</style>
<div class=xnavigate>
[]
<black>readme</black>
course(s)
preface
<black>I</black>
1
2
<black>II</black>
3
4
<black>III</black>
5
6
7
<black>IV</black>
8
9
10
<black>V</black>
11
12
afterthought(s)
<black>appendix</black>
reference(s)
example(s)
<black>resource(s)</black>
_
</div>
<hr>
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.
</div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2780434-1";
urchinTracker();
</script>
</body>
</html>
<hr>
<hr>
<table cellpadding=10>
<tr>
<td>
<address>
Hush Online Technology
</address>
hush@cs.vu.nl
<br>04/07/09
</td><td>
</td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td>
</td>
</tr>
</table>