\hypertarget{class_ogre_1_1_static_geometry}{}\section{Ogre\+:\+:Static\+Geometry Class Reference}
\label{class_ogre_1_1_static_geometry}\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}


Pre-\/transforms and batches up meshes for efficient use as static geometry in a scene.  




{\ttfamily \#include $<$Ogre\+Static\+Geometry.\+h$>$}



Inheritance diagram for Ogre\+:\+:Static\+Geometry\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=209pt]{class_ogre_1_1_static_geometry__inherit__graph}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_static_geometry_1_1_geometry_bucket}{Geometry\+Bucket}
\begin{DoxyCompactList}\small\item\em A \hyperlink{class_ogre_1_1_static_geometry_1_1_geometry_bucket}{Geometry\+Bucket} is a the lowest level bucket where geometry with the same vertex \& index format is stored. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_static_geometry_1_1_l_o_d_bucket}{L\+O\+D\+Bucket}
\begin{DoxyCompactList}\small\item\em A \hyperlink{class_ogre_1_1_static_geometry_1_1_l_o_d_bucket}{L\+O\+D\+Bucket} is a collection of smaller buckets with the same L\+OD. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_static_geometry_1_1_material_bucket}{Material\+Bucket}
\begin{DoxyCompactList}\small\item\em A \hyperlink{class_ogre_1_1_static_geometry_1_1_material_bucket}{Material\+Bucket} is a collection of smaller buckets with the same \hyperlink{class_ogre_1_1_material}{Material} (and implicitly the same L\+OD). \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_static_geometry_1_1_optimised_sub_mesh_geometry}{Optimised\+Sub\+Mesh\+Geometry}
\begin{DoxyCompactList}\small\item\em Struct holding geometry optimised per \hyperlink{class_ogre_1_1_sub_mesh}{Sub\+Mesh} / L\+OD level, ready for copying to instances. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_geometry}{Queued\+Geometry}
\begin{DoxyCompactList}\small\item\em Structure recording a queued geometry for low level builds. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_sub_mesh}{Queued\+Sub\+Mesh}
\begin{DoxyCompactList}\small\item\em Structure recording a queued submesh for the build. \end{DoxyCompactList}\item 
class \hyperlink{class_ogre_1_1_static_geometry_1_1_region}{Region}
\begin{DoxyCompactList}\small\item\em The details of a topological region which is the highest level of partitioning for this class. \end{DoxyCompactList}\item 
struct \hyperlink{struct_ogre_1_1_static_geometry_1_1_sub_mesh_lod_geometry_link}{Sub\+Mesh\+Lod\+Geometry\+Link}
\begin{DoxyCompactList}\small\item\em Saved link between \hyperlink{class_ogre_1_1_sub_mesh}{Sub\+Mesh} at a L\+OD and vertex/index data May point to original or optimised geometry. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::list$<$ \hyperlink{class_ogre_1_1_static_geometry_1_1_optimised_sub_mesh_geometry}{Optimised\+Sub\+Mesh\+Geometry} $\ast$ $>$ \hyperlink{class_ogre_1_1_static_geometry_a2cf30b583c41eb0174b4cbeb5db4e75a}{Optimised\+Sub\+Mesh\+Geometry\+List}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_geometry}{Queued\+Geometry} $\ast$ $>$ \hyperlink{class_ogre_1_1_static_geometry_a0d1eafab98ba3f36b7ac8d39868bd158}{Queued\+Geometry\+List}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_sub_mesh}{Queued\+Sub\+Mesh} $\ast$ $>$ \hyperlink{class_ogre_1_1_static_geometry_a170301c4c8d1c95dcb322ed825007595}{Queued\+Sub\+Mesh\+List}
\item 
typedef \hyperlink{class_ogre_1_1_map_iterator}{Map\+Iterator}$<$ \hyperlink{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}{Region\+Map} $>$ \hyperlink{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}{Region\+Iterator}
\begin{DoxyCompactList}\small\item\em Iterator for iterating over contained regions. \end{DoxyCompactList}\item 
typedef std\+::map$<$ \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}, \hyperlink{class_ogre_1_1_static_geometry_1_1_region}{Region} $\ast$ $>$ \hyperlink{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}{Region\+Map}
\begin{DoxyCompactList}\small\item\em Indexed region map based on packed x/y/z region index, 10 bits for each axis. \end{DoxyCompactList}\item 
typedef std\+::map$<$ \hyperlink{class_ogre_1_1_sub_mesh}{Sub\+Mesh} $\ast$, \hyperlink{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}{Sub\+Mesh\+Lod\+Geometry\+Link\+List} $\ast$ $>$ \hyperlink{class_ogre_1_1_static_geometry_a80c5f8105181b3e77468a87e5351825b}{Sub\+Mesh\+Geometry\+Lookup}
\item 
typedef std\+::vector$<$ \hyperlink{struct_ogre_1_1_static_geometry_1_1_sub_mesh_lod_geometry_link}{Sub\+Mesh\+Lod\+Geometry\+Link} $>$ \hyperlink{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}{Sub\+Mesh\+Lod\+Geometry\+Link\+List}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_static_geometry_a0487dd0323485acdda054ed41f4cc216}{Static\+Geometry} (\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$owner, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Constructor; do not use directly (. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_static_geometry_a6d02bee2716715251c27dd9b4537c3d0}{$\sim$\+Static\+Geometry} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a98c44ba2920c9e07d29548d5ee927b5e}{add\+Entity} (\hyperlink{class_ogre_1_1_entity}{Entity} $\ast$ent, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&position, const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&orientation=\hyperlink{class_ogre_1_1_quaternion_a441b8d52549e1dedec27420325a313ef}{Quaternion\+::\+I\+D\+E\+N\+T\+I\+TY}, const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&scale=\hyperlink{class_ogre_1_1_vector3_a6a27e8a3a9156701f586afeed1516fb8}{Vector3\+::\+U\+N\+I\+T\+\_\+\+S\+C\+A\+LE})
\begin{DoxyCompactList}\small\item\em Adds an \hyperlink{class_ogre_1_1_entity}{Entity} to the static geometry. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_aa077e3cb67caa3109a5664795644156a}{add\+Scene\+Node} (const \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} $\ast$node)
\begin{DoxyCompactList}\small\item\em Adds all the \hyperlink{class_ogre_1_1_entity}{Entity} objects attached to a \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} and all it\textquotesingle{}s children to the static geometry. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a03c94e8a32918dba0fa4321e49f7135f}{build} (void)
\begin{DoxyCompactList}\small\item\em Build the geometry. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a5156d3d3b98d6bdb56c6c7b7d92925e8}{destroy} (void)
\begin{DoxyCompactList}\small\item\em Destroys all the built geometry state (reverse of build). \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_ad66c70a28321e9420d91ee044300a182}{dump} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&filename) const
\begin{DoxyCompactList}\small\item\em Dump the contents of this \hyperlink{class_ogre_1_1_static_geometry}{Static\+Geometry} to a file for diagnostic purposes. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_static_geometry_a2efcde5992970bde422ac7465107ee62}{get\+Cast\+Shadows} (void)
\begin{DoxyCompactList}\small\item\em Will the geometry from this object cast shadows? \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_static_geometry_af7a5b190833acb77b3c69de2cf797fce}{get\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Get the name of this object. \end{DoxyCompactList}\item 
virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3} \& \hyperlink{class_ogre_1_1_static_geometry_a807a905eb41d91e48a59b87600da88a7}{get\+Origin} (void) const
\begin{DoxyCompactList}\small\item\em Gets the origin of this geometry. \end{DoxyCompactList}\item 
virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3} \& \hyperlink{class_ogre_1_1_static_geometry_af9809706b5a69104c1f65b96369a6118}{get\+Region\+Dimensions} (void) const
\begin{DoxyCompactList}\small\item\em Gets the size of a single batch of geometry. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}{Region\+Iterator} \hyperlink{class_ogre_1_1_static_geometry_a483ba1dbb7fcbe2be40c6168aaea5c2e}{get\+Region\+Iterator} (void)
\begin{DoxyCompactList}\small\item\em Get an iterator over the regions in this geometry. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_static_geometry_ae86af04a730e6509245cf496ab0ee9a5}{get\+Rendering\+Distance} (void) const
\begin{DoxyCompactList}\small\item\em Gets the distance at which batches are no longer rendered. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} \hyperlink{class_ogre_1_1_static_geometry_a1d58673b93c467f9e5e23af619d8806f}{get\+Render\+Queue\+Group} (void) const
\begin{DoxyCompactList}\small\item\em Gets the queue group for this entity, see set\+Render\+Queue\+Group for full details. \end{DoxyCompactList}\item 
virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_static_geometry_abb2e76eabaaeff2abb47d8cfaa859435}{get\+Squared\+Rendering\+Distance} (void) const
\begin{DoxyCompactList}\small\item\em Gets the squared distance at which batches are no longer rendered. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_static_geometry_a6732442e32787ccd6c680e0ae9cc01fd}{get\+Visibility\+Flags} () const
\begin{DoxyCompactList}\small\item\em Returns the visibility flags of the regions. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_static_geometry_ae31c57dc0ab9fdf05d3b068c4826ced0}{is\+Visible} (void) const
\begin{DoxyCompactList}\small\item\em Are the batches visible? \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a0ac5afd811992ba0967a05c92e3d75ef}{reset} (void)
\begin{DoxyCompactList}\small\item\em Clears any of the entities / nodes added to this geometry and destroys anything which has already been built. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a71907b64bca572d90168f28cb65f23cc}{set\+Cast\+Shadows} (bool cast\+Shadows)
\begin{DoxyCompactList}\small\item\em Sets whether this geometry should cast shadows. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a7e192ed9d7b41ae948b7ca0ed4cb5e0f}{set\+Origin} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&origin)
\begin{DoxyCompactList}\small\item\em Sets the origin of the geometry. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a91b72934294a81bd107747a076fd8a69}{set\+Region\+Dimensions} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&size)
\begin{DoxyCompactList}\small\item\em Sets the size of a single region of geometry. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a275913c7bb86faf4acc86b6bd8e2a9ce}{set\+Rendering\+Distance} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} dist)
\begin{DoxyCompactList}\small\item\em Sets the distance at which batches are no longer rendered. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_a8ce1fb9687b9023947683b881d72096b}{set\+Render\+Queue\+Group} (\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} queue\+ID)
\begin{DoxyCompactList}\small\item\em Sets the render queue group this object will be rendered through. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_static_geometry_a01a3f53c1970d60f1908cac9d1cc3b1d}{set\+Visibility\+Flags} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} flags)
\begin{DoxyCompactList}\small\item\em Sets the visibility flags of all the regions at once. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_static_geometry_ab0d5c294946e519c0dad95dc9802609a}{set\+Visible} (bool visible)
\begin{DoxyCompactList}\small\item\em Hides or shows all the batches. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_static_geometry_a83566155af8cfe9ebc83970b14978a37}{visit\+Renderables} (\hyperlink{class_ogre_1_1_renderable_1_1_visitor}{Renderable\+::\+Visitor} $\ast$visitor, bool debug\+Renderables=false)
\begin{DoxyCompactList}\small\item\em Method to allow a caller to abstractly iterate over the \hyperlink{class_ogre_1_1_renderable}{Renderable} instances that this \hyperlink{class_ogre_1_1_movable_object}{Movable\+Object} will add to the render queue when asked, if any. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Pre-\/transforms and batches up meshes for efficient use as static geometry in a scene. 

