Umasoft
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Protected Member Functions | List of all members
BruteTerrain Class Reference

#include <BruteTerrain.h>

Inheritance diagram for BruteTerrain:
vtDynTerrainGeom vtDynGeom vtHeightFieldGrid3d vtGeode vtHeightField3d NodeExtension vtHeightField

Public Member Functions

DTErr Init (const vtElevationGrid *pGrid, float fZScale)
 
void DoRender ()
 
void DoCulling (const vtCamera *pCam)
 
float GetElevation (int iX, int iZ, bool bTrue=false) const
 
void GetWorldLocation (int iX, int iZ, FPoint3 &p, bool bTrue=false) const
 
float GetVerticalExag () const
 
- Public Member Functions inherited from vtDynTerrainGeom
virtual void Init2 ()
 
DTErr BasicInit (const vtElevationGrid *pGrid)
 
virtual void SetVerticalExag (float fExag)
 
virtual void SetPolygonTarget (int iPolygonCount)
 
int GetPolygonTarget ()
 
int GetNumDrawnTriangles ()
 
void SetDetailMaterial (vtMaterial *pApp, float fTiling, float fDistance)
 
void EnableDetail (bool bOn)
 
bool GetDetail ()
 
void SetupTexGen (float fTiling)
 
void DisableTexGen ()
 
void DoCalcBoundBox (FBox3 &box)
 
void DoCull (const vtCamera *pCam)
 
bool FindAltitudeOnEarth (const DPoint2 &p, float &fAltitude, bool bTrue=false) const
 
bool FindAltitudeAtPoint (const FPoint3 &p3, float &fAltitude, bool bTrue=false, int iCultureFlags=0, FPoint3 *vNormal=NULL) const
 
virtual void SetElevation (int i, int j, float fValue, bool bTrue=false)
 
void SetCull (bool bOnOff)
 
void CullOnce ()
 
void PreRender () const
 
void PostRender () const
 
- Public Member Functions inherited from vtDynGeom
int IsVisible (const FSphere &sphere) const
 
int IsVisible (const FPoint3 &point0, const FPoint3 &point1, const FPoint3 &point2, const float fTolerance=0.0f) const
 
int IsVisible (const FPoint3 &point, float radius)
 
bool IsVisible (const FPoint3 &point) const
 
void ApplyMaterial (vtMaterial *mat)
 
- Public Member Functions inherited from vtGeode
vtGeodeCloneGeode ()
 
void CloneFromGeode (const vtGeode *rhs)
 
void AddMesh (vtMesh *pMesh, int iMatIdx)
 
void RemoveMesh (vtMesh *pMesh)
 
void AddTextMesh (vtTextMesh *pMesh, int iMatIdx)
 
uint GetNumMeshes () const
 
vtMeshGetMesh (int i) const
 
vtTextMeshGetTextMesh (int i) const
 
virtual void SetMaterials (const class vtMaterialArray *mats)
 
const vtMaterialArrayGetMaterials () const
 
vtMaterialGetMaterial (int idx)
 
void SetMeshMatIndex (vtMesh *pMesh, int iMatIdx)
 
- Public Member Functions inherited from NodeExtension
void SetEnabled (bool bOn)
 
bool GetEnabled () const
 
void SetCastShadow (bool b)
 Set this node to cast a shadow, if it is under a vtShadow node. Default is false.
 
bool GetCastShadow ()
 Get whether this node casts a shadow.
 
void GetBoundSphere (FSphere &sphere, bool bGlobal=false)
 Get the Bounding Sphere of the node.
 
void SetOsgNode (osg::Node *n)
 
- Public Member Functions inherited from vtHeightFieldGrid3d
void Initialize (const LinearUnits units, const DRECT &earthextents, float fMinHeight, float fMaxHeight, int cols, int rows)
 
virtual void SetEarthExtents (const DRECT &ext)
 
bool CastRayToSurface (const FPoint3 &point, const FPoint3 &dir, FPoint3 &result) const
 
bool LineOfSight (const FPoint3 &point1, const FPoint3 &point2) const
 
DPoint2 GetSpacing () const
 
FPoint2 GetWorldSpacing () const
 
void GetDimensions (int &nColumns, int &nRows) const
 
int NumColumns ()
 
int NumRows ()
 
void EarthToGrid (const DPoint2 &epos, IPoint2 &ipos)
 
void WorldToGrid (const FPoint3 &pos, IPoint2 &ipos)
 
float GetInterpolatedElevation (double findex_x, double findex_y) const
 
int FindNumUnknown ()
 
bool ColorDibFromElevation (vtBitmapBase *pBM, const ColorMap *cmap, int iGranularity, const RGBAi &nodata, bool progress_callback(int)=NULL)
 
bool ColorDibFromTable (vtBitmapBase *pBM, std::vector< RGBi > &table, float fMin, float fMax, const RGBAi &nodata, bool progress_callback(int)=NULL)
 
void ShadeDibFromElevation (vtBitmapBase *pBM, const FPoint3 &light_dir, float fLightFactor, float fAmbient=0.1f, float fGamma=1.0f, bool bTrue=false, bool progress_callback(int)=NULL)
 
void ShadeQuick (vtBitmapBase *pBM, float light_factor, bool bTrue=false, bool progress_callback(int)=NULL)
 
void ShadowCastDib (vtBitmapBase *pBM, const FPoint3 &ight_dir, float fLightFactor, float fAmbient, bool progress_callback(int)=NULL)
 
- Public Member Functions inherited from vtHeightField3d
void Initialize (const LinearUnits units, const DRECT &earthextents, float fMinHeight, float fMaxHeight)
 
int PointIsAboveTerrain (const FPoint3 &p) const
 
bool ConvertEarthToSurfacePoint (const DPoint2 &epos, FPoint3 &p3, int iCultureFlags=0, bool bTrue=false)
 
bool ContainsWorldPoint (float x, float z)
 
void GetCenter (FPoint3 &center)
 
void SetCulture (CultureExtension *ext)
 
- Public Member Functions inherited from vtHeightField
void Initialize (const DRECT &extents, float fMinHeight, float fMaxHeight)
 
bool ContainsEarthPoint (const DPoint2 &p, bool bInclusive=false) const
 
DRECTGetEarthExtents ()
 
const DRECTGetEarthExtents () const
 
void GetHeightExtents (float &fMinHeight, float &fMaxHeight) const
 

Protected Member Functions

void RenderSurface ()
 
void RenderPass ()
 
void LoadSingleMaterial ()
 

Additional Inherited Members

- Public Attributes inherited from vtDynTerrainGeom
int m_iTotalTriangles
 
int m_iDrawnTriangles
 
- Protected Attributes inherited from vtDynTerrainGeom
float * m_fXLookup
 
float * m_fZLookup
 
int m_iPolygonTarget
 
bool m_bCulleveryframe
 
bool m_bCullonce
 
float m_fDetailTiling
 
float m_fDetailDistance
 
bool m_bDetailTexture
 
vtMaterialm_pDetailMat
 

Detailed Description

This class provides a simplistic example of how to add a terrain-rendering implementation to the vtlib library. It contains the bare skeleton of terrain rendering code, taking an elevation grid as input and doing a naive, brute-force rendering all the geometry via OpenGL each frame.

To add, or wrap, your own terrain rendering algorithm, simply make a copy of BruteTerrain and rename it, then fill in the methods with your own functionality.


The documentation for this class was generated from the following files: