OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
Strategy for determining level of detail. More...
#include <OgreLodStrategy.h>
Public Member Functions | |
LodStrategy (const String &name) | |
Constructor accepting name. | |
virtual | ~LodStrategy () |
Virtual destructor. | |
void | assertSorted (const Mesh::LodValueList &values) const |
Assert that the LOD values are sorted from greatest detail to least detail. | |
virtual Real | getBaseValue () const =0 |
Get the value of the first (highest) level of detail. | |
virtual ushort | getIndex (Real value, const Material::LodValueList &materialLodValueList) const =0 |
Get the index of the LOD usage which applies to a given value. | |
virtual ushort | getIndex (Real value, const Mesh::MeshLodUsageList &meshLodUsageList) const =0 |
Get the index of the LOD usage which applies to a given value. | |
const String & | getName () const |
Get the name of this strategy. | |
Real | getValue (const MovableObject *movableObject, const Camera *camera) const |
Compute the LOD value for a given movable object relative to a given camera. | |
virtual bool | isSorted (const Mesh::LodValueList &values) const =0 |
Determine if the LOD values are sorted from greatest detail to least detail. | |
virtual void | sort (Mesh::MeshLodUsageList &meshLodUsageList) const =0 |
Sort mesh LOD usage list from greatest to least detail. | |
virtual Real | transformBias (Real factor) const =0 |
Transform LOD bias so it only needs to be multiplied by the LOD value. | |
virtual Real | transformUserValue (Real userValue) const |
Transform user supplied value to internal value. | |
Strategy for determining level of detail.
Generally, to create a new LOD strategy, all of the following will need to be implemented: getValueImpl, getBaseValue, transformBias, getIndex, sort, and isSorted. In addition, transformUserValue may be overridden.
|
virtual |
Virtual destructor.
Get the value of the first (highest) level of detail.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
Transform LOD bias so it only needs to be multiplied by the LOD value.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
Transform user supplied value to internal value.
By default, performs no transformation.
Do not throw exceptions for invalid values here, as the LOD strategy may be changed such that the values become valid.
Reimplemented in Ogre::DistanceLodStrategyBase.
Real Ogre::LodStrategy::getValue | ( | const MovableObject * | movableObject, |
const Camera * | camera | ||
) | const |
Compute the LOD value for a given movable object relative to a given camera.
|
pure virtual |
Get the index of the LOD usage which applies to a given value.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
|
pure virtual |
Get the index of the LOD usage which applies to a given value.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
|
pure virtual |
Sort mesh LOD usage list from greatest to least detail.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
|
pure virtual |
Determine if the LOD values are sorted from greatest detail to least detail.
Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.
void Ogre::LodStrategy::assertSorted | ( | const Mesh::LodValueList & | values | ) | const |
Assert that the LOD values are sorted from greatest detail to least detail.