source: OGRE/trunk/ogrenew/Docs/api/html/OgreStaticGeometry_8h-source.html @ 692

Revision 692, 59.0 KB checked in by mattausch, 18 years ago (diff)

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>OgreStaticGeometry.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>OgreStaticGeometry.h</h1><a href="OgreStaticGeometry_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">(Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025 <span class="preprocessor">#ifndef __StaticGeometry_H__</span>
3500026 <span class="preprocessor"></span><span class="preprocessor">#define __StaticGeometry_H__</span>
3600027 <span class="preprocessor"></span>
3700028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
3800029 <span class="preprocessor">#include "<a class="code" href="OgreMovableObject_8h.html">OgreMovableObject.h</a>"</span>
3900030 <span class="preprocessor">#include "<a class="code" href="OgreRenderable_8h.html">OgreRenderable.h</a>"</span>
4000031
4100032 <span class="keyword">namespace </span>Ogre {
4200033
43<a name="l00106"></a><a class="code" href="classOgre_1_1StaticGeometry.html">00106</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> StaticGeometry
4400107     {
4500108     <span class="keyword">public</span>:
46<a name="l00121"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html">00121</a>         <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a17">_OgrePrivate</a> OptimisedSubMeshGeometry
4700122         {
4800123         <span class="keyword">public</span>:
49<a name="l00124"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometrya0">00124</a>             OptimisedSubMeshGeometry() :vertexData(0), indexData(0) {}
50<a name="l00125"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometrya1">00125</a>             ~OptimisedSubMeshGeometry()
5100126             {
5200127                 <span class="keyword">delete</span> vertexData;
5300128                 <span class="keyword">delete</span> indexData;
5400129             }
55<a name="l00130"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometryo0">00130</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a> *vertexData;
56<a name="l00131"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometryo1">00131</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a> *indexData;
5700132         };
58<a name="l00133"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">00133</a>         <span class="keyword">typedef</span> std::list&lt;OptimisedSubMeshGeometry*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">OptimisedSubMeshGeometryList</a>;
59<a name="l00136"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">00136</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>
6000137         {
61<a name="l00138"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html#Ogre_1_1StaticGeometry_1_1SubMeshLodGeometryLinko0">00138</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vertexData;
62<a name="l00139"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html#Ogre_1_1StaticGeometry_1_1SubMeshLodGeometryLinko1">00139</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* indexData;
6300140         };
64<a name="l00141"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">00141</a>         <span class="keyword">typedef</span> std::vector&lt;SubMeshLodGeometryLink&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">SubMeshLodGeometryLinkList</a>;
65<a name="l00142"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw2">00142</a>         <span class="keyword">typedef</span> std::map&lt;SubMesh*, SubMeshLodGeometryLinkList*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw2">SubMeshGeometryLookup</a>;
66<a name="l00144"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">00144</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">QueuedSubMesh</a>
6700145         {
68<a name="l00146"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho0">00146</a>             <a class="code" href="classOgre_1_1SubMesh.html">SubMesh</a>* submesh;
69<a name="l00148"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho1">00148</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">SubMeshLodGeometryLinkList</a>* geometryLodList;
70<a name="l00149"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho2">00149</a>             <a class="code" href="namespaceOgre.html#a471">String</a> materialName;
71<a name="l00150"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho3">00150</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> position;
72<a name="l00151"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho4">00151</a>             <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> orientation;
73<a name="l00152"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho5">00152</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> scale;
74<a name="l00154"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho6">00154</a>             <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> worldBounds;
7500155         };
76<a name="l00156"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">00156</a>         <span class="keyword">typedef</span> std::vector&lt;QueuedSubMesh*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a>;
77<a name="l00158"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">00158</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>
7800159         {
79<a name="l00160"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo0">00160</a>             <a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* geometry;
80<a name="l00161"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo1">00161</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> position;
81<a name="l00162"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo2">00162</a>             <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> orientation;
82<a name="l00163"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo3">00163</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> scale;
8300164         };
84<a name="l00165"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">00165</a>         <span class="keyword">typedef</span> std::vector&lt;QueuedGeometry*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a>;
8500166         
8600167         <span class="comment">// forward declarations</span>
8700168         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>;
8800169         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>;
8900170         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>;
9000171
91<a name="l00176"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html">00176</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> GeometryBucket :  <span class="keyword">public</span> <a class="code" href="classOgre_1_1Renderable.html">Renderable</a>
9200177         {
9300178         <span class="keyword">protected</span>:
94<a name="l00180"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp0">00180</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a> mQueuedGeometry;
95<a name="l00182"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp1">00182</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>* mParent;
96<a name="l00184"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp2">00184</a>             <a class="code" href="namespaceOgre.html#a471">String</a> mFormatString;
97<a name="l00187"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp3">00187</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* mVertexData;
98<a name="l00190"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp4">00190</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* mIndexData;
99<a name="l00192"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp5">00192</a>             HardwareIndexBuffer::IndexType mIndexType;
100<a name="l00194"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp6">00194</a>             size_t mMaxVertexIndex;
10100195
10200196             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
103<a name="l00197"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketb0">00197</a>             <span class="keywordtype">void</span> copyIndexes(<span class="keyword">const</span> T* src, T* dst, size_t count, size_t indexOffset)
10400198             {
10500199                 <span class="keywordflow">if</span> (indexOffset == 0)
10600200                 {
10700201                     memcpy(dst, src, <span class="keyword">sizeof</span>(T) * count);
10800202                 }
10900203                 <span class="keywordflow">else</span>
11000204                 {
11100205                     <span class="keywordflow">while</span>(count--)
11200206                     {
11300207                         *dst++ = static_cast&lt;T&gt;(*src++ + indexOffset);
11400208                     }
11500209                 }
11600210             }
11700211         <span class="keyword">public</span>:
11800212             GeometryBucket(<a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>* parent, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; formatString,
11900213                 <span class="keyword">const</span> <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vData, <span class="keyword">const</span> <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* iData);
12000214             <span class="keyword">virtual</span> ~GeometryBucket();
121<a name="l00215"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa2">00215</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>* getParent(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mParent; }
122<a name="l00217"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa3">00217</a>             <span class="keyword">const</span> <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* getVertexData(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mVertexData; }
123<a name="l00219"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa4">00219</a>             <span class="keyword">const</span> <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* getIndexData(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mIndexData; }
12400221             <span class="keyword">const</span> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a>&amp; getMaterial(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12500222             <a class="code" href="classOgre_1_1Technique.html">Technique</a>* getTechnique(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12600223             <span class="keywordtype">void</span> getRenderOperation(<a class="code" href="classOgre_1_1RenderOperation.html">RenderOperation</a>&amp; op);
12700224             <span class="keywordtype">void</span> getWorldTransforms(<a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* xform) <span class="keyword">const</span>;
12800225             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>&amp; getWorldOrientation(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12900226             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; getWorldPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13000227             <a class="code" href="namespaceOgre.html#a465">Real</a> getSquaredViewDepth(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam) <span class="keyword">const</span>;
13100228             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a73">LightList</a>&amp; getLights(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13200229             <span class="keywordtype">bool</span> getCastsShadows(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13300230             
13400234             <span class="keywordtype">bool</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>* qsm);
13500236             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
13600238             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
13700239         };
138<a name="l00242"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">00242</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> MaterialBucket
13900243         {
14000244         <span class="keyword">public</span>:
141<a name="l00246"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw0">00246</a>             <span class="keyword">typedef</span> std::vector&lt;GeometryBucket*&gt; <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw0">GeometryBucketList</a>;
14200247         <span class="keyword">protected</span>:
143<a name="l00249"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp0">00249</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>* mParent;
144<a name="l00251"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp1">00251</a>             <a class="code" href="namespaceOgre.html#a471">String</a> mMaterialName;
145<a name="l00253"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp2">00253</a>             <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> mMaterial;
146<a name="l00255"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp3">00255</a>             <a class="code" href="classOgre_1_1Technique.html">Technique</a>* mTechnique;
14700256
148<a name="l00258"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp4">00258</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw0">GeometryBucketList</a> mGeometryBucketList;
14900259             <span class="comment">// index to current Geometry Buckets for a given geometry format</span>
150<a name="l00260"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketx0">00260</a>             <span class="keyword">typedef</span> std::map&lt;String, GeometryBucket*&gt; <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketx0">CurrentGeometryMap</a>;
151<a name="l00261"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp5">00261</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketx0">CurrentGeometryMap</a> mCurrentGeometryMap;
15200263             <a class="code" href="namespaceOgre.html#a471">String</a> getGeometryFormatString(<a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* geom);
15300264             
15400265         <span class="keyword">public</span>:
15500266             MaterialBucket(<a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>* parent, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; materialName);
15600267             <span class="keyword">virtual</span> ~MaterialBucket();
157<a name="l00268"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa2">00268</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>* getParent(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mParent; }
158<a name="l00270"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa3">00270</a>             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getMaterialName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaterialName; }
15900272             <span class="keywordtype">void</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>* qsm);
16000274             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
16100276             <span class="keywordtype">void</span> addRenderables(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue, <a class="code" href="namespaceOgre.html#a457">uint8</a> group,
16200277                 <a class="code" href="namespaceOgre.html#a465">Real</a> camSquaredDist);
163<a name="l00279"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa7">00279</a>             <span class="keyword">const</span> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a>&amp; getMaterial(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaterial; }
164<a name="l00281"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw1">00281</a>             <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1VectorIterator.html">VectorIterator&lt;GeometryBucketList&gt;</a> <a class="code" href="classOgre_1_1VectorIterator.html">GeometryIterator</a>;
16500283             <a class="code" href="classOgre_1_1VectorIterator.html">GeometryIterator</a> getGeometryIterator(<span class="keywordtype">void</span>);
166<a name="l00285"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa9">00285</a>             <a class="code" href="classOgre_1_1Technique.html">Technique</a>* getCurrentTechnique(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mTechnique; }
16700287             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
16800288         };
169<a name="l00294"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">00294</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> LODBucket
17000295         {
17100296         <span class="keyword">public</span>:
172<a name="l00298"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw0">00298</a>             <span class="keyword">typedef</span> std::map&lt;String, MaterialBucket*&gt; <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw0">MaterialBucketMap</a>;
17300299         <span class="keyword">protected</span>:
174<a name="l00301"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp0">00301</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>* mParent;
175<a name="l00303"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp1">00303</a>             <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> mLod;
176<a name="l00305"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp2">00305</a>             <a class="code" href="namespaceOgre.html#a465">Real</a> mSquaredDistance;
177<a name="l00307"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp3">00307</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw0">MaterialBucketMap</a> mMaterialBucketMap;
178<a name="l00309"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp4">00309</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a> mQueuedGeometryList;
17900310         <span class="keyword">public</span>:
18000311             LODBucket(<a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>* parent, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> lod, <a class="code" href="namespaceOgre.html#a465">Real</a> lodDist);
18100312             <span class="keyword">virtual</span> ~LODBucket();
182<a name="l00313"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa2">00313</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>* getParent(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mParent; }
183<a name="l00315"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa3">00315</a>             <a class="code" href="namespaceOgre.html#a467">ushort</a> getLod(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mLod; }
184<a name="l00317"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa4">00317</a>             <a class="code" href="namespaceOgre.html#a465">Real</a> getSquaredDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSquaredDistance; }
18500319             <span class="keywordtype">void</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">QueuedSubMesh</a>* qsm, <a class="code" href="namespaceOgre.html#a467">ushort</a> atLod);
18600321             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
18700323             <span class="keywordtype">void</span> addRenderables(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue, <a class="code" href="namespaceOgre.html#a457">uint8</a> group,
18800324                 <a class="code" href="namespaceOgre.html#a465">Real</a> camSquaredDistance);
189<a name="l00326"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw1">00326</a>             <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1MapIterator.html">MapIterator&lt;MaterialBucketMap&gt;</a> <a class="code" href="classOgre_1_1MapIterator.html">MaterialIterator</a>;
19000328             <a class="code" href="classOgre_1_1MapIterator.html">MaterialIterator</a> getMaterialIterator(<span class="keywordtype">void</span>);
19100330             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
19200331             
19300332         };
194<a name="l00341"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">00341</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> Region : <span class="keyword">public</span> <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>
19500342         {
19600343         <span class="keyword">public</span>:
197<a name="l00345"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw0">00345</a>             <span class="keyword">typedef</span> std::vector&lt;LODBucket*&gt; <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw0">LODBucketList</a>;
19800346         <span class="keyword">protected</span>:
199<a name="l00348"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html">00348</a>             <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RegionShadowRenderable : <span class="keyword">public</span> <a class="code" href="classOgre_1_1ShadowRenderable.html">ShadowRenderable</a>
20000349             {
20100350             <span class="keyword">protected</span>:
202<a name="l00351"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep0">00351</a>                 Region* mParent;
20300352                 <span class="comment">// Shared link to position buffer</span>
204<a name="l00353"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep1">00353</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> mPositionBuffer;
20500354                 <span class="comment">// Shared link to w-coord buffer (optional)</span>
206<a name="l00355"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep2">00355</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> mWBuffer;
20700356
20800357             <span class="keyword">public</span>:
20900358                 RegionShadowRenderable(Region* parent,
21000359                     <a class="code" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a>* indexBuffer, <span class="keyword">const</span> <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vertexData,
21100360                     <span class="keywordtype">bool</span> createSeparateLightCap, <span class="keywordtype">bool</span> isLightCap = <span class="keyword">false</span>);
21200361                 ~RegionShadowRenderable();
21300363                 <span class="keywordtype">void</span> getWorldTransforms(<a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* xform) <span class="keyword">const</span>;
21400365                 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>&amp; getWorldOrientation(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
21500367                 <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; getWorldPosition(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
216<a name="l00368"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablea5">00368</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> getPositionBuffer(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mPositionBuffer; }
217<a name="l00369"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablea6">00369</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> getWBuffer(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mWBuffer; }
21800370
21900371             };
220<a name="l00373"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp0">00373</a>             StaticGeometry* mParent;
221<a name="l00375"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp1">00375</a>             <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mSceneMgr;
222<a name="l00377"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp2">00377</a>             <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a>* mNode;
223<a name="l00379"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp3">00379</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a> mQueuedSubMeshes;
224<a name="l00381"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp4">00381</a>             <a class="code" href="namespaceOgre.html#a455">uint32</a> mRegionID;
225<a name="l00383"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp5">00383</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mCentre;
226<a name="l00385"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp6">00385</a>             std::vector&lt;Real&gt; mLodSquaredDistances;
227<a name="l00387"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp7">00387</a>             <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mAABB;
228<a name="l00389"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp8">00389</a>             <a class="code" href="namespaceOgre.html#a465">Real</a> mBoundingRadius;
229<a name="l00391"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp9">00391</a>             <a class="code" href="namespaceOgre.html#a467">ushort</a> mCurrentLod;
230<a name="l00393"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp10">00393</a>             <a class="code" href="namespaceOgre.html#a465">Real</a> mCamDistanceSquared;
231<a name="l00395"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp11">00395</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw0">LODBucketList</a> mLodBucketList;
232<a name="l00397"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp12">00397</a>             <span class="keyword">mutable</span> <a class="code" href="namespaceOgre.html#a73">LightList</a> mLightList;
233<a name="l00399"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp13">00399</a>             <span class="keyword">mutable</span> <a class="code" href="namespaceOgre.html#a469">ulong</a> mLightListUpdated;
234<a name="l00401"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp14">00401</a>             <a class="code" href="classOgre_1_1EdgeData.html">EdgeData</a>* mEdgeList;
235<a name="l00403"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp15">00403</a>             ShadowRenderableList mShadowRenderables;
236<a name="l00405"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp16">00405</a>             <span class="keywordtype">bool</span> mVertexProgramInUse;
23700406
23800407
23900408
24000409         <span class="keyword">public</span>:
24100410             Region(StaticGeometry* parent, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr,
24200411                 <a class="code" href="namespaceOgre.html#a455">uint32</a> regionID, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; centre);
24300412             <span class="keyword">virtual</span> ~Region();
24400413             <span class="comment">// more fields can be added in subclasses</span>
245<a name="l00414"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona2">00414</a>             StaticGeometry* getParent(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mParent;}
24600416             <span class="keywordtype">void</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">QueuedSubMesh</a>* qmesh);
24700418             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
248<a name="l00420"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona5">00420</a>             <a class="code" href="namespaceOgre.html#a455">uint32</a> getID(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRegionID; }
249<a name="l00422"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona6">00422</a>             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; getCentre(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mCentre; }
25000423             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getMovableType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25100424             <span class="keywordtype">void</span> _notifyCurrentCamera(<a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam);
25200425             <span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; getBoundingBox(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25300426             <a class="code" href="namespaceOgre.html#a465">Real</a> getBoundingRadius(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25400427             <span class="keywordtype">void</span> _updateRenderQueue(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue);
25500428             <span class="keywordtype">bool</span> isVisible(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25600429             <a class="code" href="namespaceOgre.html#a455">uint32</a> getTypeFlags(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25700430
258<a name="l00431"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw1">00431</a>             <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1VectorIterator.html">VectorIterator&lt;LODBucketList&gt;</a> <a class="code" href="classOgre_1_1VectorIterator.html">LODIterator</a>;
25900433             <a class="code" href="classOgre_1_1VectorIterator.html">LODIterator</a> getLODIterator(<span class="keywordtype">void</span>);
26000435             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a73">LightList</a>&amp; getLights(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
26100437             ShadowRenderableListIterator getShadowVolumeRenderableIterator(
26200438                 ShadowTechnique shadowTechnique, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Light.html">Light</a>* light,
26300439                 <a class="code" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a>* indexBuffer,
26400440                 <span class="keywordtype">bool</span> extrudeVertices, <a class="code" href="namespaceOgre.html#a465">Real</a> extrusionDistance, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags = 0 );
26500442             <a class="code" href="classOgre_1_1EdgeData.html">EdgeData</a>* getEdgeList(<span class="keywordtype">void</span>);
26600443
26700444
26800446             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
26900447             
27000448         };
271<a name="l00456"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw5">00456</a>         <span class="keyword">typedef</span> std::map&lt;uint32, Region*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw5">RegionMap</a>;
27200457     <span class="keyword">protected</span>:
27300458         <span class="comment">// General state &amp; settings</span>
274<a name="l00459"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp0">00459</a>         <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mOwner;
275<a name="l00460"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp1">00460</a>         <a class="code" href="namespaceOgre.html#a471">String</a> mName;
276<a name="l00461"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp2">00461</a>         <span class="keywordtype">bool</span> mBuilt;
277<a name="l00462"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp3">00462</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> mUpperDistance;
278<a name="l00463"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp4">00463</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> mSquaredUpperDistance;
279<a name="l00464"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp5">00464</a>         <span class="keywordtype">bool</span> mCastShadows;
280<a name="l00465"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp6">00465</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mRegionDimensions;
281<a name="l00466"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp7">00466</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mHalfRegionDimensions;
282<a name="l00467"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp8">00467</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mOrigin;
283<a name="l00468"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp9">00468</a>         <span class="keywordtype">bool</span> mVisible;
284<a name="l00470"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp10">00470</a>         <a class="code" href="namespaceOgre.html#a457">uint8</a> mRenderQueueID;
285<a name="l00472"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp11">00472</a>         <span class="keywordtype">bool</span> mRenderQueueIDSet;
28600473
287<a name="l00474"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp12">00474</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a> mQueuedSubMeshes;
28800475
289<a name="l00478"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp13">00478</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">OptimisedSubMeshGeometryList</a> mOptimisedSubMeshGeometryList;
29000479
291<a name="l00484"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp14">00484</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw2">SubMeshGeometryLookup</a> mSubMeshGeometryLookup;
29200485             
293<a name="l00487"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp15">00487</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw5">RegionMap</a> mRegionMap;
29400488
29500492         <span class="keyword">virtual</span> Region* getRegion(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; bounds, <span class="keywordtype">bool</span> autoCreate);
29600494         <span class="keyword">virtual</span> Region* getRegion(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; point, <span class="keywordtype">bool</span> autoCreate);
29700496         <span class="keyword">virtual</span> Region* getRegion(<a class="code" href="namespaceOgre.html#a467">ushort</a> x, <a class="code" href="namespaceOgre.html#a467">ushort</a> y, <a class="code" href="namespaceOgre.html#a467">ushort</a> z, <span class="keywordtype">bool</span> autoCreate);
29800498         <span class="keyword">virtual</span> Region* getRegion(<a class="code" href="namespaceOgre.html#a455">uint32</a> index);
29900501         <span class="keyword">virtual</span> <span class="keywordtype">void</span> getRegionIndexes(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; point,
30000502             <a class="code" href="namespaceOgre.html#a467">ushort</a>&amp; x, <a class="code" href="namespaceOgre.html#a467">ushort</a>&amp; y, <a class="code" href="namespaceOgre.html#a467">ushort</a>&amp; z);
30100505         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a455">uint32</a> packIndex(<a class="code" href="namespaceOgre.html#a467">ushort</a> x, <a class="code" href="namespaceOgre.html#a467">ushort</a> y, <a class="code" href="namespaceOgre.html#a467">ushort</a> z);
30200508         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a465">Real</a> getVolumeIntersection(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; box, 
30300509             <a class="code" href="namespaceOgre.html#a467">ushort</a> x, <a class="code" href="namespaceOgre.html#a467">ushort</a> y, <a class="code" href="namespaceOgre.html#a467">ushort</a> z);
30400512         <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> getRegionBounds(<a class="code" href="namespaceOgre.html#a467">ushort</a> x, <a class="code" href="namespaceOgre.html#a467">ushort</a> y, <a class="code" href="namespaceOgre.html#a467">ushort</a> z);
30500515         <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> getRegionCentre(<a class="code" href="namespaceOgre.html#a467">ushort</a> x, <a class="code" href="namespaceOgre.html#a467">ushort</a> y, <a class="code" href="namespaceOgre.html#a467">ushort</a> z);
30600517         <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> calculateBounds(<a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vertexData,
30700518             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; position, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>&amp; orientation,
30800519             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; scale);
30900521         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">SubMeshLodGeometryLinkList</a>* determineGeometry(<a class="code" href="classOgre_1_1SubMesh.html">SubMesh</a>* sm);
31000523         <span class="keywordtype">void</span> splitGeometry(<a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vd, <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* <span class="keywordtype">id</span>,
31100524             <a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* targetGeomLink);
31200525
313<a name="l00526"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryx0">00526</a>         <span class="keyword">typedef</span> std::map&lt;size_t, size_t&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryx0">IndexRemap</a>;
31400531         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
315<a name="l00532"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryb12">00532</a>         <span class="keywordtype">void</span> buildIndexRemap(T* pBuffer, size_t numIndexes, <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryx0">IndexRemap</a>&amp; remap)
31600533         {
31700534             remap.clear();
31800535             <span class="keywordflow">for</span> (size_t i = 0; i &lt; numIndexes; ++i)
31900536             {
32000537                 <span class="comment">// use insert since duplicates are silently discarded</span>
32100538                 remap.insert(IndexRemap::value_type(*pBuffer++, remap.size()));
32200539                 <span class="comment">// this will have mapped oldindex -&gt; new index IF oldindex</span>
32300540                 <span class="comment">// wasn't already there</span>
32400541             }
32500542         }
32600544         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
327<a name="l00545"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryb13">00545</a>         <span class="keywordtype">void</span> remapIndexes(T* src, T* dst, <span class="keyword">const</span> <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryx0">IndexRemap</a>&amp; remap,
32800546                 size_t numIndexes)
32900547         {
33000548             <span class="keywordflow">for</span> (size_t i = 0; i &lt; numIndexes; ++i)
33100549             {
33200550                 <span class="comment">// look up original and map to target</span>
33300551                 IndexRemap::const_iterator ix = remap.find(*src++);
33400552                 assert(ix != remap.end());
33500553                 *dst++ = static_cast&lt;T&gt;(ix-&gt;second);
33600554             }
33700555         }
33800556         
33900557     <span class="keyword">public</span>:
34000559         StaticGeometry(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* owner, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name);
34100561         <span class="keyword">virtual</span> ~StaticGeometry();
34200562
343<a name="l00564"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya2">00564</a>         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mName; }
34400583         <span class="keyword">virtual</span> <span class="keywordtype">void</span> addEntity(<a class="code" href="classOgre_1_1Entity.html">Entity</a>* ent, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; position,
34500584             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>&amp; orientation = Quaternion::IDENTITY,
34600585             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; scale = Vector3::UNIT_SCALE);
34700586
34800605         <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSceneNode(<span class="keyword">const</span> <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a>* node);
34900606
35000617         <span class="keyword">virtual</span> <span class="keywordtype">void</span> build(<span class="keywordtype">void</span>);
35100618
35200624         <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroy(<span class="keywordtype">void</span>);
35300625
35400629         <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset(<span class="keywordtype">void</span>);
35500630
356<a name="l00640"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya8">00640</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRenderingDistance(<a class="code" href="namespaceOgre.html#a465">Real</a> dist) {
35700641             mUpperDistance = dist;
35800642             mSquaredUpperDistance = mUpperDistance * mUpperDistance;
35900643         }
36000644
361<a name="l00646"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya9">00646</a>         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a465">Real</a> getRenderingDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mUpperDistance; }
36200647
363<a name="l00649"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya10">00649</a>         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a465">Real</a> getSquaredRenderingDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>
36400650 <span class="keyword">        </span>{ <span class="keywordflow">return</span> mSquaredUpperDistance; }
36500651
36600653         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVisible(<span class="keywordtype">bool</span> visible);
36700654
368<a name="l00656"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya12">00656</a>         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isVisible(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mVisible; }
36900657
37000675         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCastShadows(<span class="keywordtype">bool</span> castShadows);
371<a name="l00677"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya14">00677</a>         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getCastShadows(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mCastShadows; }
37200678
373<a name="l00689"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya15">00689</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRegionDimensions(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; size) {
37400690             mRegionDimensions = size;
37500691             mHalfRegionDimensions = size * 0.5;
37600692         }
377<a name="l00694"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya16">00694</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; getRegionDimensions(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRegionDimensions; }
378<a name="l00706"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya17">00706</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setOrigin(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; origin) { mOrigin = origin; }
379<a name="l00708"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya18">00708</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; getOrigin(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mOrigin; }
38000709
38100721         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRenderQueueGroup(<a class="code" href="namespaceOgre.html#a457">uint8</a> queueID);
38200722
38300724         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a457">uint8</a> getRenderQueueGroup(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
38400725         
385<a name="l00727"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw6">00727</a>         <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1MapIterator.html">MapIterator&lt;RegionMap&gt;</a> <a class="code" href="classOgre_1_1MapIterator.html">RegionIterator</a>;
38600729         <a class="code" href="classOgre_1_1MapIterator.html">RegionIterator</a> getRegionIterator(<span class="keywordtype">void</span>);
38700730
38800734         <span class="keyword">virtual</span> <span class="keywordtype">void</span> dump(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; filename) <span class="keyword">const</span>;
38900735
39000736
39100737     };
39200738
39300739 }
39400740
39500741 <span class="preprocessor">#endif</span>
39600742 <span class="preprocessor"></span>
397</pre></div><hr>
398<p>
399Copyright &copy; 2000-2005 by The OGRE Team<br />
400<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
401This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
402                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
403                <Work rdf:about="">
404                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
405        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
406                </Work>
407                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
408
409Last modified Sun Mar 12 14:37:50 2006
410</p>
411</body>
412</html>
Note: See TracBrowser for help on using the repository browser.