28#ifndef __Distance_Lod_Strategy_H__
29#define __Distance_Lod_Strategy_H__
A viewpoint from which the scene will be rendered.
Level of detail strategy based on distance from camera to an object's bounding box.
static DistanceLodBoxStrategy & getSingleton(void)
Override standard Singleton retrieval.
static DistanceLodBoxStrategy * getSingletonPtr(void)
Override standard Singleton retrieval.
DistanceLodBoxStrategy()
Default constructor.
Real getSquaredDepth(const MovableObject *movableObject, const Ogre::Camera *camera) const
Get the squared depth from camera to the LOD object.
Level of detail strategy based on distance from camera to an object's bounding sphere.
Real getSquaredDepth(const MovableObject *movableObject, const Ogre::Camera *camera) const
Get the squared depth from camera to the LOD object.
static DistanceLodSphereStrategy & getSingleton(void)
Override standard Singleton retrieval.
DistanceLodSphereStrategy()
Default constructor.
static DistanceLodSphereStrategy * getSingletonPtr(void)
Override standard Singleton retrieval.
Level of detail strategy based on distance from camera.
virtual void sort(Mesh::MeshLodUsageList &meshLodUsageList) const
Sort mesh LOD usage list from greatest to least detail.
bool isReferenceViewEnabled() const
Determine if use of the reference view is enabled.
virtual Real transformBias(Real factor) const
Transform LOD bias so it only needs to be multiplied by the LOD value.
void setReferenceViewEnabled(bool value)
Enables to disables use of the reference view.
virtual ushort getIndex(Real value, const Material::LodValueList &materialLodValueList) const
Get the index of the LOD usage which applies to a given value.
virtual Real getValueImpl(const MovableObject *movableObject, const Camera *camera) const
Compute the LOD value for a given movable object relative to a given camera.
void setReferenceView(Real viewportWidth, Real viewportHeight, Radian fovY)
Sets the reference view upon which the distances were based.
virtual Real transformUserValue(Real userValue) const
Transform user supplied value to internal value.
virtual Real getSquaredDepth(const MovableObject *movableObject, const Ogre::Camera *camera) const =0
Get the squared depth from camera to the LOD object.
DistanceLodStrategy(const String &name)
Default constructor.
virtual bool isSorted(const Mesh::LodValueList &values) const
Determine if the LOD values are sorted from greatest detail to least detail.
virtual ushort getIndex(Real value, const Mesh::MeshLodUsageList &meshLodUsageList) const
Get the index of the LOD usage which applies to a given value.
virtual Real getBaseValue() const
Get the value of the first (highest) level of detail.
bool mReferenceViewEnabled
Strategy for determining level of detail.
vector< Real >::type LodValueList
distance list used to specify LOD
vector< MeshLodUsage >::type MeshLodUsageList
vector< Real >::type LodValueList
Abstract class defining a movable object in a scene.
Wrapper class which indicates a given angle value is in Radians.
Template class for creating single-instance global classes.
float Real
Software floating point type.