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

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

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>OgreTerrainRenderable.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>OgreTerrainRenderable.h</h1><a href="OgreTerrainRenderable_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="comment">/***************************************************************************</span>
3500026 <span class="comment">terrainrenderable.h  -  description</span>
3600027 <span class="comment">-------------------</span>
3700028 <span class="comment">begin                : Sat Oct 5 2002</span>
3800029 <span class="comment">copyright            : (C) 2002 by Jon Anderson</span>
3900030 <span class="comment">email                : janders@users.sf.net</span>
4000031 <span class="comment"></span>
4100032 <span class="comment">Enhancements 2003 - 2004 (C) The OGRE Team</span>
4200033 <span class="comment"></span>
4300034 <span class="comment">***************************************************************************/</span>
4400035
4500036 <span class="preprocessor">#ifndef TERRAINRENDERABLE_H</span>
4600037 <span class="preprocessor"></span><span class="preprocessor">#define TERRAINRENDERABLE_H</span>
4700038 <span class="preprocessor"></span>
4800039 <span class="preprocessor">#include "<a class="code" href="OgreTerrainPrerequisites_8h.html">OgreTerrainPrerequisites.h</a>"</span>
4900040 <span class="preprocessor">#include &lt;<a class="code" href="OgreRenderable_8h.html">OgreRenderable.h</a>&gt;</span>
5000041 <span class="preprocessor">#include &lt;<a class="code" href="OgreMovableObject_8h.html">OgreMovableObject.h</a>&gt;</span>
5100042 <span class="preprocessor">#include &lt;<a class="code" href="OgreAxisAlignedBox_8h.html">OgreAxisAlignedBox.h</a>&gt;</span>
5200043 <span class="preprocessor">#include &lt;<a class="code" href="OgreString_8h.html">OgreString.h</a>&gt;</span>
5300044 <span class="preprocessor">#include &lt;<a class="code" href="OgreHardwareBufferManager_8h.html">OgreHardwareBufferManager.h</a>&gt;</span>
5400045
5500046 <span class="preprocessor">#include &lt;vector&gt;</span>
5600047
57<a name="l00048"></a><a class="code" href="OgreTerrainRenderable_8h.html#a0">00048</a> <span class="preprocessor">#define MORPH_CUSTOM_PARAM_ID 77</span>
5800049 <span class="preprocessor"></span>
5900050 <span class="keyword">namespace </span>Ogre
6000051 {
6100052
62<a name="l00053"></a><a class="code" href="namespaceOgre.html#a607">00053</a>     <span class="keyword">typedef</span> std::map &lt;unsigned int, IndexData* &gt; IndexMap;
63<a name="l00054"></a><a class="code" href="namespaceOgre.html#a608">00054</a>     <span class="keyword">typedef</span> std::vector &lt; IndexData* &gt; <a class="code" href="namespaceOgre.html#a608">IndexArray</a>;
64<a name="l00055"></a><a class="code" href="namespaceOgre.html#a609">00055</a>     <span class="keyword">typedef</span> std::vector &lt; IndexMap* &gt; <a class="code" href="namespaceOgre.html#a609">LevelArray</a>;
6500056
66<a name="l00061"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html">00061</a>     <span class="keyword">class </span><a class="code" href="classOgre_1_1TerrainBufferCache.html">TerrainBufferCache</a>
6700062     {
6800063     <span class="keyword">public</span>:
69<a name="l00064"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea0">00064</a>         <span class="keywordtype">void</span> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea0">shutdown</a>(<span class="keywordtype">void</span>)
7000065         {
7100066             <span class="keywordflow">for</span>( size_t i=0; i&lt;<a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCacheo0">mCache</a>.size(); i++ )
7200067             {
7300068                 <span class="keyword">delete</span> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCacheo0">mCache</a>[i];
7400069             }
7500070             <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCacheo0">mCache</a>.clear();
7600071         }
77<a name="l00072"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea1">00072</a>         <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea1">~TerrainBufferCache</a>()
7800073         {
7900074             <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea0">shutdown</a>();
8000075         }
8100076
82<a name="l00077"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCacheo0">00077</a>         <a class="code" href="namespaceOgre.html#a608">IndexArray</a> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCacheo0">mCache</a>;
8300078     };
8400079
85<a name="l00080"></a><a class="code" href="namespaceOgre.html#a626">00080</a>     <span class="keyword">inline</span> <a class="code" href="namespaceOgre.html#a465">Real</a> <a class="code" href="namespaceOgre.html#a626">_max</a>( <a class="code" href="namespaceOgre.html#a465">Real</a> x, <a class="code" href="namespaceOgre.html#a465">Real</a> y )
8600081     {
8700082         <span class="keywordflow">return</span> ( x &gt; y ) ? x : y;
8800083     }
8900084
90<a name="l00088"></a><a class="code" href="classOgre_1_1TerrainOptions.html">00088</a>     <span class="keyword">class </span><a class="code" href="classOgre_1_1TerrainOptions.html">TerrainOptions</a>
9100089     {
9200090     <span class="keyword">public</span>:
93<a name="l00091"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa0">00091</a>         <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa0">TerrainOptions</a>()
9400092         {
9500093             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso0">pageSize</a> = 0;
9600094             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso1">tileSize</a> = 0;
9700095             tilesPerPage = 0;
9800096             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso4">maxGeoMipMapLevel</a> = 0;
9900097             scale = Vector3::UNIT_SCALE;
10000098             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso6">maxPixelError</a> = 4;
10100099             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso8">detailTile</a> = 1;
10200100             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso11">lit</a> = <span class="keyword">false</span>;
10300101             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso12">coloured</a> = <span class="keyword">false</span>;
10400102             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso9">lodMorph</a> = <span class="keyword">false</span>;
10500103             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso10">lodMorphStart</a> = 0.5;
10600104             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso7">useTriStrips</a> = <span class="keyword">false</span>;
10700105             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso3">primaryCamera</a> = 0;
10800106             <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso13">terrainMaterial</a>.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra14">setNull</a>();
10900107         };
110<a name="l00109"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso0">00109</a>         size_t <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso0">pageSize</a>;
111<a name="l00111"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso1">00111</a>         size_t <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso1">tileSize</a>;
112<a name="l00113"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso2">00113</a>         size_t tilesPerPage;
113<a name="l00115"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso3">00115</a>         <span class="keyword">const</span> <a class="code" href="classOgre_1_1Camera.html">Camera</a>* <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso3">primaryCamera</a>;
114<a name="l00117"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso4">00117</a>         size_t <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso4">maxGeoMipMapLevel</a>;
115<a name="l00120"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso5">00120</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> scale;
116<a name="l00122"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso6">00122</a>         size_t <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso6">maxPixelError</a>;
117<a name="l00124"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso7">00124</a>         <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso7">useTriStrips</a>;
118<a name="l00126"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso8">00126</a>         size_t <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso8">detailTile</a>;
119<a name="l00128"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso9">00128</a>         <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso9">lodMorph</a>;
120<a name="l00130"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso10">00130</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso10">lodMorphStart</a>;
121<a name="l00132"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso11">00132</a>         <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso11">lit</a>;
122<a name="l00134"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso12">00134</a>         <span class="keywordtype">bool</span> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso12">coloured</a>;
123<a name="l00136"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso13">00136</a>         <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionso13">terrainMaterial</a>;
12400137
12500138     };
12600139
127<a name="l00140"></a><a class="code" href="OgreTerrainRenderable_8h.html#a1">00140</a> <span class="preprocessor">#define STITCH_NORTH_SHIFT 0</span>
128<a name="l00141"></a><a class="code" href="OgreTerrainRenderable_8h.html#a2">00141</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_SOUTH_SHIFT 8</span>
129<a name="l00142"></a><a class="code" href="OgreTerrainRenderable_8h.html#a3">00142</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_WEST_SHIFT  16</span>
130<a name="l00143"></a><a class="code" href="OgreTerrainRenderable_8h.html#a4">00143</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_EAST_SHIFT  24</span>
13100144 <span class="preprocessor"></span>
132<a name="l00145"></a><a class="code" href="OgreTerrainRenderable_8h.html#a5">00145</a> <span class="preprocessor">#define STITCH_NORTH  128 &lt;&lt; STITCH_NORTH_SHIFT</span>
133<a name="l00146"></a><a class="code" href="OgreTerrainRenderable_8h.html#a6">00146</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_SOUTH  128 &lt;&lt; STITCH_SOUTH_SHIFT</span>
134<a name="l00147"></a><a class="code" href="OgreTerrainRenderable_8h.html#a7">00147</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_WEST   128 &lt;&lt; STITCH_WEST_SHIFT</span>
135<a name="l00148"></a><a class="code" href="OgreTerrainRenderable_8h.html#a8">00148</a> <span class="preprocessor"></span><span class="preprocessor">#define STITCH_EAST   128 &lt;&lt; STITCH_EAST_SHIFT</span>
13600149 <span class="preprocessor"></span>
137<a name="l00158"></a><a class="code" href="classOgre_1_1TerrainRenderable.html">00158</a>     <span class="keyword">class </span><a class="code" href="OgreTerrainPrerequisites_8h.html#a0">_OgreTerrainExport</a> TerrainRenderable : <span class="keyword">public</span> <a class="code" href="classOgre_1_1Renderable.html">Renderable</a>, <span class="keyword">public</span> <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>
13800159     {
13900160     <span class="keyword">public</span>:
14000161
14100162         TerrainRenderable(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <a class="code" href="classOgre_1_1TerrainSceneManager.html">TerrainSceneManager</a>* tsm);
14200163         ~TerrainRenderable();
14300164
14400165         <span class="keywordtype">void</span> deleteGeometry();
14500166
146<a name="l00167"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablew5">00167</a>         <span class="keyword">enum</span> Neighbor
14700168         {
14800169             NORTH = 0,
14900170             SOUTH = 1,
15000171             EAST = 2,
15100172             WEST = 3,
15200173             HERE = 4
15300174         };
15400175
15500182         <span class="keywordtype">void</span> initialise(<span class="keywordtype">int</span> startx, <span class="keywordtype">int</span> startz, <a class="code" href="namespaceOgre.html#a465">Real</a>* pageHeightData);
15600183
15700184         <span class="comment">//movable object methods</span>
15800185
159<a name="l00187"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea4">00187</a>         <span class="keyword">virtual</span> <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>
16000188 <span class="keyword">        </span>{
16100189             <span class="keywordflow">return</span> mType;
16200190         };
16300191
164<a name="l00193"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea5">00193</a>         <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>
16500194 <span class="keyword">        </span>{
16600195             <span class="keywordflow">return</span> mBounds;
16700196         };
16800197
16900199         <span class="keyword">virtual</span> <span class="keywordtype">void</span> _notifyCurrentCamera( <a class="code" href="classOgre_1_1Camera.html">Camera</a>* cam );
17000200
17100201         <span class="keyword">virtual</span> <span class="keywordtype">void</span> _updateRenderQueue( <a class="code" href="classOgre_1_1RenderQueue.html">RenderQueue</a>* queue );
17200202
17300209         <span class="keyword">virtual</span> <span class="keywordtype">void</span> getRenderOperation( <a class="code" href="classOgre_1_1RenderOperation.html">RenderOperation</a>&amp; rend );
17400210
175<a name="l00211"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea9">00211</a>         <span class="keyword">virtual</span> <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>
17600212 <span class="keyword">        </span>{
17700213             <span class="keywordflow">return</span> mMaterial;
17800214         };
17900215
18000216         <span class="keyword">virtual</span> <span class="keywordtype">void</span> getWorldTransforms( <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* xform ) <span class="keyword">const</span>;
18100217
18200218         <span class="keyword">virtual</span> <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>;
18300219         <span class="keyword">virtual</span> <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>;
18400220
185<a name="l00222"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea13">00222</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> getRenderLevel()<span class="keyword"> const</span>
18600223 <span class="keyword">        </span>{
18700224             <span class="keywordflow">return</span> mRenderLevel;
18800225         };
18900226
190<a name="l00228"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea14">00228</a>         <span class="keyword">inline</span> <span class="keywordtype">void</span> setForcedRenderLevel( <span class="keywordtype">int</span> i )
19100229         {
19200230             mForcedRenderLevel = i;
19300231         }
19400232
19500234         <span class="keywordtype">void</span> _getNormalAt( <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> * result );
19600235
19700237         <span class="keywordtype">float</span> getHeightAt( <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y );
19800238
19900241         <span class="keywordtype">bool</span> intersectSegment( <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> &amp; start, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> &amp; end, <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> * result );
20000242
201<a name="l00246"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea18">00246</a>         <span class="keywordtype">void</span> _setNeighbor( Neighbor n, TerrainRenderable *t )
20200247         {
20300248             mNeighbors[ n ] = t;
20400249         };
20500250
206<a name="l00253"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea19">00253</a>         TerrainRenderable * _getNeighbor( Neighbor n )
20700254         {
20800255             <span class="keywordflow">return</span> mNeighbors[ n ];
20900256         }
21000257
21100258
212<a name="l00259"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea20">00259</a>         <span class="keywordtype">void</span> setMaterial(<span class="keyword">const</span> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a>&amp; m )
21300260         {
21400261             mMaterial = m;
21500262         };
21600263
21700265         <span class="keywordtype">void</span> _calculateNormals();
21800266
21900267
22000268
22100269
22200272         <span class="keywordtype">void</span> _generateVertexLighting( <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> &amp;sun, <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> ambient );
22300273
22400274
22500276         <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>;
22600277
227<a name="l00279"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea24">00279</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> getBoundingRadius(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mBoundingRadius; }
22800280
22900282         <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>;
23000283
23100285         <span class="keywordtype">void</span> _updateCustomGpuParameter(
23200286             <span class="keyword">const</span> <a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html">GpuProgramParameters::AutoConstantEntry</a>&amp; constantEntry,
23300287             <a class="code" href="classOgre_1_1GpuProgramParameters.html">GpuProgramParameters</a>* params) <span class="keyword">const</span>;
23400289         <a class="code" href="namespaceOgre.html#a455">uint32</a> getTypeFlags(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
23500290     <span class="keyword">protected</span>:
236<a name="l00292"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep0">00292</a>         <a class="code" href="classOgre_1_1TerrainSceneManager.html">TerrainSceneManager</a>* mSceneManager;
237<a name="l00294"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep1">00294</a>         <span class="keyword">const</span> <a class="code" href="classOgre_1_1TerrainOptions.html">TerrainOptions</a>* mOptions;
23800295
239<a name="l00297"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb0">00297</a>         <span class="keyword">inline</span> size_t _index( <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> z )<span class="keyword"> const</span>
24000298 <span class="keyword">        </span>{
24100299             <span class="keywordflow">return</span> ( x + z * mOptions-&gt;tileSize );
24200300         };
24300301
244<a name="l00303"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb1">00303</a>         <span class="keyword">inline</span> <span class="keywordtype">float</span> _vertex( <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> n )
24500304         {
24600305             <span class="keywordflow">return</span> mPositionBuffer[x * 3 + z * mOptions-&gt;tileSize * 3 + n];
24700306         };
24800307
24900308
250<a name="l00309"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb2">00309</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> _numNeighbors()<span class="keyword"> const</span>
25100310 <span class="keyword">        </span>{
25200311             <span class="keywordtype">int</span> n = 0;
25300312
25400313             <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; 4; i++ )
25500314             {
25600315                 <span class="keywordflow">if</span> ( mNeighbors[ i ] != 0 )
25700316                     n++;
25800317             }
25900318
26000319             <span class="keywordflow">return</span> n;
26100320         }
26200321
263<a name="l00322"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb3">00322</a>         <span class="keyword">inline</span> <span class="keywordtype">bool</span> _hasNeighborRenderLevel( <span class="keywordtype">int</span> i )<span class="keyword"> const</span>
26400323 <span class="keyword">        </span>{
26500324             <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> j = 0; j &lt; 4; j++ )
26600325             {
26700326                 <span class="keywordflow">if</span> ( mNeighbors[ j ] != 0 &amp;&amp; mNeighbors[ j ] -&gt;mRenderLevel == i )
26800327                     <span class="keywordflow">return</span> <span class="keyword">true</span>;
26900328             }
27000329
27100330             <span class="keywordflow">return</span> <span class="keyword">false</span>;
27200331
27300332         }
27400333
27500334         <span class="keywordtype">void</span> _adjustRenderLevel( <span class="keywordtype">int</span> i );
27600335
27700336         <span class="keywordtype">bool</span> _checkSize( <span class="keywordtype">int</span> n );
27800337
27900338         <span class="keywordtype">void</span> _calculateMinLevelDist2( <a class="code" href="namespaceOgre.html#a465">Real</a> C );
28000339
28100340         <a class="code" href="namespaceOgre.html#a465">Real</a> _calculateCFactor();
28200341
283<a name="l00342"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep2">00342</a>         <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* mTerrain;
28400343
285<a name="l00345"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep3">00345</a>         <span class="keywordtype">int</span> mRenderLevel;
286<a name="l00347"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep4">00347</a>         <span class="keywordtype">int</span> mLastNextLevel;
287<a name="l00349"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep5">00349</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> mLODMorphFactor;
288<a name="l00351"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep6">00351</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> *mMinLevelDistSqr;
289<a name="l00353"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep7">00353</a>         TerrainRenderable *mNeighbors [ 4 ];
290<a name="l00355"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep8">00355</a>         <span class="keyword">mutable</span> <span class="keywordtype">bool</span> mLightListDirty;
291<a name="l00357"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep9">00357</a>         <span class="keyword">mutable</span> <a class="code" href="namespaceOgre.html#a73">LightList</a> mLightList;
292<a name="l00359"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep10">00359</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> mBoundingRadius;
293<a name="l00361"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep11">00361</a>         <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mBounds;
294<a name="l00363"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep12">00363</a>         <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> mCenter;
295<a name="l00365"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablet0">00365</a>         <span class="keyword">static</span> <a class="code" href="namespaceOgre.html#a471">String</a> mType;
296<a name="l00367"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep13">00367</a>         <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> mMaterial;   
297<a name="l00369"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep14">00369</a>         <span class="keywordtype">bool</span> mInit;
298<a name="l00371"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep15">00371</a>         <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> mMainBuffer;
299<a name="l00373"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep16">00373</a>         <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a>* mDeltaBuffers;
300<a name="l00375"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep17">00375</a>         <span class="keywordtype">float</span>* mPositionBuffer;
301<a name="l00377"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep18">00377</a>         <span class="keywordtype">int</span> mForcedRenderLevel;
302<a name="l00380"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep19">00380</a>         <span class="keywordtype">int</span> mNextLevelDown[10];
30300382         <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* getIndexData(<span class="keywordtype">void</span>);
30400384         <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* generateTriStripIndexes(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stitchFlags);
30500386         <a class="code" href="classOgre_1_1IndexData.html">IndexData</a>* generateTriListIndexes(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> stitchFlags);
30600401         <span class="keywordtype">int</span> stitchEdge(Neighbor neighbor, <span class="keywordtype">int</span> hiLOD, <span class="keywordtype">int</span> loLOD,
30700402             <span class="keywordtype">bool</span> omitFirstTri, <span class="keywordtype">bool</span> omitLastTri, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>** ppIdx);
30800403
30900405         <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> createDeltaBuffer(<span class="keywordtype">void</span>);
31000406
31100407     };
31200408
31300409 }
31400410
31500411 <span class="preprocessor">#endif</span>
316</pre></div><hr>
317<p>
318Copyright &copy; 2000-2005 by The OGRE Team<br />
319<!--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/>
320This 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/>
321                <!--/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#">
322                <Work rdf:about="">
323                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
324        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
325                </Work>
326                <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> -->
327
328Last modified Sun Mar 12 14:37:51 2006
329</p>
330</body>
331</html>
Note: See TracBrowser for help on using the repository browser.