OGRE  master
Object-Oriented Graphics Rendering Engine
Ogre::LodStrategy Class Referenceabstract

Strategy for determining level of detail. More...

#include <OgreLodStrategy.h>

+ Inheritance diagram for Ogre::LodStrategy:

Public Member Functions

 LodStrategy (const String &name)
 Constructor accepting name. More...
 
virtual ~LodStrategy ()
 Virtual destructor. More...
 
void assertSorted (const Mesh::LodValueList &values) const
 Assert that the LOD values are sorted from greatest detail to least detail. More...
 
virtual Real getBaseValue () const =0
 Get the value of the first (highest) level of detail. More...
 
virtual ushort getIndex (Real value, const Mesh::MeshLodUsageList &meshLodUsageList) const =0
 Get the index of the LOD usage which applies to a given value. More...
 
virtual ushort getIndex (Real value, const Material::LodValueList &materialLodValueList) const =0
 Get the index of the LOD usage which applies to a given value. More...
 
const StringgetName () const
 Get the name of this strategy. More...
 
Real getValue (const MovableObject *movableObject, const Camera *camera) const
 Compute the LOD value for a given movable object relative to a given camera. More...
 
virtual bool isSorted (const Mesh::LodValueList &values) const =0
 Determine if the LOD values are sorted from greatest detail to least detail. More...
 
virtual void sort (Mesh::MeshLodUsageList &meshLodUsageList) const =0
 Sort mesh LOD usage list from greatest to least detail. More...
 
virtual Real transformBias (Real factor) const =0
 Transform LOD bias so it only needs to be multiplied by the LOD value. More...
 
virtual Real transformUserValue (Real userValue) const
 Transform user supplied value to internal value. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LodStrategy()

Ogre::LodStrategy::LodStrategy ( const String name)

Constructor accepting name.

◆ ~LodStrategy()

virtual Ogre::LodStrategy::~LodStrategy ( )
virtual

Virtual destructor.

Member Function Documentation

◆ getBaseValue()

virtual Real Ogre::LodStrategy::getBaseValue ( ) const
pure virtual

Get the value of the first (highest) level of detail.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ transformBias()

virtual Real Ogre::LodStrategy::transformBias ( Real  factor) const
pure virtual

Transform LOD bias so it only needs to be multiplied by the LOD value.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ transformUserValue()

virtual Real Ogre::LodStrategy::transformUserValue ( Real  userValue) const
virtual

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.

◆ getValue()

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.

◆ getIndex() [1/2]

virtual ushort Ogre::LodStrategy::getIndex ( Real  value,
const Mesh::MeshLodUsageList meshLodUsageList 
) const
pure virtual

Get the index of the LOD usage which applies to a given value.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ getIndex() [2/2]

virtual ushort Ogre::LodStrategy::getIndex ( Real  value,
const Material::LodValueList materialLodValueList 
) const
pure virtual

Get the index of the LOD usage which applies to a given value.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ sort()

virtual void Ogre::LodStrategy::sort ( Mesh::MeshLodUsageList meshLodUsageList) const
pure virtual

Sort mesh LOD usage list from greatest to least detail.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ isSorted()

virtual bool Ogre::LodStrategy::isSorted ( const Mesh::LodValueList values) const
pure virtual

Determine if the LOD values are sorted from greatest detail to least detail.

Implemented in Ogre::DistanceLodStrategyBase, and Ogre::PixelCountLodStrategyBase.

◆ assertSorted()

void Ogre::LodStrategy::assertSorted ( const Mesh::LodValueList values) const

Assert that the LOD values are sorted from greatest detail to least detail.

◆ getName()

const String& Ogre::LodStrategy::getName ( void  ) const
inline

Get the name of this strategy.


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