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

Revision 657, 59.5 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

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 <span class="preprocessor">#include "<a class="code" href="OgreEdgeListBuilder_8h.html">OgreEdgeListBuilder.h</a>"</span>
4100032
4200033 <span class="keyword">namespace </span>Ogre {
4300034
44<a name="l00107"></a><a class="code" href="classOgre_1_1StaticGeometry.html">00107</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> StaticGeometry
4500108     {
4600109     <span class="keyword">public</span>:
47<a name="l00122"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html">00122</a>         <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a17">_OgrePrivate</a> OptimisedSubMeshGeometry
4800123         {
4900124         <span class="keyword">public</span>:
50<a name="l00125"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometrya0">00125</a>             OptimisedSubMeshGeometry() :vertexData(0), indexData(0) {}
51<a name="l00126"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometrya1">00126</a>             ~OptimisedSubMeshGeometry()
5200127             {
5300128                 <span class="keyword">delete</span> vertexData;
5400129                 <span class="keyword">delete</span> indexData;
5500130             }
56<a name="l00131"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometryo0">00131</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a> *vertexData;
57<a name="l00132"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1OptimisedSubMeshGeometry.html#Ogre_1_1StaticGeometry_1_1OptimisedSubMeshGeometryo1">00132</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a> *indexData;
5800133         };
59<a name="l00134"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">00134</a>         <span class="keyword">typedef</span> std::list&lt;OptimisedSubMeshGeometry*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">OptimisedSubMeshGeometryList</a>;
60<a name="l00137"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">00137</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>
6100138         {
62<a name="l00139"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html#Ogre_1_1StaticGeometry_1_1SubMeshLodGeometryLinko0">00139</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* vertexData;
63<a name="l00140"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html#Ogre_1_1StaticGeometry_1_1SubMeshLodGeometryLinko1">00140</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* indexData;
6400141         };
65<a name="l00142"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">00142</a>         <span class="keyword">typedef</span> std::vector&lt;SubMeshLodGeometryLink&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">SubMeshLodGeometryLinkList</a>;
66<a name="l00143"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw2">00143</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>;
67<a name="l00145"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">00145</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">QueuedSubMesh</a>
6800146         {
69<a name="l00147"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho0">00147</a>             <a class="code" href="classOgre_1_1SubMesh.html">SubMesh</a>* submesh;
70<a name="l00149"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho1">00149</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw1">SubMeshLodGeometryLinkList</a>* geometryLodList;
71<a name="l00150"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho2">00150</a>             <a class="code" href="namespaceOgre.html#a426">String</a> materialName;
72<a name="l00151"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho3">00151</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> position;
73<a name="l00152"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho4">00152</a>             <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> orientation;
74<a name="l00153"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho5">00153</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> scale;
75<a name="l00155"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html#Ogre_1_1StaticGeometry_1_1QueuedSubMesho6">00155</a>             <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> worldBounds;
7600156         };
77<a name="l00157"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">00157</a>         <span class="keyword">typedef</span> std::vector&lt;QueuedSubMesh*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a>;
78<a name="l00159"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">00159</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>
7900160         {
80<a name="l00161"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo0">00161</a>             <a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* geometry;
81<a name="l00162"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo1">00162</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> position;
82<a name="l00163"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo2">00163</a>             <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a> orientation;
83<a name="l00164"></a><a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html#Ogre_1_1StaticGeometry_1_1QueuedGeometryo3">00164</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> scale;
8400165         };
85<a name="l00166"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">00166</a>         <span class="keyword">typedef</span> std::vector&lt;QueuedGeometry*&gt; <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a>;
8600167         
8700168         <span class="comment">// forward declarations</span>
8800169         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>;
8900170         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>;
9000171         <span class="keyword">class </span><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>;
9100172
92<a name="l00177"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html">00177</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>
9300178         {
9400179         <span class="keyword">protected</span>:
95<a name="l00181"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp0">00181</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a> mQueuedGeometry;
96<a name="l00183"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp1">00183</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">MaterialBucket</a>* mParent;
97<a name="l00185"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp2">00185</a>             <a class="code" href="namespaceOgre.html#a426">String</a> mFormatString;
98<a name="l00188"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp3">00188</a>             <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* mVertexData;
99<a name="l00191"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp4">00191</a>             <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* mIndexData;
100<a name="l00193"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp5">00193</a>             HardwareIndexBuffer::IndexType mIndexType;
101<a name="l00195"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketp6">00195</a>             size_t mMaxVertexIndex;
10200196
10300197             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
104<a name="l00198"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketb0">00198</a>             <span class="keywordtype">void</span> copyIndexes(<span class="keyword">const</span> T* src, T* dst, size_t count, size_t indexOffset)
10500199             {
10600200                 <span class="keywordflow">if</span> (indexOffset == 0)
10700201                 {
10800202                     memcpy(dst, src, <span class="keyword">sizeof</span>(T) * count);
10900203                 }
11000204                 <span class="keywordflow">else</span>
11100205                 {
11200206                     <span class="keywordflow">while</span>(count--)
11300207                     {
11400208                         *dst++ = static_cast&lt;T&gt;(*src++ + indexOffset);
11500209                     }
11600210                 }
11700211             }
11800212         <span class="keyword">public</span>:
11900213             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#a426">String</a>&amp; formatString,
12000214                 <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);
12100215             <span class="keyword">virtual</span> ~GeometryBucket();
122<a name="l00216"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa2">00216</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; }
123<a name="l00218"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa3">00218</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; }
124<a name="l00220"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1GeometryBucket.html#Ogre_1_1StaticGeometry_1_1GeometryBucketa4">00220</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; }
12500222             <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>;
12600223             <a class="code" href="classOgre_1_1Technique.html">Technique</a>* getTechnique(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12700224             <span class="keywordtype">void</span> getRenderOperation(<a class="code" href="classOgre_1_1RenderOperation.html">RenderOperation</a>&amp; op);
12800225             <span class="keywordtype">void</span> getWorldTransforms(<a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* xform) <span class="keyword">const</span>;
12900226             <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>;
13000227             <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>;
13100228             <a class="code" href="namespaceOgre.html#a420">Real</a> getSquaredViewDepth(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam) <span class="keyword">const</span>;
13200229             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a59">LightList</a>&amp; getLights(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13300230             <span class="keywordtype">bool</span> getCastsShadows(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13400231             
13500235             <span class="keywordtype">bool</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>* qsm);
13600237             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
13700239             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
13800240         };
139<a name="l00243"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html">00243</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> MaterialBucket
14000244         {
14100245         <span class="keyword">public</span>:
142<a name="l00247"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw0">00247</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>;
14300248         <span class="keyword">protected</span>:
144<a name="l00250"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp0">00250</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">LODBucket</a>* mParent;
145<a name="l00252"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp1">00252</a>             <a class="code" href="namespaceOgre.html#a426">String</a> mMaterialName;
146<a name="l00254"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp2">00254</a>             <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> mMaterial;
147<a name="l00256"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp3">00256</a>             <a class="code" href="classOgre_1_1Technique.html">Technique</a>* mTechnique;
14800257
149<a name="l00259"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp4">00259</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw0">GeometryBucketList</a> mGeometryBucketList;
15000260             <span class="comment">// index to current Geometry Buckets for a given geometry format</span>
151<a name="l00261"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketx0">00261</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>;
152<a name="l00262"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketp5">00262</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketx0">CurrentGeometryMap</a> mCurrentGeometryMap;
15300264             <a class="code" href="namespaceOgre.html#a426">String</a> getGeometryFormatString(<a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* geom);
15400265             
15500266         <span class="keyword">public</span>:
15600267             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#a426">String</a>&amp; materialName);
15700268             <span class="keyword">virtual</span> ~MaterialBucket();
158<a name="l00269"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa2">00269</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; }
159<a name="l00271"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa3">00271</a>             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getMaterialName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMaterialName; }
16000273             <span class="keywordtype">void</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedGeometry.html">QueuedGeometry</a>* qsm);
16100275             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
16200277             <span class="keywordtype">void</span> addRenderables(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue, RenderQueueGroupID group,
16300278                 <a class="code" href="namespaceOgre.html#a420">Real</a> camSquaredDist);
164<a name="l00280"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa7">00280</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; }
165<a name="l00282"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketw1">00282</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>;
16600284             <a class="code" href="classOgre_1_1VectorIterator.html">GeometryIterator</a> getGeometryIterator(<span class="keywordtype">void</span>);
167<a name="l00286"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1MaterialBucket.html#Ogre_1_1StaticGeometry_1_1MaterialBucketa9">00286</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; }
16800288             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
16900289         };
170<a name="l00295"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html">00295</a>         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> LODBucket
17100296         {
17200297         <span class="keyword">public</span>:
173<a name="l00299"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw0">00299</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>;
17400300         <span class="keyword">protected</span>:
175<a name="l00302"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp0">00302</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">Region</a>* mParent;
176<a name="l00304"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp1">00304</a>             <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> mLod;
177<a name="l00306"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp2">00306</a>             <a class="code" href="namespaceOgre.html#a420">Real</a> mSquaredDistance;
178<a name="l00308"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp3">00308</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw0">MaterialBucketMap</a> mMaterialBucketMap;
179<a name="l00310"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketp4">00310</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw4">QueuedGeometryList</a> mQueuedGeometryList;
18000311         <span class="keyword">public</span>:
18100312             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#a420">Real</a> lodDist);
18200313             <span class="keyword">virtual</span> ~LODBucket();
183<a name="l00314"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa2">00314</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; }
184<a name="l00316"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa3">00316</a>             <a class="code" href="namespaceOgre.html#a422">ushort</a> getLod(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mLod; }
185<a name="l00318"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketa4">00318</a>             <a class="code" href="namespaceOgre.html#a420">Real</a> getSquaredDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSquaredDistance; }
18600320             <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#a422">ushort</a> atLod);
18700322             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
18800324             <span class="keywordtype">void</span> addRenderables(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue, RenderQueueGroupID group,
18900325                 <a class="code" href="namespaceOgre.html#a420">Real</a> camSquaredDistance);
190<a name="l00327"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1LODBucket.html#Ogre_1_1StaticGeometry_1_1LODBucketw1">00327</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>;
19100329             <a class="code" href="classOgre_1_1MapIterator.html">MaterialIterator</a> getMaterialIterator(<span class="keywordtype">void</span>);
19200331             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
19300332             
19400333         };
195<a name="l00342"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html">00342</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>
19600343         {
19700344         <span class="keyword">public</span>:
198<a name="l00346"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw0">00346</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>;
19900347         <span class="keyword">protected</span>:
200<a name="l00349"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html">00349</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>
20100350             {
20200351             <span class="keyword">protected</span>:
203<a name="l00352"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep0">00352</a>                 Region* mParent;
20400353                 <span class="comment">// Shared link to position buffer</span>
205<a name="l00354"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep1">00354</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> mPositionBuffer;
20600355                 <span class="comment">// Shared link to w-coord buffer (optional)</span>
207<a name="l00356"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablep2">00356</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> mWBuffer;
20800357
20900358             <span class="keyword">public</span>:
21000359                 RegionShadowRenderable(Region* parent,
21100360                     <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,
21200361                     <span class="keywordtype">bool</span> createSeparateLightCap, <span class="keywordtype">bool</span> isLightCap = <span class="keyword">false</span>);
21300362                 ~RegionShadowRenderable();
21400364                 <span class="keywordtype">void</span> getWorldTransforms(<a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* xform) <span class="keyword">const</span>;
21500366                 <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>;
21600368                 <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>;
217<a name="l00369"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablea5">00369</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> getPositionBuffer(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mPositionBuffer; }
218<a name="l00370"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderable.html#Ogre_1_1StaticGeometry_1_1Region_1_1RegionShadowRenderablea6">00370</a>                 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> getWBuffer(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mWBuffer; }
21900371
22000372             };
221<a name="l00374"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp0">00374</a>             StaticGeometry* mParent;
222<a name="l00376"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp1">00376</a>             <a class="code" href="namespaceOgre.html#a426">String</a> mName;
223<a name="l00378"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp2">00378</a>             <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mSceneMgr;
224<a name="l00380"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp3">00380</a>             <a class="code" href="classOgre_1_1SceneNode.html">SceneNode</a>* mNode;
225<a name="l00382"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp4">00382</a>             <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a> mQueuedSubMeshes;
226<a name="l00384"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp5">00384</a>             <a class="code" href="namespaceOgre.html#a412">uint32</a> mRegionID;
227<a name="l00386"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp6">00386</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mCentre;
228<a name="l00388"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp7">00388</a>             std::vector&lt;Real&gt; mLodSquaredDistances;
229<a name="l00390"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp8">00390</a>             <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mAABB;
230<a name="l00392"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp9">00392</a>             <a class="code" href="namespaceOgre.html#a420">Real</a> mBoundingRadius;
231<a name="l00394"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp10">00394</a>             <a class="code" href="namespaceOgre.html#a422">ushort</a> mCurrentLod;
232<a name="l00396"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp11">00396</a>             <a class="code" href="namespaceOgre.html#a420">Real</a> mCamDistanceSquared;
233<a name="l00398"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp12">00398</a>             <a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw0">LODBucketList</a> mLodBucketList;
234<a name="l00400"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp13">00400</a>             <span class="keyword">mutable</span> <a class="code" href="namespaceOgre.html#a59">LightList</a> mLightList;
235<a name="l00402"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp14">00402</a>             <span class="keyword">mutable</span> <a class="code" href="namespaceOgre.html#a424">ulong</a> mLightListUpdated;
236<a name="l00404"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp15">00404</a>             <span class="keywordtype">bool</span> mBeyondFarDistance;
237<a name="l00406"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp16">00406</a>             <a class="code" href="classOgre_1_1EdgeData.html">EdgeData</a>* mEdgeList;
238<a name="l00408"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp17">00408</a>             ShadowRenderableList mShadowRenderables;
239<a name="l00410"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionp18">00410</a>             <span class="keywordtype">bool</span> mVertexProgramInUse;
24000411
24100412
24200413
24300414         <span class="keyword">public</span>:
24400415             Region(StaticGeometry* parent, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr,
24500416                 <a class="code" href="namespaceOgre.html#a412">uint32</a> regionID, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; centre);
24600417             <span class="keyword">virtual</span> ~Region();
24700418             <span class="comment">// more fields can be added in subclasses</span>
248<a name="l00419"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona2">00419</a>             StaticGeometry* getParent(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mParent;}
24900421             <span class="keywordtype">void</span> assign(<a class="code" href="structOgre_1_1StaticGeometry_1_1QueuedSubMesh.html">QueuedSubMesh</a>* qmesh);
25000423             <span class="keywordtype">void</span> build(<span class="keywordtype">bool</span> stencilShadows);
251<a name="l00425"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona5">00425</a>             <a class="code" href="namespaceOgre.html#a412">uint32</a> getID(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRegionID; }
252<a name="l00427"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regiona6">00427</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; }
25300428             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getName(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25400429             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getMovableType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25500430             <span class="keywordtype">void</span> _notifyCurrentCamera(<a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam);
25600431             <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>;
25700432             <a class="code" href="namespaceOgre.html#a420">Real</a> getBoundingRadius(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
25800433             <span class="keywordtype">void</span> _updateRenderQueue(<a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue);
25900434             <span class="keywordtype">bool</span> isVisible(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
26000435
261<a name="l00436"></a><a class="code" href="classOgre_1_1StaticGeometry_1_1Region.html#Ogre_1_1StaticGeometry_1_1Regionw1">00436</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>;
26200438             <a class="code" href="classOgre_1_1VectorIterator.html">LODIterator</a> getLODIterator(<span class="keywordtype">void</span>);
26300440             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a59">LightList</a>&amp; getLights(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
26400442             ShadowRenderableListIterator getShadowVolumeRenderableIterator(
26500443                 ShadowTechnique shadowTechnique, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Light.html">Light</a>* light,
26600444                 <a class="code" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a>* indexBuffer,
26700445                 <span class="keywordtype">bool</span> extrudeVertices, <a class="code" href="namespaceOgre.html#a420">Real</a> extrusionDistance, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags = 0 );
26800447             <a class="code" href="classOgre_1_1EdgeData.html">EdgeData</a>* getEdgeList(<span class="keywordtype">void</span>);
26900448
27000449
27100451             <span class="keywordtype">void</span> dump(std::ofstream&amp; of) <span class="keyword">const</span>;
27200452             
27300453         };
274<a name="l00461"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw5">00461</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>;
27500462     <span class="keyword">protected</span>:
27600463         <span class="comment">// General state &amp; settings</span>
277<a name="l00464"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp0">00464</a>         <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mOwner;
278<a name="l00465"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp1">00465</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mName;
279<a name="l00466"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp2">00466</a>         <span class="keywordtype">bool</span> mBuilt;
280<a name="l00467"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp3">00467</a>         <a class="code" href="namespaceOgre.html#a420">Real</a> mUpperDistance;
281<a name="l00468"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp4">00468</a>         <a class="code" href="namespaceOgre.html#a420">Real</a> mSquaredUpperDistance;
282<a name="l00469"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp5">00469</a>         <span class="keywordtype">bool</span> mCastShadows;
283<a name="l00470"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp6">00470</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mRegionDimensions;
284<a name="l00471"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp7">00471</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mHalfRegionDimensions;
285<a name="l00472"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp8">00472</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mOrigin;
286<a name="l00473"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp9">00473</a>         <span class="keywordtype">bool</span> mVisible;
287<a name="l00475"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp10">00475</a>         <a class="code" href="namespaceOgre.html#a669">RenderQueueGroupID</a> mRenderQueueID;
288<a name="l00477"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp11">00477</a>         <span class="keywordtype">bool</span> mRenderQueueIDSet;
28900478
290<a name="l00479"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp12">00479</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw3">QueuedSubMeshList</a> mQueuedSubMeshes;
29100480
292<a name="l00483"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp13">00483</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw0">OptimisedSubMeshGeometryList</a> mOptimisedSubMeshGeometryList;
29300484
294<a name="l00489"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp14">00489</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw2">SubMeshGeometryLookup</a> mSubMeshGeometryLookup;
29500490             
296<a name="l00492"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryp15">00492</a>         <a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw5">RegionMap</a> mRegionMap;
29700493
29800497         <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);
29900499         <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);
30000501         <span class="keyword">virtual</span> Region* getRegion(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> y, <a class="code" href="namespaceOgre.html#a422">ushort</a> z, <span class="keywordtype">bool</span> autoCreate);
30100503         <span class="keyword">virtual</span> Region* getRegion(<a class="code" href="namespaceOgre.html#a412">uint32</a> index);
30200506         <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,
30300507             <a class="code" href="namespaceOgre.html#a422">ushort</a>&amp; x, <a class="code" href="namespaceOgre.html#a422">ushort</a>&amp; y, <a class="code" href="namespaceOgre.html#a422">ushort</a>&amp; z);
30400510         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a412">uint32</a> packIndex(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> y, <a class="code" href="namespaceOgre.html#a422">ushort</a> z);
30500513         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getVolumeIntersection(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; box, 
30600514             <a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> y, <a class="code" href="namespaceOgre.html#a422">ushort</a> z);
30700517         <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> getRegionBounds(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> y, <a class="code" href="namespaceOgre.html#a422">ushort</a> z);
30800520         <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> getRegionCentre(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> y, <a class="code" href="namespaceOgre.html#a422">ushort</a> z);
30900522         <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,
31000523             <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,
31100524             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; scale);
31200526         <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);
31300528         <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>,
31400529             <a class="code" href="structOgre_1_1StaticGeometry_1_1SubMeshLodGeometryLink.html">SubMeshLodGeometryLink</a>* targetGeomLink);
31500530
316<a name="l00531"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryx0">00531</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>;
31700536         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
318<a name="l00537"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryb12">00537</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)
31900538         {
32000539             remap.clear();
32100540             <span class="keywordflow">for</span> (size_t i = 0; i &lt; numIndexes; ++i)
32200541             {
32300542                 <span class="comment">// use insert since duplicates are silently discarded</span>
32400543                 remap.insert(IndexRemap::value_type(*pBuffer++, remap.size()));
32500544                 <span class="comment">// this will have mapped oldindex -&gt; new index IF oldindex</span>
32600545                 <span class="comment">// wasn't already there</span>
32700546             }
32800547         }
32900549         <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
330<a name="l00550"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryb13">00550</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,
33100551                 size_t numIndexes)
33200552         {
33300553             <span class="keywordflow">for</span> (size_t i = 0; i &lt; numIndexes; ++i)
33400554             {
33500555                 <span class="comment">// look up original and map to target</span>
33600556                 IndexRemap::const_iterator ix = remap.find(*src++);
33700557                 assert(ix != remap.end());
33800558                 *dst++ = static_cast&lt;T&gt;(ix-&gt;second);
33900559             }
34000560         }
34100561         
34200562     <span class="keyword">public</span>:
34300564         StaticGeometry(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* owner, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name);
34400566         <span class="keyword">virtual</span> ~StaticGeometry();
34500567
346<a name="l00569"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya2">00569</a>         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getName(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mName; }
34700588         <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,
34800589             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Quaternion.html">Quaternion</a>&amp; orientation = Quaternion::IDENTITY,
34900590             <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; scale = Vector3::UNIT_SCALE);
35000591
35100610         <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);
35200611
35300622         <span class="keyword">virtual</span> <span class="keywordtype">void</span> build(<span class="keywordtype">void</span>);
35400623
35500629         <span class="keyword">virtual</span> <span class="keywordtype">void</span> destroy(<span class="keywordtype">void</span>);
35600630
35700634         <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset(<span class="keywordtype">void</span>);
35800635
359<a name="l00645"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya8">00645</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRenderingDistance(<a class="code" href="namespaceOgre.html#a420">Real</a> dist) {
36000646             mUpperDistance = dist;
36100647             mSquaredUpperDistance = mUpperDistance * mUpperDistance;
36200648         }
36300649
364<a name="l00651"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya9">00651</a>         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getRenderingDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mUpperDistance; }
36500652
366<a name="l00654"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya10">00654</a>         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a420">Real</a> getSquaredRenderingDistance(<span class="keywordtype">void</span>)<span class="keyword"> const </span>
36700655 <span class="keyword">        </span>{ <span class="keywordflow">return</span> mSquaredUpperDistance; }
36800656
36900658         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVisible(<span class="keywordtype">bool</span> visible);
37000659
371<a name="l00661"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya12">00661</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; }
37200662
37300680         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCastShadows(<span class="keywordtype">bool</span> castShadows);
374<a name="l00682"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya14">00682</a>         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getCastShadows(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mCastShadows; }
37500683
376<a name="l00694"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya15">00694</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) {
37700695             mRegionDimensions = size;
37800696             mHalfRegionDimensions = size * 0.5;
37900697         }
380<a name="l00699"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya16">00699</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; }
381<a name="l00711"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya17">00711</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; }
382<a name="l00713"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometrya18">00713</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; }
38300714
38400726         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRenderQueueGroup(RenderQueueGroupID queueID);
38500727
38600729         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a669">RenderQueueGroupID</a> getRenderQueueGroup(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
38700730         
388<a name="l00732"></a><a class="code" href="classOgre_1_1StaticGeometry.html#Ogre_1_1StaticGeometryw6">00732</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>;
38900734         <a class="code" href="classOgre_1_1MapIterator.html">RegionIterator</a> getRegionIterator(<span class="keywordtype">void</span>);
39000735
39100739         <span class="keyword">virtual</span> <span class="keywordtype">void</span> dump(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; filename) <span class="keyword">const</span>;
39200740
39300741
39400742     };
39500743
39600744 }
39700745
39800746 <span class="preprocessor">#endif</span>
39900747 <span class="preprocessor"></span>
400</pre></div><hr>
401<p>
402Copyright &copy; 2000-2005 by The OGRE Team<br />
403<!--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/>
404This 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/>
405                <!--/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#">
406                <Work rdf:about="">
407                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
408        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
409                </Work>
410                <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> -->
411
412Last modified Sun Feb 12 12:59:53 2006
413</p>
414</body>
415</html>
Note: See TracBrowser for help on using the repository browser.