\begin{DoxyRemark}{Remarks}
Modern graphics cards (G\+P\+Us) prefer to receive geometry in large batches. It is orders of magnitude faster to render 10 batches of 10,000 triangles than it is to render 10,000 batches of 10 triangles, even though both result in the same number of on-\/screen triangles. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Therefore it is important when you are rendering a lot of geometry to batch things up into as few rendering calls as possible. This class allows you to build a batched object from a series of entities in order to benefit from this behaviour. Batching has implications of it\textquotesingle{}s own though\+: \begin{DoxyItemize}
\item Batched geometry cannot be subdivided; that means that the whole group will be displayed, or none of it will. This obivously has culling issues. \item A single world transform must apply to the entire batch. Therefore once you have batched things, you can\textquotesingle{}t move them around relative to each other. That\textquotesingle{}s why this class is most useful when dealing with static geometry (hence the name). In addition, geometry is effectively duplicated, so if you add 3 entities based on the same mesh in different positions, they will use 3 times the geometry space than the movable version (which re-\/uses the same geometry). So you trade memory and flexibility of movement for pure speed when using this class. \item A single material must apply for each batch. In fact this class allows you to use multiple materials, but you should be aware that internally this means that there is one batch per material. Therefore you won\textquotesingle{}t gain as much benefit from the batching if you use many different materials; try to keep the number down. \end{DoxyItemize}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
In order to retain some sort of culling, this class will batch up meshes in localised regions. The size and shape of these blocks is controlled by the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} which constructs this object, since it makes sense to batch things up in the most appropriate way given the existing partitioning of the scene. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
The L\+OD settings of both the \hyperlink{class_ogre_1_1_mesh}{Mesh} and the Materials used in constructing this static geometry will be respected. This means that if you use meshes/materials which have L\+OD, batches in the distance will have a lower polygon count or material detail to those in the foreground. Since each mesh might have different L\+OD distances, during build the furthest distance at each L\+OD level from all meshes in that region is used. This means all the L\+OD levels change at the same time, but at the furthest distance of any of them (so quality is not degraded). Be aware that using \hyperlink{class_ogre_1_1_mesh}{Mesh} L\+OD in this class will further increase the memory required. Only generated L\+OD is supported for meshes. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
There are 2 ways you can add geometry to this class; you can add \hyperlink{class_ogre_1_1_entity}{Entity} objects directly with predetermined positions, scales and orientations, or you can add an entire \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} and it\textquotesingle{}s subtree, including all the objects attached to it. Once you\textquotesingle{}ve added everything you need to, you have to call \hyperlink{class_ogre_1_1_static_geometry_a03c94e8a32918dba0fa4321e49f7135f}{build()} the fix the geometry in place. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
This class is not a replacement for world geometry (
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_scene_manager_accb0fdfbd1f61aa4d3d6e1f4625e1f9c}{Scene\+Manager\+::set\+World\+Geometry}). The single most efficient way to render large amounts of static geometry is to use a \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} which is specialised for dealing with that particular world structure. However, this class does provide you with a good \textquotesingle{}halfway house\textquotesingle{} between generalised movable geometry (\hyperlink{class_ogre_1_1_entity}{Entity}) which works with all Scene\+Managers but isn\textquotesingle{}t efficient when using very large numbers, and highly specialised world geometry which is extremely fast but not generic and typically requires custom world editors. 
\end{DoxySeeAlso}
\begin{DoxyParagraph}{}
You should not construct instances of this class directly; instead, cal \hyperlink{class_ogre_1_1_scene_manager_a3cd49635820ce79a611199c6234aef01}{Scene\+Manager\+::create\+Static\+Geometry}, which gives the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} the option of providing you with a specialised version of this class if it wishes, and also handles the memory management for you like other classes. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
Warning\+: this class only works with indexed triangle lists at the moment, do not pass it triangle strips, fans or lines / points, or unindexed geometry. 
\end{DoxyNote}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a2cf30b583c41eb0174b4cbeb5db4e75a}\label{class_ogre_1_1_static_geometry_a2cf30b583c41eb0174b4cbeb5db4e75a}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Optimised\+Sub\+Mesh\+Geometry\+List@{Optimised\+Sub\+Mesh\+Geometry\+List}}
\index{Optimised\+Sub\+Mesh\+Geometry\+List@{Optimised\+Sub\+Mesh\+Geometry\+List}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Optimised\+Sub\+Mesh\+Geometry\+List}{OptimisedSubMeshGeometryList}}
{\footnotesize\ttfamily typedef std\+::list$<$\hyperlink{class_ogre_1_1_static_geometry_1_1_optimised_sub_mesh_geometry}{Optimised\+Sub\+Mesh\+Geometry}$\ast$$>$ \hyperlink{class_ogre_1_1_static_geometry_a2cf30b583c41eb0174b4cbeb5db4e75a}{Ogre\+::\+Static\+Geometry\+::\+Optimised\+Sub\+Mesh\+Geometry\+List}}

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}\label{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Sub\+Mesh\+Lod\+Geometry\+Link\+List@{Sub\+Mesh\+Lod\+Geometry\+Link\+List}}
\index{Sub\+Mesh\+Lod\+Geometry\+Link\+List@{Sub\+Mesh\+Lod\+Geometry\+Link\+List}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Sub\+Mesh\+Lod\+Geometry\+Link\+List}{SubMeshLodGeometryLinkList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_static_geometry_1_1_sub_mesh_lod_geometry_link}{Sub\+Mesh\+Lod\+Geometry\+Link}$>$ \hyperlink{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}{Ogre\+::\+Static\+Geometry\+::\+Sub\+Mesh\+Lod\+Geometry\+Link\+List}}

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a80c5f8105181b3e77468a87e5351825b}\label{class_ogre_1_1_static_geometry_a80c5f8105181b3e77468a87e5351825b}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Sub\+Mesh\+Geometry\+Lookup@{Sub\+Mesh\+Geometry\+Lookup}}
\index{Sub\+Mesh\+Geometry\+Lookup@{Sub\+Mesh\+Geometry\+Lookup}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Sub\+Mesh\+Geometry\+Lookup}{SubMeshGeometryLookup}}
{\footnotesize\ttfamily typedef std\+::map$<$\hyperlink{class_ogre_1_1_sub_mesh}{Sub\+Mesh}$\ast$, \hyperlink{class_ogre_1_1_static_geometry_a9a3a337c0d120c4c3bf65850c25b103a}{Sub\+Mesh\+Lod\+Geometry\+Link\+List}$\ast$$>$ \hyperlink{class_ogre_1_1_static_geometry_a80c5f8105181b3e77468a87e5351825b}{Ogre\+::\+Static\+Geometry\+::\+Sub\+Mesh\+Geometry\+Lookup}}

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a170301c4c8d1c95dcb322ed825007595}\label{class_ogre_1_1_static_geometry_a170301c4c8d1c95dcb322ed825007595}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Queued\+Sub\+Mesh\+List@{Queued\+Sub\+Mesh\+List}}
\index{Queued\+Sub\+Mesh\+List@{Queued\+Sub\+Mesh\+List}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Queued\+Sub\+Mesh\+List}{QueuedSubMeshList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_sub_mesh}{Queued\+Sub\+Mesh}$\ast$$>$ \hyperlink{class_ogre_1_1_static_geometry_a170301c4c8d1c95dcb322ed825007595}{Ogre\+::\+Static\+Geometry\+::\+Queued\+Sub\+Mesh\+List}}

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a0d1eafab98ba3f36b7ac8d39868bd158}\label{class_ogre_1_1_static_geometry_a0d1eafab98ba3f36b7ac8d39868bd158}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Queued\+Geometry\+List@{Queued\+Geometry\+List}}
\index{Queued\+Geometry\+List@{Queued\+Geometry\+List}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Queued\+Geometry\+List}{QueuedGeometryList}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{struct_ogre_1_1_static_geometry_1_1_queued_geometry}{Queued\+Geometry}$\ast$$>$ \hyperlink{class_ogre_1_1_static_geometry_a0d1eafab98ba3f36b7ac8d39868bd158}{Ogre\+::\+Static\+Geometry\+::\+Queued\+Geometry\+List}}

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}\label{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Region\+Map@{Region\+Map}}
\index{Region\+Map@{Region\+Map}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Region\+Map}{RegionMap}}
{\footnotesize\ttfamily typedef std\+::map$<$\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}, \hyperlink{class_ogre_1_1_static_geometry_1_1_region}{Region}$\ast$$>$ \hyperlink{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}{Ogre\+::\+Static\+Geometry\+::\+Region\+Map}}



