\hypertarget{class_ogre_1_1_lod_strategy}{}\doxysection{Ogre\+::Lod\+Strategy Class Reference}
\label{class_ogre_1_1_lod_strategy}\index{Ogre::LodStrategy@{Ogre::LodStrategy}}


Strategy for determining level of detail.  




{\ttfamily \#include $<$Ogre\+Lod\+Strategy.\+h$>$}



Inheritance diagram for Ogre\+::Lod\+Strategy\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_lod_strategy__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_lod_strategy_a49536ec8eff8497fda98ea8ecab569df}{Lod\+Strategy}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&name)
\begin{DoxyCompactList}\small\item\em Constructor accepting name. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a667bd94e7c15e2b5d5692146d22cd1f8}{$\sim$\+Lod\+Strategy}} ()
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_lod_strategy_ab3a486ff7212d5175828e4fef82ca37c}{assert\+Sorted}} (const \mbox{\hyperlink{class_ogre_1_1_mesh_a6c2d57227cf44de50edabb8f428c6785}{Mesh\+::\+Lod\+Value\+List}} \&values) const
\begin{DoxyCompactList}\small\item\em Assert that the L\+OD values are sorted from greatest detail to least detail. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a11c15567a651d4e46856030f6d34b789}{get\+Base\+Value}} () const =0
\begin{DoxyCompactList}\small\item\em Get the value of the first (highest) level of detail. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_ac1509db4186c609e174deeb3be5b3760}{get\+Index}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} value, const \mbox{\hyperlink{class_ogre_1_1_material_a7b73a4bace2cde1c32b0d4fdea407ff4}{Material\+::\+Lod\+Value\+List}} \&material\+Lod\+Value\+List) const =0
\begin{DoxyCompactList}\small\item\em Get the index of the L\+OD usage which applies to a given value. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a25dbe720f04a6787f5bc143d522f8f83}{get\+Index}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} value, const \mbox{\hyperlink{class_ogre_1_1_mesh_a5895cc4a48a728812531f3cc90e40412}{Mesh\+::\+Mesh\+Lod\+Usage\+List}} \&mesh\+Lod\+Usage\+List) const =0
\begin{DoxyCompactList}\small\item\em Get the index of the L\+OD usage which applies to a given value. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a6ffe63d24cfcaf5c0d6028fe61baa80e}{get\+Name}} () const
\begin{DoxyCompactList}\small\item\em Get the name of this strategy. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_adeb7d40e283838e2f04139fc183c95d0}{get\+Value}} (const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$movable\+Object, const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$camera) const
\begin{DoxyCompactList}\small\item\em Compute the L\+OD value for a given movable object relative to a given camera. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a7a1baabc9cc705dc5551a86534145ca3}{is\+Sorted}} (const \mbox{\hyperlink{class_ogre_1_1_mesh_a6c2d57227cf44de50edabb8f428c6785}{Mesh\+::\+Lod\+Value\+List}} \&values) const =0
\begin{DoxyCompactList}\small\item\em Determine if the L\+OD values are sorted from greatest detail to least detail. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a5f7dbdd90f8acb8edbffbf40fbd13df5}{sort}} (\mbox{\hyperlink{class_ogre_1_1_mesh_a5895cc4a48a728812531f3cc90e40412}{Mesh\+::\+Mesh\+Lod\+Usage\+List}} \&mesh\+Lod\+Usage\+List) const =0
\begin{DoxyCompactList}\small\item\em Sort mesh L\+OD usage list from greatest to least detail. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_aeaf5bcfb7457356cb921366769490705}{transform\+Bias}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} factor) const =0
\begin{DoxyCompactList}\small\item\em Transform L\+OD bias so it only needs to be multiplied by the L\+OD value. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} \mbox{\hyperlink{class_ogre_1_1_lod_strategy_a60e9908806b839380729aae13b9a959a}{transform\+User\+Value}} (\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} user\+Value) const
\begin{DoxyCompactList}\small\item\em Transform user supplied value to internal value. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Strategy for determining level of detail. 

\begin{DoxyRemark}{Remarks}
Generally, to create a new L\+OD strategy, all of the following will need to be implemented\+: get\+Value\+Impl, get\+Base\+Value, transform\+Bias, get\+Index, sort, and is\+Sorted. In addition, transform\+User\+Value may be overridden. 
\end{DoxyRemark}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a49536ec8eff8497fda98ea8ecab569df}\label{class_ogre_1_1_lod_strategy_a49536ec8eff8497fda98ea8ecab569df}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!LodStrategy@{LodStrategy}}
\index{LodStrategy@{LodStrategy}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{LodStrategy()}{LodStrategy()}}
{\footnotesize\ttfamily Ogre\+::\+Lod\+Strategy\+::\+Lod\+Strategy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{name }\end{DoxyParamCaption})}



Constructor accepting name. 

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a667bd94e7c15e2b5d5692146d22cd1f8}\label{class_ogre_1_1_lod_strategy_a667bd94e7c15e2b5d5692146d22cd1f8}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!````~LodStrategy@{$\sim$LodStrategy}}
\index{````~LodStrategy@{$\sim$LodStrategy}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{$\sim$LodStrategy()}{~LodStrategy()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Lod\+Strategy\+::$\sim$\+Lod\+Strategy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Virtual destructor. 



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a11c15567a651d4e46856030f6d34b789}\label{class_ogre_1_1_lod_strategy_a11c15567a651d4e46856030f6d34b789}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!getBaseValue@{getBaseValue}}
\index{getBaseValue@{getBaseValue}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{getBaseValue()}{getBaseValue()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Lod\+Strategy\+::get\+Base\+Value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



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



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_aac8890f5f7fbda974dee926427d83068}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_a0834dd85d740a9f6783e10a70dfccc1b}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_aeaf5bcfb7457356cb921366769490705}\label{class_ogre_1_1_lod_strategy_aeaf5bcfb7457356cb921366769490705}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!transformBias@{transformBias}}
\index{transformBias@{transformBias}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{transformBias()}{transformBias()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Lod\+Strategy\+::transform\+Bias (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{factor }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Transform L\+OD bias so it only needs to be multiplied by the L\+OD value. 



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_a9049c547f1df50c59ccea9ffa5170bce}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_a4c359b8fd0935b31bfc3a0eb61bd61e8}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a60e9908806b839380729aae13b9a959a}\label{class_ogre_1_1_lod_strategy_a60e9908806b839380729aae13b9a959a}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!transformUserValue@{transformUserValue}}
\index{transformUserValue@{transformUserValue}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{transformUserValue()}{transformUserValue()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Lod\+Strategy\+::transform\+User\+Value (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{user\+Value }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Transform user supplied value to internal value. 

\begin{DoxyRemark}{Remarks}
By default, performs no transformation. 

Do not throw exceptions for invalid values here, as the L\+OD strategy may be changed such that the values become valid. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_a6637262cc1547ecb50bd3a55720896df}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_adeb7d40e283838e2f04139fc183c95d0}\label{class_ogre_1_1_lod_strategy_adeb7d40e283838e2f04139fc183c95d0}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!getValue@{getValue}}
\index{getValue@{getValue}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{getValue()}{getValue()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} Ogre\+::\+Lod\+Strategy\+::get\+Value (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_movable_object}{Movable\+Object}} $\ast$}]{movable\+Object,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_camera}{Camera}} $\ast$}]{camera }\end{DoxyParamCaption}) const}



