SceneGraph Class Reference

#include <sceneGraph.h>

List of all members.

Public Member Functions

 SceneGraph (bool isClient)
 ~SceneGraph ()
U32 getStateKey ()
LightManagergetLightManager ()
void setLightManager (LightManager *lm)
F32 getFogHeightOffset ()
F32 getFogInvHeightRange ()
SkygetCurrentSky ()
TerrainBlockgetCurrentTerrain ()
DecalManagergetCurrentDecalManager ()
void getWaterObjectList (SimpleQueryList &)
GFXTexHandlegetFogTexture ()
GFXTexHandlegetBlackFogTexture ()
GFXTexHandle getFogTextureIntensity ()
void setReflectPass (bool isReflecting)
bool isReflectPass ()
void initRender ()
 Init rendering dependent systems: render instance system, lighting system.
void setNonClipProjection (MatrixF &proj)
MatrixF getNonClipProjection ()
GFXTexHandlegetSfxBBCopy ()
GlowBuffergetGlowBuff ()
void findZone (const Point3F &, SceneObject *&, U32 &)
SceneObject Management
bool addObjectToScene (SceneObject *)
void removeObjectFromScene (SceneObject *)
void zoneInsert (SceneObject *)
void zoneRemove (SceneObject *)
Zone management
void registerZones (SceneObject *, U32 numZones)
void unregisterZones (SceneObject *)
SceneObjectgetZoneOwner (const U32 zone)
Rendering and Scope Management
void renderScene (const U32 objectMask=0xffffffff)
void scopeScene (const Point3F &scopePosition, const F32 scopeDistance, NetConnection *netConnection)
Camera
For objects, valid only during the rendering cycle

const Point3FgetBaseCameraPosition () const
const Point3FgetCurrCameraPosition () const
Fog/Visibility Management
ColorF getFogColor ()
F32 getFogDistance ()
F32 getVisibleDistance ()
F32 getFogDistanceMod ()
F32 getVisibleDistanceMod ()
void setFogDistance (F32 dist)
void setVisibleDistance (F32 dist)
void setFogColor (ColorF fogColor)
void setFogVolumes (U32 numFogVolumes, FogVolume *fogVolumes)
void getFogVolumes (U32 &numFogVolumes, FogVolume *&fogVolumes)
void buildFogTexture (SceneState *pState)
void getFogCoordPair (F32 dist, F32 z, F32 &x, F32 &y)
F32 getFogCoord (F32 dist, F32 z)
dtr Display Target Resolution
Some rendering must be targeted at a specific display resolution. This display resolution is distinct from the current RT's size (such as when rendering a reflection to a texture, for instance) so we store the size at which we're going to display the results of the current render.

void setDisplayTargetResolution (const Point2I &size)
const Point2IgetDisplayTargetResolution () const

Static Public Member Functions

static void setLightingSystem (LightManager *lm)

Public Attributes

Point3F mNormCamPos
 This var is for cases where you need the "normal" camera position if you are in a reflection pass.

Static Public Attributes

static F32 smVisibleDistanceMod
static bool useSpecial
static bool renderFog

Protected Member Functions

void addRefPoolBlock ()
SceneObjectRefallocateObjectRef ()
void freeObjectRef (SceneObjectRef *)
void buildSceneTree (SceneState *, SceneObject *, const U32, const U32, const U32)
void traverseSceneTree (SceneState *pState)
void treeTraverseVisit (SceneObject *, SceneState *, const U32)
void compactZonesCheck ()
bool alreadyManagingZones (SceneObject *) const
void rezoneObject (SceneObject *)
void addToWaterList (SceneObject *obj)
void removeFromWaterList (SceneObject *obj)

Protected Attributes

GFXTexHandle mSfxBBCopy
GFXTexHandle mFogTexture
GFXTexHandle mBlackFogTexture
GFXTexHandle mFogTextureIntensity
bool mIsClient
bool mReflectPass
MatrixF mNonClipProj
bool mHazeArrayDirty
F32 mInvVisibleDistance
F32 mHeightRangeBase
F32 mHeightOffset
F32 mInvHeightRange
U32 mCurrZoneEnd
U32 mNumActiveZones
Point3F mBaseCameraPosition
Point3F mCurrCameraPosition
U32 mNumFogVolumes
FogVolume mFogVolumes [MaxFogVolumes]
F32 mFogDistance
F32 mVisibleDistance
ColorF mFogColor
bool mFogColorDirty
LightManagermLightManager
SkymCurrSky
TerrainBlockmCurrTerrain
DecalManagermCurrDecalManager
Vector< SceneObject * > mWaterList
GlowBuffermGlowBuffer
SceneObjectRefmFreeRefPool
Vector< SceneObjectRef * > mRefPoolBlocks
Point2I mDisplayTargetResolution
Vector< ZoneManagermZoneManagers
Vector< SceneObjectRef * > mZoneLists
 Zone Lists.

Static Protected Attributes

static const U32 csmMaxTraversalDepth
static U32 smStateKey
static F32 mHazeArray [FogTextureDistSize]
static U32 mHazeArrayi [FogTextureDistSize]
static F32 mDistArray [FogTextureDistSize]
static const U32 csmRefPoolBlockSize

Private Member Functions

void setBaseCameraPosition (const Point3F &)
void setCurrCameraPosition (const Point3F &)

Classes

struct  ZoneManager


Constructor & Destructor Documentation

SceneGraph::SceneGraph ( bool  isClient  ) 

SceneGraph::~SceneGraph (  ) 


Member Function Documentation

bool SceneGraph::addObjectToScene ( SceneObject  ) 

