# Ogre::LodStrategy Class Reference
[LOD]

Strategy for determining level of detail. More...

`#include <OgreLodStrategy.h>`

Inheritance diagram for Ogre::LodStrategy:
[legend]

List of all members.

## Public Member Functions

| LodStrategy (const String &name)
| Constructor accepting name.
virtual | ~LodStrategy ()
| Virtual destructor.
virtual Real | getBaseValue () const =0
| Get the value of the first (highest) level of 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
| Transforum user supplied value to internal value.
Real | getValue (const MovableObject *movableObject, const Camera *camera) const
| Compute the lod value for a given movable object relative to a given camera.
virtual ushort | getIndex (Real value, const Mesh::MeshLodUsageList &meshLodUsageList) const =0
| Get the index of the lod usage which applies to a given value.
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 void | sort (Mesh::MeshLodUsageList &meshLodUsageList) const =0
| Sort mesh lod usage list from greatest to least detail.
virtual bool | isSorted (const Mesh::LodValueList &values) const =0
| Determine if the lod values are sorted from greatest detail to least detail.
void | assertSorted (const Mesh::LodValueList &values) const
| Assert that the lod values are sorted from greatest detail to least detail.
const String & | getName () const
| Get the name of this strategy.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)

## Protected Member Functions

virtual Real | getValueImpl (const MovableObject *movableObject, const Camera *camera) const =0
| Compute the lod value for a given movable object relative to a given camera.

## Static Protected Member Functions

static bool | isSortedAscending (const Mesh::LodValueList &values)
| Implementation of isSorted suitable for ascending values.
static bool | isSortedDescending (const Mesh::LodValueList &values)
| Implementation of isSorted suitable for descending values.
static void | sortAscending (Mesh::MeshLodUsageList &meshLodUsageList)
| Implementation of sort suitable for ascending values.
static void | sortDescending (Mesh::MeshLodUsageList &meshLodUsageList)
| Implementation of sort suitable for descending values.
static ushort | getIndexAscending (Real value, const Mesh::MeshLodUsageList &meshLodUsageList)
| Implementation of getIndex suitable for ascending values.
static ushort | getIndexDescending (Real value, const Mesh::MeshLodUsageList &meshLodUsageList)
| Implementation of getIndex suitable for descending values.
static ushort | getIndexAscending (Real value, const Material::LodValueList &materialLodValueList)
| Implementation of getIndex suitable for ascending values.
static ushort | getIndexDescending (Real value, const Material::LodValueList &materialLodValueList)
| Implementation of getIndex suitable for descending values.

## Protected Attributes

String | mName
| Name of this strategy.

## Detailed Description

Strategy for determining level of detail.

Remarks:
  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.

Definition at line 53 of file OgreLodStrategy.h.

## Constructor & Destructor Documentation

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

Constructor accepting name.

virtual Ogre::LodStrategy::~LodStrategy | ( |  | ) | `[virtual]`

Virtual destructor.

## Member Function Documentation

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

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

virtual Real Ogre::LodStrategy::getBaseValue | ( |  | ) | const`[pure virtual]`

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

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.

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.

static ushort Ogre::LodStrategy::getIndexAscending | ( | Real | value,
|  | const Mesh::MeshLodUsageList & | meshLodUsageList |
| ) |  |  | `[static, protected]`

Implementation of getIndex suitable for ascending values.

static ushort Ogre::LodStrategy::getIndexAscending | ( | Real | value,
|  | const Material::LodValueList & | materialLodValueList |
| ) |  |  | `[static, protected]`

Implementation of getIndex suitable for ascending values.

static ushort Ogre::LodStrategy::getIndexDescending | ( | Real | value,
|  | const Mesh::MeshLodUsageList & | meshLodUsageList |
| ) |  |  | `[static, protected]`

Implementation of getIndex suitable for descending values.

static ushort Ogre::LodStrategy::getIndexDescending | ( | Real | value,
|  | const Material::LodValueList & | materialLodValueList |
| ) |  |  | `[static, protected]`

Implementation of getIndex suitable for descending values.

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

Get the name of this strategy.

Definition at line 103 of file OgreLodStrategy.h.

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.

virtual Real Ogre::LodStrategy::getValueImpl | ( | const MovableObject * | movableObject,
|  | const Camera * | camera |
| ) |  |  | const`[protected, pure virtual]`

Compute the lod value for a given movable object relative to a given camera.

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.

static bool Ogre::LodStrategy::isSortedAscending | ( | const Mesh::LodValueList & | values | ) | `[static, protected]`

Implementation of isSorted suitable for ascending values.

static bool Ogre::LodStrategy::isSortedDescending | ( | const Mesh::LodValueList & | values | ) | `[static, protected]`

Implementation of isSorted suitable for descending values.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |  |
| ) |  |  | `[inherited]`

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | `[inherited]`

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |  |
| ) |  |  | `[inherited]`

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr |
| ) |  |  | `[inherited]`

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | `[inherited]`

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | `[inherited]`

Definition at line 90 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func |
| ) |  |  | `[inherited]`

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

virtual void Ogre::LodStrategy::sort | ( | Mesh::MeshLodUsageList & | meshLodUsageList | ) | const`[pure virtual]`

Sort mesh lod usage list from greatest to least detail.

static void Ogre::LodStrategy::sortAscending | ( | Mesh::MeshLodUsageList & | meshLodUsageList | ) | `[static, protected]`

Implementation of sort suitable for ascending values.

static void Ogre::LodStrategy::sortDescending | ( | Mesh::MeshLodUsageList & | meshLodUsageList | ) | `[static, protected]`

Implementation of sort suitable for descending values.

virtual Real Ogre::LodStrategy::transformBias | ( | Real | factor | ) | const`[pure virtual]`

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

virtual Real Ogre::LodStrategy::transformUserValue | ( | Real | userValue | ) | const`[virtual]`

Transforum user supplied value to internal value.

Remarks:
  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.

## Member Data Documentation

String Ogre::LodStrategy::mName `[protected]`

Name of this strategy.

Definition at line 57 of file OgreLodStrategy.h.

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

- OgreLodStrategy.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Wed Nov 3 2010 19:24:56