LightManager Class Reference

#include <lightManager.h>

Inheritance diagram for LightManager:

Inheritance graph
[legend]
List of all members.

Public Types

 slSunLightType
 slTranslatedSunlightType
 slSpecialLightTypesCount
enum  SpecialLightTypesEnum {
  slSunLightType,
  slTranslatedSunlightType,
  slSpecialLightTypesCount
}

Public Member Functions

 LightManager ()
virtual ~LightManager ()
bool isActive ()
 Return true if light manager is currently activated.
virtual void activate ()
virtual void deactivate ()
virtual const char * getId () const =0
virtual SceneGraphgetSceneManager ()
virtual void setSceneManager (SceneGraph *sceneManager)
virtual AvailableSLInterfacesgetSceneLightingInterface ()=0
virtual LightInfocreateLightInfo ()=0
virtual LightInfogetDefaultLight ()=0
virtual LightInfogetSpecialLight (SpecialLightTypesEnum type)=0
virtual void setSpecialLight (SpecialLightTypesEnum type, LightInfo *light)=0
virtual void registerGlobalLight (LightInfo *light, SimObject *obj, bool zonealreadyset)=0
virtual void unregisterGlobalLight (LightInfo *light)=0
virtual void registerLocalLight (LightInfo *light)=0
virtual void unregisterLocalLight (LightInfo *light)=0
virtual void registerGlobalLights (bool staticlighting)=0
virtual void unregisterAllLights ()=0
virtual void getAllUnsortedLights (LightInfoList &list)=0
 Returns all unsorted and un-scored lights (both global and local).
virtual void setupLights (SceneObject *obj)=0
 For DTS objects.
virtual void setupLights (SceneObject *obj, const Point3F &camerapos, const Point3F &cameradir, F32 viewdist, S32 maxlights)=0
 For the terrain and Atlas.
virtual void setupLights (SceneObject *obj, const Box3F &box, S32 maxlights)=0
 Finds the best lights that overlap with the bounding box based on the box center.
virtual void getBestLights (LightInfoList &list)=0
 Copies the best lights list - this DOESN'T find the lights! Call setupLights to populate the list.
virtual void resetLights ()=0
 Reset the best lights list and all associated data.
virtual void setLightInfo (ProcessedMaterial *pmat, const Material *mat, const SceneGraphData &sgData, U32 pass, GFXShaderConstBuffer *shaderConsts)=0
 Sets shader constants / textures for light infos.
virtual bool initTextureStateBlock (const U32 currTexFlag, const U32 textureSlot, GFXStateBlockDesc *stateblock)=0
 Allows us to setup texture states, return true if we've done work.
virtual bool setTextureStage (const SceneGraphData &sgData, const U32 currTexFlag, const U32 textureSlot, GFXShaderConstBuffer *shaderConsts, ShaderConstHandles *handles)=0
 Allows us to set textures during the Material::setTextureStage call, return true if we've done work.
virtual bool lightScene (const char *callback, const char *param)
virtual bool canActivate ()
virtual void hdrPrepare (const Point2I &offset, const Point2I &extent)=0
virtual void hdrRender ()=0

Private Attributes

SceneGraphmSceneManager
bool mIsActive

Member Enumeration Documentation

Enumerator:
slSunLightType 
slTranslatedSunlightType 
slSpecialLightTypesCount 


Constructor & Destructor Documentation

LightManager::LightManager (  ) 

virtual LightManager::~LightManager (  )  [inline, virtual]


Member Function Documentation

bool LightManager::isActive (  )  [inline]

Return true if light manager is currently activated.

virtual void LightManager::activate (  )  [virtual]

Reimplemented in BasicLightManager, and sgLightManager.

virtual void LightManager::deactivate (  )  [virtual]

Reimplemented in BasicLightManager, and sgLightManager.

virtual const char* LightManager::getId (  )  const [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual SceneGraph* LightManager::getSceneManager (  )  [virtual]

virtual void LightManager::setSceneManager ( SceneGraph sceneManager  )  [virtual]

virtual AvailableSLInterfaces* LightManager::getSceneLightingInterface (  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual LightInfo* LightManager::createLightInfo (  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual LightInfo* LightManager::getDefaultLight (  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual LightInfo* LightManager::getSpecialLight ( SpecialLightTypesEnum  type  )  [pure virtual]

Implemented in BasicLightManager.

virtual void LightManager::setSpecialLight ( SpecialLightTypesEnum  type,
LightInfo light 
) [pure virtual]

Implemented in BasicLightManager.

virtual void LightManager::registerGlobalLight ( LightInfo light,
SimObject obj,
bool  zonealreadyset 
) [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::unregisterGlobalLight ( LightInfo light  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::registerLocalLight ( LightInfo light  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::unregisterLocalLight ( LightInfo light  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::registerGlobalLights ( bool  staticlighting  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::unregisterAllLights (  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::getAllUnsortedLights ( LightInfoList list  )  [pure virtual]

Returns all unsorted and un-scored lights (both global and local).

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::setupLights ( SceneObject obj  )  [pure virtual]

For DTS objects.

Finds the best lights including a composite based on the environmental ambient lighting amount *and installs them in OpenGL*.

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::setupLights ( SceneObject obj,
const Point3F camerapos,
const Point3F cameradir,
F32  viewdist,
S32  maxlights 
) [pure virtual]

For the terrain and Atlas.

Finds the best lights in the viewing area based on distance to camera.

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::setupLights ( SceneObject obj,
const Box3F box,
S32  maxlights 
) [pure virtual]

Finds the best lights that overlap with the bounding box based on the box center.

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::getBestLights ( LightInfoList list  )  [pure virtual]

Copies the best lights list - this DOESN'T find the lights! Call setupLights to populate the list.

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::resetLights (  )  [pure virtual]

Reset the best lights list and all associated data.

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::setLightInfo ( ProcessedMaterial pmat,
const Material mat,
const SceneGraphData sgData,
U32  pass,
GFXShaderConstBuffer shaderConsts 
) [pure virtual]

Sets shader constants / textures for light infos.

Implemented in BasicLightManager, and sgLightManager.

virtual bool LightManager::initTextureStateBlock ( const U32  currTexFlag,
const U32  textureSlot,
GFXStateBlockDesc stateblock 
) [pure virtual]

Allows us to setup texture states, return true if we've done work.

Implemented in BasicLightManager, and sgLightManager.

virtual bool LightManager::setTextureStage ( const SceneGraphData sgData,
const U32  currTexFlag,
const U32  textureSlot,
GFXShaderConstBuffer shaderConsts,
ShaderConstHandles handles 
) [pure virtual]

Allows us to set textures during the Material::setTextureStage call, return true if we've done work.

Implemented in BasicLightManager, and sgLightManager.

virtual bool LightManager::lightScene ( const char *  callback,
const char *  param 
) [virtual]

Reimplemented in BasicLightManager, and sgLightManager.

virtual bool LightManager::canActivate (  )  [virtual]

Reimplemented in BasicLightManager.

virtual void LightManager::hdrPrepare ( const Point2I offset,
const Point2I extent 
) [pure virtual]

Implemented in BasicLightManager, and sgLightManager.

virtual void LightManager::hdrRender (  )  [pure virtual]

Implemented in BasicLightManager, and sgLightManager.


Member Data Documentation