<html> <head> <title>OgreTerrainPageSource.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.3.6 --> <div class="qindex"><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">Class 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">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>OgreTerrainPageSource.h</h1><a href="OgreTerrainPageSource_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span> 00002 <span class="comment">-----------------------------------------------------------------------------</span> 00003 <span class="comment">This source file is part of OGRE</span> 00004 <span class="comment">(Object-oriented Graphics Rendering Engine)</span> 00005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span> 00006 <span class="comment"></span> 00007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span> 00008 <span class="comment">Also see acknowledgements in Readme.html</span> 00009 <span class="comment"></span> 00010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span> 00011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span> 00012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span> 00013 <span class="comment">version.</span> 00014 <span class="comment"></span> 00015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span> 00016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span> 00017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span> 00018 <span class="comment"></span> 00019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span> 00020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span> 00021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span> 00022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span> 00023 <span class="comment">-----------------------------------------------------------------------------</span> 00024 <span class="comment">*/</span> 00025 00026 <span class="preprocessor">#ifndef __TerrainPageSource_H__</span> 00027 <span class="preprocessor"></span><span class="preprocessor">#define __TerrainPageSource_H__</span> 00028 <span class="preprocessor"></span> 00029 <span class="preprocessor">#include "<a class="code" href="OgreTerrainPrerequisites_8h.html">OgreTerrainPrerequisites.h</a>"</span> 00030 <span class="preprocessor">#include "<a class="code" href="OgreSingleton_8h.html">OgreSingleton.h</a>"</span> 00031 00032 <span class="keyword">namespace </span>Ogre { 00033 <a name="l00034"></a><a class="code" href="namespaceOgre.html#a559">00034</a> <span class="keyword">typedef</span> std::pair<String, String> <a class="code" href="namespaceOgre.html#a559">TerrainPageSourceOption</a>; <a name="l00035"></a><a class="code" href="namespaceOgre.html#a560">00035</a> <span class="keyword">typedef</span> std::vector<TerrainPageSourceOption> <a class="code" href="namespaceOgre.html#a560">TerrainPageSourceOptionList</a>; 00036 <a name="l00040"></a><a class="code" href="classOgre_1_1TerrainPageSourceListener.html">00040</a> <span class="keyword">class </span><a class="code" href="OgreTerrainPrerequisites_8h.html#a0">_OgreTerrainExport</a> TerrainPageSourceListener 00041 { 00042 <span class="keyword">public</span>: 00049 <span class="keyword">virtual</span> <span class="keywordtype">void</span> pageConstructed(size_t pagex, size_t pagez, <a class="code" href="namespaceOgre.html#a420">Real</a>* heightData) = 0; 00050 }; 00051 <a name="l00055"></a><a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html">00055</a> <span class="keyword">class </span><a class="code" href="class__OgreTerrainExport.html">_OgreTerrainExport</a> TerrainPageSourceListenerManager : 00056 <span class="keyword">public</span> <a class="code" href="classOgre_1_1Singleton.html">Singleton</a><TerrainPageSourceListenerManager> 00057 { 00058 <span class="keyword">protected</span>: <a name="l00059"></a><a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagerx0">00059</a> <span class="keyword">typedef</span> std::vector<TerrainPageSourceListener*> <a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagerx0">PageSourceListenerList</a>; <a name="l00060"></a><a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagerp0">00060</a> <a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagerx0">PageSourceListenerList</a> mPageSourceListeners; 00061 <span class="keyword">public</span>: <a name="l00062"></a><a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagera0">00062</a> TerrainPageSourceListenerManager() {} <a name="l00063"></a><a class="code" href="classOgre_1_1TerrainPageSourceListenerManager.html#Ogre_1_1TerrainPageSourceListenerManagera1">00063</a> ~TerrainPageSourceListenerManager() {} 00064 00071 <span class="keywordtype">void</span> addListener(TerrainPageSourceListener* pl); 00075 <span class="keywordtype">void</span> removeListener(TerrainPageSourceListener* pl); 00076 00078 <span class="keywordtype">void</span> firePageConstructed(size_t pagex, size_t pagez, <a class="code" href="namespaceOgre.html#a420">Real</a>* heightData); 00079 00082 <span class="keyword">static</span> TerrainPageSourceListenerManager& getSingleton(<span class="keywordtype">void</span>); 00085 <span class="keyword">static</span> TerrainPageSourceListenerManager* getSingletonPtr(<span class="keywordtype">void</span>); 00086 00087 }; 00088 00089 <a name="l00131"></a><a class="code" href="classOgre_1_1TerrainPageSource.html">00131</a> <span class="keyword">class </span><a class="code" href="class__OgreTerrainExport.html">_OgreTerrainExport</a> TerrainPageSource 00132 { 00133 <span class="keyword">protected</span>: <a name="l00135"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcep0">00135</a> <a class="code" href="classOgre_1_1TerrainSceneManager.html">TerrainSceneManager</a>* mSceneManager; <a name="l00137"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcep1">00137</a> <span class="keywordtype">bool</span> mAsyncLoading; <a name="l00139"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcep2">00139</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> mPageSize; <a name="l00141"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcep3">00141</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> mTileSize; 00142 00144 <span class="keyword">static</span> <span class="keywordtype">void</span> firePageConstructed(size_t pagex, size_t pagez, <a class="code" href="namespaceOgre.html#a420">Real</a>* heightData); 00145 00153 <span class="keyword">virtual</span> <a class="code" href="classOgre_1_1TerrainPage.html">TerrainPage</a>* buildPage(<a class="code" href="namespaceOgre.html#a420">Real</a>* heightData, <span class="keyword">const</span> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a>& pMaterial); 00154 00155 00156 <span class="keyword">public</span>: 00157 TerrainPageSource(); <a name="l00158"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcea1">00158</a> <span class="keyword">virtual</span> ~TerrainPageSource() { shutdown(); } 00159 <a name="l00180"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcea2">00180</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialise(<a class="code" href="classOgre_1_1TerrainSceneManager.html">TerrainSceneManager</a>* tsm, 00181 <a class="code" href="namespaceOgre.html#a422">ushort</a> tileSize, <a class="code" href="namespaceOgre.html#a422">ushort</a> pageSize, <span class="keywordtype">bool</span> asyncLoading, 00182 <a class="code" href="namespaceOgre.html#a560">TerrainPageSourceOptionList</a>& optionList) 00183 { 00184 mSceneManager = tsm; 00185 mTileSize = tileSize; 00186 mPageSize = pageSize; 00187 mAsyncLoading = asyncLoading; 00188 } <a name="l00196"></a><a class="code" href="classOgre_1_1TerrainPageSource.html#Ogre_1_1TerrainPageSourcea3">00196</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> shutdown(<span class="keywordtype">void</span>) {} 00197 00219 <span class="keyword">virtual</span> <span class="keywordtype">void</span> requestPage(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> z) = 0; 00235 <span class="keyword">virtual</span> <span class="keywordtype">void</span> expirePage(<a class="code" href="namespaceOgre.html#a422">ushort</a> x, <a class="code" href="namespaceOgre.html#a422">ushort</a> z) = 0; 00236 00243 <span class="keyword">static</span> <span class="keywordtype">void</span> addListener(TerrainPageSourceListener* pl); 00247 <span class="keyword">static</span> <span class="keywordtype">void</span> removeListener(TerrainPageSourceListener* pl); 00248 00249 }; 00250 00251 } 00252 00253 <span class="preprocessor">#endif</span> </pre></div><p> Copyright © 2000-2005 by The OGRE Team<br /> Last modified Wed Feb 23 00:19:14 2005 </p> </body> </html>