Umasoft
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Nevada.h
1 //
2 // Nevada.h
3 //
4 // Terrain implementation specific to Black Rock City, Nevada.
5 //
6 // Copyright (c) 2001-2008 Virtual Terrain Project
7 // Free for all uses, see license.txt for details.
8 //
9 
10 #ifndef NEVADAH
11 #define NEVADAH
12 
13 #include "vtlib/core/Terrain.h"
14 #include "vtlib/core/Engine.h"
15 
16 class NevadaTerrain : public vtTerrain
17 {
18 public:
19  NevadaTerrain();
20 
21  void CreateCustomCulture();
22 
23  void SetWaterHeight(float fWaterHeight);
24  void SetWaterOn(bool on);
25 
26  void CreateWater();
27  void CreateDetailTextures();
28 
29  void CreatePast();
30  void CreatePresent();
31  void CreateFuture();
32 
33  vtGroup *m_pPast, *m_pPresent, *m_pFuture;
34  vtLodGrid *m_pTreeGrid;
35  vtMovGeode *m_pWaterShape, *m_pWaterShape2;
36  ImagePtr m_pDetailTexture, m_pDetailTexture2;
37  vtMaterial *m_pDetailMat;
38  vtMaterial *m_pDetailMat2;
39  vtMaterialArray *m_pMats;
40 
41  FPoint3 man_location;
42  float m_fGround, m_fHigh, m_fLow;
43 };
44 
45 class JumpingEngine : public vtEngine
46 {
47 public:
48  JumpingEngine(FPoint3 center, float fScale, float fBase, float fJumpHeight, float fPhase);
49  bool Eval(float t);
50 
51  FPoint3 m_center;
52  float m_fBase;
53  float m_fJumpHeight;
54  FPoint3 m_vel;
55  float m_fPhase;
56  float m_fScale;
57 };
58 
60 
61 class EpochEngine : public vtEngine
62 {
63 public:
64  EpochEngine(class NevadaTerrain *pNevada, float fLow, float fHigh,
65  vtMaterial* pastApp, vtMaterial* presentApp);
66 
67  void Eval();
68 
69  void SetYear(int year);
70  int m_iYear;
71  int m_iTargetYear;
72  int m_iSpeed;
73  int m_iShownYear;
74 
75  class NevadaTerrain *m_pNevada;
76 
77  float m_fLow;
78  float m_fHigh;
79  float m_fWaterHeight;
80 
81  vtGeode *m_pSprite;
82  vtTextMesh *m_pSpriteText;
83 
84  vtMaterial *m_pPastMat;
85  vtMaterial *m_pPresentMat;
86 
87  vtGroup *m_pPlants;
88 };
89 
90 #endif // NEVADAH
91