Compute the L\+OD value for a given movable object relative to a given camera. 

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a25dbe720f04a6787f5bc143d522f8f83}\label{class_ogre_1_1_lod_strategy_a25dbe720f04a6787f5bc143d522f8f83}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!getIndex@{getIndex}}
\index{getIndex@{getIndex}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{getIndex()}{getIndex()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} Ogre\+::\+Lod\+Strategy\+::get\+Index (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{value,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_mesh_a5895cc4a48a728812531f3cc90e40412}{Mesh\+::\+Mesh\+Lod\+Usage\+List}} \&}]{mesh\+Lod\+Usage\+List }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the index of the L\+OD usage which applies to a given value. 



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_aeffd29cba6c233aacd441337be5d611c}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_ae422502cd853439e1c61851f7029a5d2}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_ac1509db4186c609e174deeb3be5b3760}\label{class_ogre_1_1_lod_strategy_ac1509db4186c609e174deeb3be5b3760}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!getIndex@{getIndex}}
\index{getIndex@{getIndex}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{getIndex()}{getIndex()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} Ogre\+::\+Lod\+Strategy\+::get\+Index (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{value,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_material_a7b73a4bace2cde1c32b0d4fdea407ff4}{Material\+::\+Lod\+Value\+List}} \&}]{material\+Lod\+Value\+List }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the index of the L\+OD usage which applies to a given value. 



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_ad7af9e2a1466c1e068451da58c4a2eec}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_a0cf2f9d97bc32d32674038b112b405d1}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a5f7dbdd90f8acb8edbffbf40fbd13df5}\label{class_ogre_1_1_lod_strategy_a5f7dbdd90f8acb8edbffbf40fbd13df5}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!sort@{sort}}
\index{sort@{sort}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Lod\+Strategy\+::sort (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_mesh_a5895cc4a48a728812531f3cc90e40412}{Mesh\+::\+Mesh\+Lod\+Usage\+List}} \&}]{mesh\+Lod\+Usage\+List }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Sort mesh L\+OD usage list from greatest to least detail. 



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_a7d70473daa55f3b36cf1bfbf41b05701}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_ac2237491a332c7214c70648df44810ee}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a7a1baabc9cc705dc5551a86534145ca3}\label{class_ogre_1_1_lod_strategy_a7a1baabc9cc705dc5551a86534145ca3}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!isSorted@{isSorted}}
\index{isSorted@{isSorted}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{isSorted()}{isSorted()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Lod\+Strategy\+::is\+Sorted (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_mesh_a6c2d57227cf44de50edabb8f428c6785}{Mesh\+::\+Lod\+Value\+List}} \&}]{values }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}



Determine if the L\+OD values are sorted from greatest detail to least detail. 



Implemented in \mbox{\hyperlink{class_ogre_1_1_distance_lod_strategy_base_a8288f7831f24cdc5734964234f7bbfc0}{Ogre\+::\+Distance\+Lod\+Strategy\+Base}}, and \mbox{\hyperlink{class_ogre_1_1_pixel_count_lod_strategy_base_ae7a96f04b4c52cbe332501ca87539b40}{Ogre\+::\+Pixel\+Count\+Lod\+Strategy\+Base}}.

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_ab3a486ff7212d5175828e4fef82ca37c}\label{class_ogre_1_1_lod_strategy_ab3a486ff7212d5175828e4fef82ca37c}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!assertSorted@{assertSorted}}
\index{assertSorted@{assertSorted}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{assertSorted()}{assertSorted()}}
{\footnotesize\ttfamily void Ogre\+::\+Lod\+Strategy\+::assert\+Sorted (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_ogre_1_1_mesh_a6c2d57227cf44de50edabb8f428c6785}{Mesh\+::\+Lod\+Value\+List}} \&}]{values }\end{DoxyParamCaption}) const}



Assert that the L\+OD values are sorted from greatest detail to least detail. 

\mbox{\Hypertarget{class_ogre_1_1_lod_strategy_a6ffe63d24cfcaf5c0d6028fe61baa80e}\label{class_ogre_1_1_lod_strategy_a6ffe63d24cfcaf5c0d6028fe61baa80e}} 
\index{Ogre::LodStrategy@{Ogre::LodStrategy}!getName@{getName}}
\index{getName@{getName}!Ogre::LodStrategy@{Ogre::LodStrategy}}
\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Lod\+Strategy\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the name of this strategy. 



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_lod_strategy_8h}{Ogre\+Lod\+Strategy.\+h}}\end{DoxyCompactItemize}