Indexed region map based on packed x/y/z region index, 10 bits for each axis. 

\begin{DoxyRemark}{Remarks}
Regions are indexed 0-\/1023 in all axes, where for example region 0 in the x axis begins at m\+Origin.\+x + (m\+Region\+Dimensions.\+x $\ast$ -\/512), and region 1023 ends at m\+Origin + (m\+Region\+Dimensions.\+x $\ast$ 512). 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}\label{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Region\+Iterator@{Region\+Iterator}}
\index{Region\+Iterator@{Region\+Iterator}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Region\+Iterator}{RegionIterator}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_map_iterator}{Map\+Iterator}$<$\hyperlink{class_ogre_1_1_static_geometry_af697e3c0524a2e1976e691b38de9b8e1}{Region\+Map}$>$ \hyperlink{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}{Ogre\+::\+Static\+Geometry\+::\+Region\+Iterator}}



Iterator for iterating over contained regions. 



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a0487dd0323485acdda054ed41f4cc216}\label{class_ogre_1_1_static_geometry_a0487dd0323485acdda054ed41f4cc216}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!Static\+Geometry@{Static\+Geometry}}
\index{Static\+Geometry@{Static\+Geometry}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{Static\+Geometry()}{StaticGeometry()}}
{\footnotesize\ttfamily Ogre\+::\+Static\+Geometry\+::\+Static\+Geometry (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} $\ast$}]{owner,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Constructor; do not use directly (. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_scene_manager_a3cd49635820ce79a611199c6234aef01}{Scene\+Manager\+::create\+Static\+Geometry}) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a6d02bee2716715251c27dd9b4537c3d0}\label{class_ogre_1_1_static_geometry_a6d02bee2716715251c27dd9b4537c3d0}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!````~Static\+Geometry@{$\sim$\+Static\+Geometry}}
\index{````~Static\+Geometry@{$\sim$\+Static\+Geometry}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{$\sim$\+Static\+Geometry()}{~StaticGeometry()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Static\+Geometry\+::$\sim$\+Static\+Geometry (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Destructor. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_af7a5b190833acb77b3c69de2cf797fce}\label{class_ogre_1_1_static_geometry_af7a5b190833acb77b3c69de2cf797fce}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Static\+Geometry\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the name of this object. 



References Ogre\+::\+Quaternion\+::\+I\+D\+E\+N\+T\+I\+TY, and Ogre\+::\+Vector3\+::\+U\+N\+I\+T\+\_\+\+S\+C\+A\+LE.

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a98c44ba2920c9e07d29548d5ee927b5e}\label{class_ogre_1_1_static_geometry_a98c44ba2920c9e07d29548d5ee927b5e}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!add\+Entity@{add\+Entity}}
\index{add\+Entity@{add\+Entity}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{add\+Entity()}{addEntity()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::add\+Entity (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_entity}{Entity} $\ast$}]{ent,  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{position,  }\item[{const \hyperlink{class_ogre_1_1_quaternion}{Quaternion} \&}]{orientation = {\ttfamily \hyperlink{class_ogre_1_1_quaternion_a441b8d52549e1dedec27420325a313ef}{Quaternion\+::\+I\+D\+E\+N\+T\+I\+TY}},  }\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{scale = {\ttfamily \hyperlink{class_ogre_1_1_vector3_a6a27e8a3a9156701f586afeed1516fb8}{Vector3\+::\+U\+N\+I\+T\+\_\+\+S\+C\+A\+LE}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Adds an \hyperlink{class_ogre_1_1_entity}{Entity} to the static geometry. 

\begin{DoxyRemark}{Remarks}
This method takes an existing \hyperlink{class_ogre_1_1_entity}{Entity} and adds its details to the list of elements to include when building. Note that the \hyperlink{class_ogre_1_1_entity}{Entity} itself is not copied or referenced in this method; an \hyperlink{class_ogre_1_1_entity}{Entity} is passed simply so that you can change the materials of attached \hyperlink{class_ogre_1_1_sub_entity}{Sub\+Entity} objects if you want. You can add the same \hyperlink{class_ogre_1_1_entity}{Entity} instance multiple times with different material settings completely safely, and destroy the \hyperlink{class_ogre_1_1_entity}{Entity} before destroying this \hyperlink{class_ogre_1_1_static_geometry}{Static\+Geometry} if you like. The \hyperlink{class_ogre_1_1_entity}{Entity} passed in is simply used as a definition. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Must be called before \textquotesingle{}build\textquotesingle{}. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em ent} & The \hyperlink{class_ogre_1_1_entity}{Entity} to use as a definition (the \hyperlink{class_ogre_1_1_mesh}{Mesh} and Materials referenced will be recorded for the build call). \\
\hline
{\em position} & The world position at which to add this \hyperlink{class_ogre_1_1_entity}{Entity} \\
\hline
{\em orientation} & The world orientation at which to add this \hyperlink{class_ogre_1_1_entity}{Entity} \\
\hline
{\em scale} & The scale at which to add this entity \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_aa077e3cb67caa3109a5664795644156a}\label{class_ogre_1_1_static_geometry_aa077e3cb67caa3109a5664795644156a}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!add\+Scene\+Node@{add\+Scene\+Node}}
\index{add\+Scene\+Node@{add\+Scene\+Node}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{add\+Scene\+Node()}{addSceneNode()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::add\+Scene\+Node (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} $\ast$}]{node }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Adds all the \hyperlink{class_ogre_1_1_entity}{Entity} objects attached to a \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} and all it\textquotesingle{}s children to the static geometry. 

