vtHeightField3d Class Reference

Inheritance diagram for vtHeightField3d:

Inheritance graph
[legend]

List of all members.

Public Member Functions

void Initialize (const LinearUnits units, const DRECT &earthextents, float fMinHeight, float fMaxHeight)
virtual void SetEarthExtents (const DRECT &ext)
virtual bool FindAltitudeAtPoint (const FPoint3 &p3, float &fAltitude, bool bTrue=false, int iCultureFlags=0, FPoint3 *vNormal=NULL) const =0
virtual bool CastRayToSurface (const FPoint3 &point, const FPoint3 &dir, FPoint3 &result) const =0
 Find the intersection point of a ray with the heightfield.
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 Attributes

FRECT m_WorldExtents
vtLocalConversion m_Conversion

Protected Member Functions

void UpdateWorldExtents ()

Protected Attributes

float m_fDiagonalLength
CultureExtension * m_pCulture


Detailed Description

This class extents vtHeightField with the abilty to operate in 'world' coordinates, that is, an artificial meters-based 3D coordinate system which is much better suited for many tasks than trying to operate directly on the raw 2D 'earth' coordinates.

Member Function Documentation

bool vtHeightField3d::ContainsWorldPoint ( float  x,
float  z 
)

Tests whether a given point is within the current terrain

bool vtHeightField3d::ConvertEarthToSurfacePoint ( const DPoint2 epos,
FPoint3 p3,
int  iCultureFlags = 0,
bool  bTrue = false 
)

Converts a earth coordinate (project or geographic) to a world coordinate on the surface of the heightfield.

virtual bool vtHeightField3d::FindAltitudeAtPoint ( const FPoint3 p3,
float &  fAltitude,
bool  bTrue = false,
int  iCultureFlags = 0,
FPoint3 vNormal = NULL 
) const [pure virtual]

Given a point in world coordinates, determine the elevation at that point.

Parameters:
p3 The point to test. Only the X and Z values are used.
fAltitude The resulting elevation at that point, by reference.
bTrue True to test true elevation. False to test the displayed elevation (possibly exaggerated.)
iCultureFlags Pass 0 to test only the heightfield itself, non-zero to test any culture objects which may be sitting on the heightfield. Values include:
  • CE_STRUCTURES Test structures on the ground.
  • CE_ROADS Test roads on the ground.
  • CE_ALL Test everything on the ground.
vNormal If you supply a pointer to a vector, it will be set to the upward-pointing surface normal at the ground point.
Returns:
true if successful, false if there was nothing found at that point.

Implemented in vtElevationGrid, and vtTin.

int vtHeightField3d::PointIsAboveTerrain ( const FPoint3 p  )  const

Returns:
0 if below terrain, 1 if above terrain, -1 if off terrain.

void vtHeightField3d::SetEarthExtents ( const DRECT ext  )  [virtual]

Set the geographic extents of the grid.

Reimplemented from vtHeightField.

Reimplemented in vtHeightFieldGrid3d.


Generated on Wed Dec 24 13:08:41 2008 for vtdata library by  doxygen 1.5.7.1