void SceneGraph::removeObjectFromScene ( SceneObject  ) 

void SceneGraph::zoneInsert ( SceneObject  ) 

void SceneGraph::zoneRemove ( SceneObject  ) 

void SceneGraph::registerZones ( SceneObject ,
U32  numZones 
)

void SceneGraph::unregisterZones ( SceneObject  ) 

SceneObject * SceneGraph::getZoneOwner ( const U32  zone  )  [inline]

void SceneGraph::renderScene ( const U32  objectMask = 0xffffffff  ) 

void SceneGraph::scopeScene ( const Point3F scopePosition,
const F32  scopeDistance,
NetConnection netConnection 
)

const Point3F & SceneGraph::getBaseCameraPosition (  )  const [inline]

const Point3F & SceneGraph::getCurrCameraPosition (  )  const [inline]

ColorF SceneGraph::getFogColor (  )  [inline]

F32 SceneGraph::getFogDistance (  )  [inline]

F32 SceneGraph::getVisibleDistance (  )  [inline]

F32 SceneGraph::getFogDistanceMod (  )  [inline]

F32 SceneGraph::getVisibleDistanceMod (  )  [inline]

void SceneGraph::setFogDistance ( F32  dist  ) 

void SceneGraph::setVisibleDistance ( F32  dist  ) 

void SceneGraph::setFogColor ( ColorF  fogColor  ) 

void SceneGraph::setFogVolumes ( U32  numFogVolumes,
FogVolume fogVolumes 
)

void SceneGraph::getFogVolumes ( U32 numFogVolumes,
FogVolume *&  fogVolumes 
) [inline]

void SceneGraph::buildFogTexture ( SceneState pState  ) 

void SceneGraph::getFogCoordPair ( F32  dist,
F32  z,
F32 x,
F32 y 
) [inline]

F32 SceneGraph::getFogCoord ( F32  dist,
F32  z 
)

U32 SceneGraph::getStateKey (  )  [inline]

void SceneGraph::setBaseCameraPosition ( const Point3F  )  [inline, private]

void SceneGraph::setCurrCameraPosition ( const Point3F  )  [inline, private]

void SceneGraph::addRefPoolBlock (  )  [protected]

SceneObjectRef * SceneGraph::allocateObjectRef (  )  [inline, protected]

void SceneGraph::freeObjectRef ( SceneObjectRef  )  [inline, protected]

void SceneGraph::setDisplayTargetResolution ( const Point2I size  ) 

const Point2I& SceneGraph::getDisplayTargetResolution (  )  const

LightManager* SceneGraph::getLightManager (  ) 

void SceneGraph::setLightManager ( LightManager lm  ) 

static void SceneGraph::setLightingSystem ( LightManager lm  )  [static]

F32 SceneGraph::getFogHeightOffset (  )  [inline]

F32 SceneGraph::getFogInvHeightRange (  )  [inline]

Sky* SceneGraph::getCurrentSky (  )  [inline]

TerrainBlock* SceneGraph::getCurrentTerrain (  )  [inline]

DecalManager* SceneGraph::getCurrentDecalManager (  )  [inline]

void SceneGraph::getWaterObjectList ( SimpleQueryList  ) 

GFXTexHandle& SceneGraph::getFogTexture (  )  [inline]

GFXTexHandle& SceneGraph::getBlackFogTexture (  )  [inline]

GFXTexHandle SceneGraph::getFogTextureIntensity (  )  [inline]

void SceneGraph::setReflectPass ( bool  isReflecting  )  [inline]

bool SceneGraph::isReflectPass (  )  [inline]

void SceneGraph::initRender (  ) 

Init rendering dependent systems: render instance system, lighting system.

void SceneGraph::setNonClipProjection ( MatrixF proj  )  [inline]

MatrixF SceneGraph::getNonClipProjection (  )  [inline]

GFXTexHandle& SceneGraph::getSfxBBCopy (  )  [inline]

GlowBuffer* SceneGraph::getGlowBuff (  )  [inline]

void SceneGraph::buildSceneTree ( SceneState ,
SceneObject ,
const   U32,
const   U32,
const   U32 
) [protected]

void SceneGraph::traverseSceneTree ( SceneState pState  )  [protected]

void SceneGraph::treeTraverseVisit ( SceneObject ,
SceneState ,
const   U32 
) [protected]

void SceneGraph::compactZonesCheck (  )  [protected]

bool SceneGraph::alreadyManagingZones ( SceneObject  )  const [protected]

void SceneGraph::findZone ( const Point3F ,
SceneObject *&  ,
U32  
)

void SceneGraph::rezoneObject ( SceneObject  )  [protected]

void SceneGraph::addToWaterList ( SceneObject obj  )  [protected]

void SceneGraph::removeFromWaterList ( SceneObject obj  )  [protected]


Member Data Documentation

const U32 SceneGraph::csmMaxTraversalDepth [static, protected]

U32 SceneGraph::smStateKey [static, protected]

This var is for cases where you need the "normal" camera position if you are in a reflection pass.

Used for correct fog calculations in reflections.

F32 SceneGraph::mHazeArray[FogTextureDistSize] [static, protected]

U32 SceneGraph::mHazeArrayi[FogTextureDistSize] [static, protected]

F32 SceneGraph::mDistArray[FogTextureDistSize] [static, protected]

FogVolume SceneGraph::mFogVolumes[MaxFogVolumes] [protected]

Sky* SceneGraph::mCurrSky [protected]

const U32 SceneGraph::csmRefPoolBlockSize [static, protected]

Zone Lists.

Note:
The object refs in this are somewhat singular in that the object pointer does not point to a referenced object, but the owner of that zone...