\begin{DoxyRemark}{Remarks}
This method performs just like add\+Entity, except it adds all the entities attached to an entire sub-\/tree to the geometry. The position / orientation / scale parameters are taken from the node structure instead of being specified manually. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
The \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} you pass in will not be automatically detached from it\textquotesingle{}s parent, so if you have this node already attached to the scene graph, you will need to remove it if you wish to avoid the overhead of rendering {\itshape both} the original objects and their new static versions! We don\textquotesingle{}t do this for you incase you are preparing this in advance and so don\textquotesingle{}t want the originals detached yet. 

Must be called before \textquotesingle{}build\textquotesingle{}. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em node} & Pointer to the node to use to provide a set of \hyperlink{class_ogre_1_1_entity}{Entity} templates \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a03c94e8a32918dba0fa4321e49f7135f}\label{class_ogre_1_1_static_geometry_a03c94e8a32918dba0fa4321e49f7135f}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!build@{build}}
\index{build@{build}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{build()}{build()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::build (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Build the geometry. 

\begin{DoxyRemark}{Remarks}
Based on all the entities which have been added, and the batching options which have been set, this method constructs the batched geometry structures required. The batches are added to the scene and will be rendered unless you specifically hide them. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Once you have called this method, you can no longer add any more entities. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a5156d3d3b98d6bdb56c6c7b7d92925e8}\label{class_ogre_1_1_static_geometry_a5156d3d3b98d6bdb56c6c7b7d92925e8}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!destroy@{destroy}}
\index{destroy@{destroy}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{destroy()}{destroy()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::destroy (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Destroys all the built geometry state (reverse of build). 

\begin{DoxyRemark}{Remarks}
You can call \hyperlink{class_ogre_1_1_static_geometry_a03c94e8a32918dba0fa4321e49f7135f}{build()} again after this and it will pick up all the same entities / nodes you queued last time. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a0ac5afd811992ba0967a05c92e3d75ef}\label{class_ogre_1_1_static_geometry_a0ac5afd811992ba0967a05c92e3d75ef}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!reset@{reset}}
\index{reset@{reset}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{reset()}{reset()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::reset (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Clears any of the entities / nodes added to this geometry and destroys anything which has already been built. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a275913c7bb86faf4acc86b6bd8e2a9ce}\label{class_ogre_1_1_static_geometry_a275913c7bb86faf4acc86b6bd8e2a9ce}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Rendering\+Distance@{set\+Rendering\+Distance}}
\index{set\+Rendering\+Distance@{set\+Rendering\+Distance}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Rendering\+Distance()}{setRenderingDistance()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Rendering\+Distance (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{dist }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Sets the distance at which batches are no longer rendered. 

\begin{DoxyRemark}{Remarks}
This lets you turn off batches at a given distance. This can be useful for things like detail meshes (grass, foliage etc) and could be combined with a shader which fades the geometry out beforehand to lessen the effect. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em dist} & Distance beyond which the batches will not be rendered (the default is 0, which means batches are always rendered). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_ae86af04a730e6509245cf496ab0ee9a5}\label{class_ogre_1_1_static_geometry_ae86af04a730e6509245cf496ab0ee9a5}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Rendering\+Distance@{get\+Rendering\+Distance}}
\index{get\+Rendering\+Distance@{get\+Rendering\+Distance}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Rendering\+Distance()}{getRenderingDistance()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Static\+Geometry\+::get\+Rendering\+Distance (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Gets the distance at which batches are no longer rendered. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_abb2e76eabaaeff2abb47d8cfaa859435}\label{class_ogre_1_1_static_geometry_abb2e76eabaaeff2abb47d8cfaa859435}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Squared\+Rendering\+Distance@{get\+Squared\+Rendering\+Distance}}
\index{get\+Squared\+Rendering\+Distance@{get\+Squared\+Rendering\+Distance}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Squared\+Rendering\+Distance()}{getSquaredRenderingDistance()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Static\+Geometry\+::get\+Squared\+Rendering\+Distance (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Gets the squared distance at which batches are no longer rendered. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_ab0d5c294946e519c0dad95dc9802609a}\label{class_ogre_1_1_static_geometry_ab0d5c294946e519c0dad95dc9802609a}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Visible@{set\+Visible}}
\index{set\+Visible@{set\+Visible}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Visible()}{setVisible()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Visible (\begin{DoxyParamCaption}\item[{bool}]{visible }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Hides or shows all the batches. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_ae31c57dc0ab9fdf05d3b068c4826ced0}\label{class_ogre_1_1_static_geometry_ae31c57dc0ab9fdf05d3b068c4826ced0}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!is\+Visible@{is\+Visible}}
\index{is\+Visible@{is\+Visible}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{is\+Visible()}{isVisible()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Static\+Geometry\+::is\+Visible (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Are the batches visible? 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a71907b64bca572d90168f28cb65f23cc}\label{class_ogre_1_1_static_geometry_a71907b64bca572d90168f28cb65f23cc}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Cast\+Shadows@{set\+Cast\+Shadows}}
\index{set\+Cast\+Shadows@{set\+Cast\+Shadows}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Cast\+Shadows()}{setCastShadows()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Cast\+Shadows (\begin{DoxyParamCaption}\item[{bool}]{cast\+Shadows }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets whether this geometry should cast shadows. 

\begin{DoxyRemark}{Remarks}
No matter what the settings on the original entities, the \hyperlink{class_ogre_1_1_static_geometry}{Static\+Geometry} class defaults to not casting shadows. This is because, being static, unless you have moving lights you\textquotesingle{}d be better to use precalculated shadows of some sort. However, if you need them, you can enable them using this method. If the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} is set up to use stencil shadows, edge lists will be copied from the underlying meshes on build. It is essential that all meshes support stencil shadows in this case. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
If you intend to use stencil shadows, you must set this to true before calling \textquotesingle{}build\textquotesingle{} as well as making sure you set the scene\textquotesingle{}s shadow type (that should always be the first thing you do anyway). You can turn shadows off temporarily but they can never be turned on if they were not at the time of the build. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a2efcde5992970bde422ac7465107ee62}\label{class_ogre_1_1_static_geometry_a2efcde5992970bde422ac7465107ee62}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Cast\+Shadows@{get\+Cast\+Shadows}}
\index{get\+Cast\+Shadows@{get\+Cast\+Shadows}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Cast\+Shadows()}{getCastShadows()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Static\+Geometry\+::get\+Cast\+Shadows (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Will the geometry from this object cast shadows? 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a91b72934294a81bd107747a076fd8a69}\label{class_ogre_1_1_static_geometry_a91b72934294a81bd107747a076fd8a69}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Region\+Dimensions@{set\+Region\+Dimensions}}
\index{set\+Region\+Dimensions@{set\+Region\+Dimensions}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Region\+Dimensions()}{setRegionDimensions()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Region\+Dimensions (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Sets the size of a single region of geometry. 

\begin{DoxyRemark}{Remarks}
This method allows you to configure the physical world size of each region, so you can balance culling against batch size. Entities will be fitted within the batch they most closely fit, and the eventual bounds of each batch may well be slightly larger than this if they overlap a little. The default is Vector3(1000, 1000, 1000). 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Must be called before \textquotesingle{}build\textquotesingle{}. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em size} & \hyperlink{class_ogre_1_1_vector3}{Vector3} expressing the 3D size of each region. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_af9809706b5a69104c1f65b96369a6118}\label{class_ogre_1_1_static_geometry_af9809706b5a69104c1f65b96369a6118}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Region\+Dimensions@{get\+Region\+Dimensions}}
\index{get\+Region\+Dimensions@{get\+Region\+Dimensions}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Region\+Dimensions()}{getRegionDimensions()}}
{\footnotesize\ttfamily virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3}\& Ogre\+::\+Static\+Geometry\+::get\+Region\+Dimensions (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Gets the size of a single batch of geometry. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a7e192ed9d7b41ae948b7ca0ed4cb5e0f}\label{class_ogre_1_1_static_geometry_a7e192ed9d7b41ae948b7ca0ed4cb5e0f}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Origin@{set\+Origin}}
\index{set\+Origin@{set\+Origin}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Origin()}{setOrigin()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Origin (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{origin }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Sets the origin of the geometry. 

\begin{DoxyRemark}{Remarks}
This method allows you to configure the world centre of the geometry, thus the place which all regions surround. You probably don\textquotesingle{}t need to mess with this unless you have a seriously large world, since the default set up can handle an area 1024 $\ast$ m\+Region\+Dimensions, and the sparseness of population is no issue when it comes to rendering. The default is Vector3(0,0,0). 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Must be called before \textquotesingle{}build\textquotesingle{}. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em origin} & \hyperlink{class_ogre_1_1_vector3}{Vector3} expressing the 3D origin of the geometry. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a807a905eb41d91e48a59b87600da88a7}\label{class_ogre_1_1_static_geometry_a807a905eb41d91e48a59b87600da88a7}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Origin@{get\+Origin}}
\index{get\+Origin@{get\+Origin}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Origin()}{getOrigin()}}
{\footnotesize\ttfamily virtual const \hyperlink{class_ogre_1_1_vector3}{Vector3}\& Ogre\+::\+Static\+Geometry\+::get\+Origin (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Gets the origin of this geometry. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a01a3f53c1970d60f1908cac9d1cc3b1d}\label{class_ogre_1_1_static_geometry_a01a3f53c1970d60f1908cac9d1cc3b1d}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Visibility\+Flags@{set\+Visibility\+Flags}}
\index{set\+Visibility\+Flags@{set\+Visibility\+Flags}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Visibility\+Flags()}{setVisibilityFlags()}}
{\footnotesize\ttfamily void Ogre\+::\+Static\+Geometry\+::set\+Visibility\+Flags (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{flags }\end{DoxyParamCaption})}



