<html> <head> <title>OgreTerrainRenderable.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link type="text/css" rel="stylesheet" href="style.css"> </head> <body> <!-- Generated by Doxygen 1.2.16 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>OgreTerrainRenderable.h</h1><a href="OgreTerrainRenderable_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/***************************************************************************</font> 00002 <font class="comment"> terrainrenderable.h - description</font> 00003 <font class="comment"> -------------------</font> 00004 <font class="comment"> begin : Sat Oct 5 2002</font> 00005 <font class="comment"> copyright : (C) 2002 by Jon Anderson</font> 00006 <font class="comment"> email : janders@users.sf.net</font> 00007 <font class="comment">***************************************************************************/</font> 00008 00009 <font class="comment">/***************************************************************************</font> 00010 <font class="comment"> * *</font> 00011 <font class="comment"> * This program is free software; you can redistribute it and/or modify *</font> 00012 <font class="comment"> * it under the terms of the GNU Lesser General Public License as published by *</font> 00013 <font class="comment"> * the Free Software Foundation; either version 2 of the License, or *</font> 00014 <font class="comment"> * (at your option) any later version. *</font> 00015 <font class="comment"> * *</font> 00016 <font class="comment"> ***************************************************************************/</font> 00017 00018 <font class="preprocessor">#ifndef TERRAINRENDERABLE_H</font> 00019 <font class="preprocessor"></font><font class="preprocessor">#define TERRAINRENDERABLE_H</font> 00020 <font class="preprocessor"></font> 00021 <font class="preprocessor">#include <<a class="code" href="OgreRenderable_8h.html">OgreRenderable.h</a>></font> 00022 <font class="preprocessor">#include <<a class="code" href="OgreMovableObject_8h.html">OgreMovableObject.h</a>></font> 00023 <font class="preprocessor">#include <<a class="code" href="OgreAxisAlignedBox_8h.html">OgreAxisAlignedBox.h</a>></font> 00024 <font class="preprocessor">#include <<a class="code" href="OgreString_8h.html">OgreString.h</a>></font> 00025 <font class="preprocessor">#include <<a class="code" href="OgreHardwareBufferManager_8h.html">OgreHardwareBufferManager.h</a>></font> 00026 00027 <font class="preprocessor">#include <vector></font> 00028 00029 <font class="keyword">namespace </font>Ogre 00030 { 00031 <a name="l00032"></a><a class="code" href="namespaceOgre.html#a472">00032</a> <font class="keyword">typedef</font> std::vector < IndexData* > <a class="code" href="namespaceOgre.html#a472">IndexArray</a>; <a name="l00033"></a><a class="code" href="namespaceOgre.html#a473">00033</a> <font class="keyword">typedef</font> std::vector < IndexArray > <a class="code" href="namespaceOgre.html#a473">LevelArray</a>; 00034 <a name="l00039"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html">00039</a> <font class="keyword">class </font><a class="code" href="classOgre_1_1TerrainBufferCache.html">TerrainBufferCache</a> 00040 { 00041 <font class="keyword">public</font>: <a name="l00042"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea0">00042</a> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachea0">~TerrainBufferCache</a>() 00043 { 00044 <font class="keywordflow">for</font>( size_t i=0; i<<a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachem0">mCache</a>.size(); i++ ) 00045 { 00046 <font class="keyword">delete</font> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachem0">mCache</a>[i]; 00047 } 00048 } 00049 <a name="l00050"></a><a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachem0">00050</a> <a class="code" href="namespaceOgre.html#a472">IndexArray</a> <a class="code" href="classOgre_1_1TerrainBufferCache.html#Ogre_1_1TerrainBufferCachem0">mCache</a>; 00051 }; 00052 <a name="l00053"></a><a class="code" href="namespaceOgre.html#a580">00053</a> <font class="keyword">inline</font> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="namespaceOgre.html#a580">_max</a>( <a class="code" href="namespaceOgre.html#a349">Real</a> x, <a class="code" href="namespaceOgre.html#a349">Real</a> y ) 00054 { 00055 <font class="keywordflow">return</font> ( x > y ) ? x : y; 00056 } 00057 <a name="l00062"></a><a class="code" href="classOgre_1_1TerrainOptions.html">00062</a> <font class="keyword">class </font><a class="code" href="classOgre_1_1TerrainOptions.html">TerrainOptions</a> 00063 { 00064 <font class="keyword">public</font>: <a name="l00065"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa0">00065</a> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa0">TerrainOptions</a>() 00066 { 00067 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm0">data</a> = 0; 00068 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm1">size</a> = 0; 00069 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm2">world_size</a> = 0; 00070 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm3">startx</a> = 0; 00071 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm4">startz</a> = 0; 00072 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm5">max_mipmap</a> = 0; 00073 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm6">scalex</a> = 1; 00074 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm7">scaley</a> = 1; 00075 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm8">scalez</a> = 1; 00076 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm9">max_pixel_error</a> = 4; 00077 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm11">vert_res</a> = 768; 00078 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm13">top_coord</a> = 1; 00079 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm10">near_plane</a> = 1; 00080 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm12">detail_tile</a> = 1; 00081 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm14">lit</a> = <font class="keyword">false</font>; 00082 <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm15">colored</a> = <font class="keyword">false</font>; 00083 }; 00084 00085 <a name="l00086"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa1">00086</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsa1">_worldheight</a>( <font class="keywordtype">int</font> x, <font class="keywordtype">int</font> z ) 00087 { 00088 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm0">data</a>[ ( ( z * <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm2">world_size</a> ) + x ) ]; 00089 }; 00090 <a name="l00091"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm0">00091</a> <font class="keyword">const</font> <a class="code" href="namespaceOgre.html#a350">uchar</a> * <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm0">data</a>; <font class="comment">//pointer to the world 2D data.</font> <a name="l00092"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm1">00092</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm1">size</a>; <font class="comment">//size of this square block</font> <a name="l00093"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm2">00093</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm2">world_size</a>; <font class="comment">//size of the world.</font> <a name="l00094"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm3">00094</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm3">startx</a>; <a name="l00095"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm4">00095</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm4">startz</a>; <font class="comment">//starting coords of this block.</font> <a name="l00096"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm5">00096</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm5">max_mipmap</a>; <font class="comment">//max mip_map level</font> <a name="l00097"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm8">00097</a> <font class="keywordtype">float</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm6">scalex</a>, <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm7">scaley</a>, <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm8">scalez</a>; 00098 <a name="l00099"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm9">00099</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm9">max_pixel_error</a>; <a name="l00100"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm10">00100</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm10">near_plane</a>; <a name="l00101"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm11">00101</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm11">vert_res</a>; <a name="l00102"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm12">00102</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm12">detail_tile</a>; <a name="l00103"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm13">00103</a> <font class="keywordtype">float</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm13">top_coord</a>; 00104 <a name="l00105"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm14">00105</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm14">lit</a>; <a name="l00106"></a><a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm15">00106</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainOptions.html#Ogre_1_1TerrainOptionsm15">colored</a>; 00107 00108 }; 00109 <a name="l00110"></a><a class="code" href="OgreTerrainRenderable_8h.html#a0">00110</a> <font class="preprocessor">#define TILE_NORTH 0x00000001</font> <a name="l00111"></a><a class="code" href="OgreTerrainRenderable_8h.html#a1">00111</a> <font class="preprocessor"></font><font class="preprocessor">#define TILE_SOUTH 0x00000002</font> <a name="l00112"></a><a class="code" href="OgreTerrainRenderable_8h.html#a2">00112</a> <font class="preprocessor"></font><font class="preprocessor">#define TILE_WEST 0x00000004</font> <a name="l00113"></a><a class="code" href="OgreTerrainRenderable_8h.html#a3">00113</a> <font class="preprocessor"></font><font class="preprocessor">#define TILE_EAST 0x00000008</font> 00114 <font class="preprocessor"></font> <a name="l00123"></a><a class="code" href="classOgre_1_1TerrainRenderable.html">00123</a> <font class="keyword">class </font><a class="code" href="classOgre_1_1TerrainRenderable.html">TerrainRenderable</a> : <font class="keyword">public</font> <a class="code" href="classOgre_1_1Renderable.html">Renderable</a>, <font class="keyword">public</font> <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a> 00124 { 00125 <font class="keyword">public</font>: 00126 00127 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea0">TerrainRenderable</a>(); 00128 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea1">~TerrainRenderable</a>(); 00129 00130 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea2">deleteGeometry</a>(); 00131 <a name="l00132"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5">00132</a> <font class="keyword">enum</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5">Neighbor</a> 00133 { 00134 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5Ogre_1_1TerrainRenderables0">NORTH</a> = 0, 00135 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5Ogre_1_1TerrainRenderables1">SOUTH</a> = 1, 00136 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5Ogre_1_1TerrainRenderables2">EAST</a> = 2, 00137 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5Ogre_1_1TerrainRenderables3">WEST</a> = 3, 00138 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5Ogre_1_1TerrainRenderables4">HERE</a> = 4 00139 }; 00140 00144 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea3">init</a>( TerrainOptions &options ); 00145 00146 <font class="comment">//movable object methods</font> <a name="l00148"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea4">00148</a> <font class="comment"></font> <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classOgre_1_1String.html">String</a>& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea4">getName</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font> 00149 <font class="keyword"> </font>{ 00150 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen10">mName</a>; 00151 }; 00152 <a name="l00154"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea5">00154</a> <font class="keyword">virtual</font> <font class="keyword">const</font> <a class="code" href="classOgre_1_1String.html">String</a>& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea5">getMovableType</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font> 00155 <font class="keyword"> </font>{ 00156 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableq0">mType</a>; 00157 }; 00158 <a name="l00160"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea6">00160</a> <font class="keyword">const</font> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea6">getBoundingBox</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font> 00161 <font class="keyword"> </font>{ 00162 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen5">mBounds</a>; 00163 }; 00164 00166 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea7">_notifyCurrentCamera</a>( Camera* cam ); 00167 00168 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea8">_updateRenderQueue</a>( RenderQueue* queue ); 00169 00176 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea9">getRenderOperation</a>( RenderOperation& rend ); 00177 <a name="l00178"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea10">00178</a> <font class="keyword">virtual</font> <a class="code" href="classOgre_1_1Material.html">Material</a>* <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea10">getMaterial</a>( <font class="keywordtype">void</font> )<font class="keyword"> const</font> 00179 <font class="keyword"> </font>{ 00180 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen11">mMaterial</a>; 00181 }; 00182 00183 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea11">getWorldTransforms</a>( Matrix4* xform ) <font class="keyword">const</font>; 00184 00185 <font class="keyword">virtual</font> <font class="keyword">const</font> Quaternion& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea12">getWorldOrientation</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; 00186 <font class="keyword">virtual</font> <font class="keyword">const</font> Vector3& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea13">getWorldPosition</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; 00187 <a name="l00189"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea14">00189</a> <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea14">getSize</a>() 00190 { 00191 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen8">mSize</a>; 00192 }; 00193 <a name="l00195"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea15">00195</a> <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea15">getRenderLevel</a>() 00196 { 00197 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen2">mRenderLevel</a>; 00198 }; 00199 <a name="l00201"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea16">00201</a> <font class="keyword">inline</font> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea16">setForcedRenderLevel</a>( <font class="keywordtype">int</font> i ) 00202 { 00203 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen22">mForcedRenderLevel</a> = i; 00204 } 00205 <a name="l00207"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea17">00207</a> <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea17">getNumMipMaps</a>()<font class="keyword"> const</font> 00208 <font class="keyword"> </font>{ 00209 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen1">mNumMipMaps</a>; 00210 }; 00211 00213 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea18">_getNormalAt</a>( <font class="keywordtype">float</font> x, <font class="keywordtype">float</font> y, Vector3 * result ); 00214 00216 <font class="keywordtype">float</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea19">getHeightAt</a>( <font class="keywordtype">float</font> x, <font class="keywordtype">float</font> y ); 00217 00220 <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea20">intersectSegment</a>( <font class="keyword">const</font> Vector3 & start, <font class="keyword">const</font> Vector3 & end, Vector3 * result ); 00221 <a name="l00225"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea21">00225</a> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea21">_setNeighbor</a>( <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5">Neighbor</a> n, <a class="code" href="classOgre_1_1TerrainRenderable.html">TerrainRenderable</a> *t ) 00226 { 00227 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a>[ n ] = t; 00228 }; 00229 <a name="l00232"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea22">00232</a> <a class="code" href="classOgre_1_1TerrainRenderable.html">TerrainRenderable</a> * <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea22">_getNeighbor</a>( <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderables5">Neighbor</a> n ) 00233 { 00234 <font class="keywordflow">return</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a>[ n ]; 00235 } 00236 00237 <a name="l00238"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea23">00238</a> <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea23">setMaterial</a>( <a class="code" href="classOgre_1_1Material.html">Material</a> *m ) 00239 { 00240 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen11">mMaterial</a> = m; 00241 }; 00242 00244 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea24">_alignNeighbors</a>(); 00246 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea25">_calculateNormals</a>(); 00247 00248 00249 00250 00253 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea26">_generateVertexLighting</a>( <font class="keyword">const</font> Vector3 &sun, ColourValue ambient ); 00254 00255 00256 <font class="keyword">static</font> size_t <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablep0">mRenderedTris</a>; 00257 00259 <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea27">getSquaredViewDepth</a>(<font class="keyword">const</font> Camera* cam) <font class="keyword">const</font>; 00260 <a name="l00262"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea28">00262</a> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea28">getBoundingRadius</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font> 0; <font class="comment">/* not needed */</font> } 00263 00265 <font class="keyword">const</font> <a class="code" href="namespaceOgre.html#a56">LightList</a>& <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablea29">getLights</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>; 00266 00267 00268 00269 <font class="keyword">protected</font>: 00270 <a name="l00272"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb0">00272</a> <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb0">_index</a>( <font class="keywordtype">int</font> x, <font class="keywordtype">int</font> z ) 00273 { 00274 <font class="keywordflow">return</font> ( x + z * <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen8">mSize</a> ); 00275 }; 00276 <a name="l00278"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb1">00278</a> <font class="keyword">inline</font> <font class="keywordtype">float</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb1">_vertex</a>( <font class="keywordtype">int</font> x, <font class="keywordtype">int</font> z, <font class="keywordtype">int</font> n ) 00279 { 00280 <a class="code" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> vbuf = 00281 <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen0">mTerrain</a>-><a class="code" href="classOgre_1_1VertexData.html#Ogre_1_1VertexDatam1">vertexBufferBinding</a>-><a class="code" href="classOgre_1_1VertexBufferBinding.html#Ogre_1_1VertexBufferBindinga6">getBuffer</a>(0); 00282 00283 <a class="code" href="namespaceOgre.html#a349">Real</a> vertex = 0.0; 00284 00285 vbuf->readData((x * 3 + z * <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen8">mSize</a> * 3 + n) * <font class="keyword">sizeof</font>(<a class="code" href="namespaceOgre.html#a349">Real</a>), <font class="keyword">sizeof</font>(<a class="code" href="namespaceOgre.html#a349">Real</a>), &vertex); 00286 00287 <font class="keywordflow">return</font> vertex; 00288 <font class="comment">/* </font> 00289 <font class="comment"> return mTerrain.pVertices[ x * 3 + z * mSize * 3 + n ];</font> 00290 <font class="comment"> */</font> 00291 }; 00292 00293 <a name="l00294"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb2">00294</a> <font class="keyword">inline</font> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb2">_numNeighbors</a>() 00295 { 00296 <font class="keywordtype">int</font> n = 0; 00297 00298 <font class="keywordflow">for</font> ( <font class="keywordtype">int</font> i = 0; i < 4; i++ ) 00299 { 00300 <font class="keywordflow">if</font> ( <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a>[ i ] != 0 ) 00301 n++; 00302 } 00303 00304 <font class="keywordflow">return</font> n; 00305 } 00306 <a name="l00307"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb3">00307</a> <font class="keyword">inline</font> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb3">_hasNeighborRenderLevel</a>( <font class="keywordtype">int</font> i ) 00308 { 00309 <font class="keywordflow">for</font> ( <font class="keywordtype">int</font> j = 0; j < 4; j++ ) 00310 { 00311 <font class="keywordflow">if</font> ( <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a>[ j ] != 0 && <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a>[ j ] -><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen2">mRenderLevel</a> == i ) 00312 <font class="keywordflow">return</font> <font class="keyword">true</font>;; 00313 } 00314 00315 <font class="keywordflow">return</font> <font class="keyword">false</font>; 00316 00317 } 00318 00319 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb4">_adjustRenderLevel</a>( <font class="keywordtype">int</font> i ); 00320 00321 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb5">_initLevelIndexes</a>(); 00322 00323 <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb6">_checkSize</a>( <font class="keywordtype">int</font> n ); 00324 00325 <font class="keywordtype">void</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb7">_calculateMinLevelDist2</a>( <a class="code" href="namespaceOgre.html#a349">Real</a> C ); 00326 00327 <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableb8">_calculateCFactor</a>(); 00328 <a name="l00329"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen0">00329</a> <a class="code" href="classOgre_1_1VertexData.html">VertexData</a>* <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen0">mTerrain</a>; 00330 <a name="l00331"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen1">00331</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen1">mNumMipMaps</a>; <a name="l00332"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen2">00332</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen2">mRenderLevel</a>; 00333 <a name="l00334"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen3">00334</a> <a class="code" href="namespaceOgre.html#a349">Real</a> *<a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen3">mMinLevelDistSqr</a>; 00335 <a name="l00336"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">00336</a> <a class="code" href="classOgre_1_1TerrainRenderable.html">TerrainRenderable</a> *<a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen4">mNeighbors</a> [ 4 ]; 00337 <a name="l00338"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen5">00338</a> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen5">mBounds</a>; <a name="l00339"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen6">00339</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen6">mCenter</a>; <a name="l00340"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen7">00340</a> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen7">mScale</a>; 00341 <a name="l00342"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen8">00342</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen8">mSize</a>; <a name="l00343"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen9">00343</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen9">mWorldSize</a>; 00344 <a name="l00345"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen10">00345</a> <a class="code" href="classOgre_1_1String.html">String</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen10">mName</a>; 00346 <font class="keyword">static</font> <a class="code" href="classOgre_1_1String.html">String</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableq0">mType</a>; 00347 <a name="l00348"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen11">00348</a> <a class="code" href="classOgre_1_1Material.html">Material</a> *<a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen11">mMaterial</a>; 00349 <a name="l00350"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen12">00350</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen12">mRenderLevelChanged</a>; <a name="l00351"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen13">00351</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen13">mInit</a>; 00352 00353 <font class="keyword">static</font> <a class="code" href="namespaceOgre.html#a473">LevelArray</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableq1">mLevelIndex</a>; 00354 <font class="keyword">static</font> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderableq2">mLevelInit</a>; 00355 <a name="l00356"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen14">00356</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen14">mNearPlane</a>; <a name="l00357"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen15">00357</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen15">mMaxPixelError</a>; <a name="l00358"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen16">00358</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen16">mVertResolution</a>; <a name="l00359"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen17">00359</a> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen17">mTopCoord</a>; 00360 <a name="l00361"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen18">00361</a> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen18">old_L</a>; 00362 <a name="l00363"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen19">00363</a> <a class="code" href="namespaceOgre.html#a349">Real</a> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen19">current_L</a>; 00364 <a name="l00365"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen20">00365</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen20">mColored</a>; <a name="l00366"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen21">00366</a> <font class="keywordtype">bool</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen21">mLit</a>; 00367 <a name="l00368"></a><a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen22">00368</a> <font class="keywordtype">int</font> <a class="code" href="classOgre_1_1TerrainRenderable.html#Ogre_1_1TerrainRenderablen22">mForcedRenderLevel</a>; 00369 00370 }; 00371 00372 } 00373 00374 <font class="preprocessor">#endif</font> </pre></div><p> Copyright © 2002-2003 by The OGRE Team<br /> Last modified Wed Jan 21 00:10:29 2004 </p> </body> </html>