Sets the visibility flags of all the regions at once. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a6732442e32787ccd6c680e0ae9cc01fd}\label{class_ogre_1_1_static_geometry_a6732442e32787ccd6c680e0ae9cc01fd}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Visibility\+Flags@{get\+Visibility\+Flags}}
\index{get\+Visibility\+Flags@{get\+Visibility\+Flags}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Visibility\+Flags()}{getVisibilityFlags()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Static\+Geometry\+::get\+Visibility\+Flags (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns the visibility flags of the regions. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a8ce1fb9687b9023947683b881d72096b}\label{class_ogre_1_1_static_geometry_a8ce1fb9687b9023947683b881d72096b}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!set\+Render\+Queue\+Group@{set\+Render\+Queue\+Group}}
\index{set\+Render\+Queue\+Group@{set\+Render\+Queue\+Group}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{set\+Render\+Queue\+Group()}{setRenderQueueGroup()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::set\+Render\+Queue\+Group (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8}}]{queue\+ID }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the render queue group this object will be rendered through. 

\begin{DoxyRemark}{Remarks}
Render queues are grouped to allow you to more tightly control the ordering of rendered objects. If you do not call this method, all objects default to the default queue (\hyperlink{class_ogre_1_1_render_queue_aa5c1a5214c10422de1a473ac56edba37}{Render\+Queue\+::get\+Default\+Queue\+Group}), which is fine for most objects. You may want to alter this if you want to perform more complex rendering. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
See \hyperlink{class_ogre_1_1_render_queue}{Render\+Queue} for more details. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em queue\+ID} & Enumerated value of the queue group to use. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a1d58673b93c467f9e5e23af619d8806f}\label{class_ogre_1_1_static_geometry_a1d58673b93c467f9e5e23af619d8806f}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Render\+Queue\+Group@{get\+Render\+Queue\+Group}}
\index{get\+Render\+Queue\+Group@{get\+Render\+Queue\+Group}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Render\+Queue\+Group()}{getRenderQueueGroup()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_a119732ea9d1e88bbddc47b4ac0fa21cb}{uint8} Ogre\+::\+Static\+Geometry\+::get\+Render\+Queue\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Gets the queue group for this entity, see set\+Render\+Queue\+Group for full details. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a83566155af8cfe9ebc83970b14978a37}\label{class_ogre_1_1_static_geometry_a83566155af8cfe9ebc83970b14978a37}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!visit\+Renderables@{visit\+Renderables}}
\index{visit\+Renderables@{visit\+Renderables}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{visit\+Renderables()}{visitRenderables()}}
{\footnotesize\ttfamily void Ogre\+::\+Static\+Geometry\+::visit\+Renderables (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_renderable_1_1_visitor}{Renderable\+::\+Visitor} $\ast$}]{visitor,  }\item[{bool}]{debug\+Renderables = {\ttfamily false} }\end{DoxyParamCaption})}



Method to allow a caller to abstractly iterate over the \hyperlink{class_ogre_1_1_renderable}{Renderable} instances that this \hyperlink{class_ogre_1_1_movable_object}{Movable\+Object} will add to the render queue when asked, if any. 


\begin{DoxyParams}{Parameters}
{\em visitor} & Pointer to a class implementing the \hyperlink{class_ogre_1_1_renderable_1_1_visitor}{Renderable\+::\+Visitor} interface which will be called back for each \hyperlink{class_ogre_1_1_renderable}{Renderable} which will be queued. Bear in mind that the state of the \hyperlink{class_ogre_1_1_renderable}{Renderable} instances may not be finalised depending on when you call this. \\
\hline
{\em debug\+Renderables} & If false, only regular renderables will be visited (those for normal display). If true, debug renderables will be included too. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_static_geometry_a483ba1dbb7fcbe2be40c6168aaea5c2e}\label{class_ogre_1_1_static_geometry_a483ba1dbb7fcbe2be40c6168aaea5c2e}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!get\+Region\+Iterator@{get\+Region\+Iterator}}
\index{get\+Region\+Iterator@{get\+Region\+Iterator}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{get\+Region\+Iterator()}{getRegionIterator()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_static_geometry_ac58b2faf8a71daf21406ed730215a13a}{Region\+Iterator} Ogre\+::\+Static\+Geometry\+::get\+Region\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get an iterator over the regions in this geometry. 

\mbox{\Hypertarget{class_ogre_1_1_static_geometry_ad66c70a28321e9420d91ee044300a182}\label{class_ogre_1_1_static_geometry_ad66c70a28321e9420d91ee044300a182}} 
\index{Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}!dump@{dump}}
\index{dump@{dump}!Ogre\+::\+Static\+Geometry@{Ogre\+::\+Static\+Geometry}}
\subsubsection{\texorpdfstring{dump()}{dump()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Static\+Geometry\+::dump (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{filename }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Dump the contents of this \hyperlink{class_ogre_1_1_static_geometry}{Static\+Geometry} to a file for diagnostic purposes. 



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_static_geometry_8h}{Ogre\+Static\+Geometry.\+h}\end{DoxyCompactItemize}
