Sophie

Sophie

distrib > Mandriva > 10.2 > i586 > media > contrib > by-pkgid > 04e5d8c10ae76748689b4e7f48e0fa33 > files > 818

libogre5-devel-1.0.0-1mdk.i586.rpm

<html>
<head>
<title>OgreSceneQuery.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&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>
<h1>OgreSceneQuery.h</h1><a href="OgreSceneQuery_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 <span class="preprocessor">#ifndef __SceneQuery_H__</span>
00026 <span class="preprocessor"></span><span class="preprocessor">#define __SceneQuery_H__</span>
00027 <span class="preprocessor"></span>
00028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
00029 <span class="preprocessor">#include "<a class="code" href="OgreAxisAlignedBox_8h.html">OgreAxisAlignedBox.h</a>"</span>
00030 <span class="preprocessor">#include "<a class="code" href="OgreSphere_8h.html">OgreSphere.h</a>"</span>
00031 <span class="preprocessor">#include "<a class="code" href="OgreRay_8h.html">OgreRay.h</a>"</span>
00032 <span class="preprocessor">#include "<a class="code" href="OgreRenderOperation_8h.html">OgreRenderOperation.h</a>"</span>
00033 <span class="preprocessor">#include "<a class="code" href="OgrePlaneBoundedVolume_8h.html">OgrePlaneBoundedVolume.h</a>"</span>
00034 
00035 <span class="keyword">namespace </span>Ogre {
00036 
00037     <span class="comment">// forward declaration</span>
00038     <span class="keyword">class </span>SceneQueryListener;
<a name="l00064"></a><a class="code" href="classOgre_1_1SceneQuery.html">00064</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a13">_OgreExport</a> SceneQuery
00065     {
00066     <span class="keyword">public</span>:
<a name="l00073"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryw5">00073</a>         <span class="keyword">enum</span> WorldFragmentType {
00075             WFT_NONE,
00077             WFT_PLANE_BOUNDED_REGION,
00079             WFT_SINGLE_INTERSECTION,
00081             WFT_CUSTOM_GEOMETRY,
00083             WFT_RENDER_OPERATION
00084         };
00085 
<a name="l00099"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">00099</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">WorldFragment</a> {
<a name="l00101"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento0">00101</a>             WorldFragmentType fragmentType;
<a name="l00103"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento1">00103</a>             <a class="code" href="classOgre_1_1Vector3.html">Vector3</a> singleIntersection;
<a name="l00105"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento2">00105</a>             std::list&lt;Plane&gt;* planes;
<a name="l00107"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento3">00107</a>             <span class="keywordtype">void</span>* geometry;
<a name="l00109"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento4">00109</a>             <a class="code" href="classOgre_1_1RenderOperation.html">RenderOperation</a>* renderOp;
00110             
00111         };
00112     <span class="keyword">protected</span>:
<a name="l00113"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp4">00113</a>         <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mParentSceneMgr;
<a name="l00114"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp5">00114</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mQueryMask;
<a name="l00115"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp6">00115</a>         std::set&lt;WorldFragmentType&gt; mSupportedWorldFragments;
<a name="l00116"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp7">00116</a>         WorldFragmentType mWorldFragmentType;
00117     
00118     <span class="keyword">public</span>:
00120         SceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00121         <span class="keyword">virtual</span> ~SceneQuery();
00122 
00132         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setQueryMask(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
00134         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> getQueryMask(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00135 
00146         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorldFragmentType(<span class="keyword">enum</span> WorldFragmentType wft);
00147 
00149         <span class="keyword">virtual</span> WorldFragmentType getWorldFragmentType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00150 
<a name="l00152"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQuerya17">00152</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> std::set&lt;WorldFragmentType&gt;* getSupportedWorldFragmentTypes(<span class="keywordtype">void</span>)<span class="keyword"> const</span>
00153 <span class="keyword">            </span>{<span class="keywordflow">return</span> &amp;mSupportedWorldFragments;}
00154 
00155         
00156     };
00157 
<a name="l00164"></a><a class="code" href="classOgre_1_1SceneQueryListener.html">00164</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SceneQueryListener
00165     {
00166     <span class="keyword">public</span>:
00172         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* object) = 0;
00178         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment) = 0;
00179 
00180     };
00181 
<a name="l00182"></a><a class="code" href="namespaceOgre.html#a494">00182</a>     <span class="keyword">typedef</span> std::list&lt;MovableObject*&gt; <a class="code" href="namespaceOgre.html#a494">SceneQueryResultMovableList</a>;
<a name="l00183"></a><a class="code" href="namespaceOgre.html#a495">00183</a>     <span class="keyword">typedef</span> std::list&lt;SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a495">SceneQueryResultWorldFragmentList</a>;
<a name="l00185"></a><a class="code" href="structOgre_1_1SceneQueryResult.html">00185</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SceneQueryResult
00186     {
<a name="l00188"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto0">00188</a>         <a class="code" href="namespaceOgre.html#a494">SceneQueryResultMovableList</a> movables;
<a name="l00190"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto1">00190</a>         <a class="code" href="namespaceOgre.html#a495">SceneQueryResultWorldFragmentList</a> worldFragments;
00191     };
00192 
<a name="l00199"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html">00199</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RegionSceneQuery
00200         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> SceneQueryListener
00201     {
00202     <span class="keyword">protected</span>:
<a name="l00203"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html#Ogre_1_1SphereSceneQueryp1">00203</a>         SceneQueryResult* mLastResult;
00204     <span class="keyword">public</span>:
00206         RegionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00207         <span class="keyword">virtual</span> ~RegionSceneQuery();
00216         <span class="keyword">virtual</span> SceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
00217 
00225         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(SceneQueryListener* listener) = 0;
00226         
00230         <span class="keyword">virtual</span> SceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00237         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
00238 
00240         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* first);
00242         <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment);
00243     };
00244 
<a name="l00246"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html">00246</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> AxisAlignedBoxSceneQuery : <span class="keyword">public</span> RegionSceneQuery
00247     {
00248     <span class="keyword">protected</span>:
<a name="l00249"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html#Ogre_1_1OctreeAxisAlignedBoxSceneQueryp0">00249</a>         <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mAABB;
00250     <span class="keyword">public</span>:
00251         AxisAlignedBoxSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00252         <span class="keyword">virtual</span> ~AxisAlignedBoxSceneQuery();
00253 
00255         <span class="keywordtype">void</span> setBox(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; box);
00256 
00258         <span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; getBox(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00259 
00260     };
00261 
<a name="l00263"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html">00263</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SphereSceneQuery : <span class="keyword">public</span> RegionSceneQuery
00264     {
00265     <span class="keyword">protected</span>:
<a name="l00266"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html#Ogre_1_1SphereSceneQueryp0">00266</a>         <a class="code" href="classOgre_1_1Sphere.html">Sphere</a> mSphere;
00267     <span class="keyword">public</span>:
00268         SphereSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00269         <span class="keyword">virtual</span> ~SphereSceneQuery();
00271         <span class="keywordtype">void</span> setSphere(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; sphere);
00272 
00274         <span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; getSphere() <span class="keyword">const</span>;
00275 
00276     };
00277 
<a name="l00280"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html">00280</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> PlaneBoundedVolumeListSceneQuery : <span class="keyword">public</span> RegionSceneQuery
00281     {
00282     <span class="keyword">protected</span>:
<a name="l00283"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html#Ogre_1_1PlaneBoundedVolumeListSceneQueryp0">00283</a>         <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a> mVolumes;
00284     <span class="keyword">public</span>:
00285         PlaneBoundedVolumeListSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00286         <span class="keyword">virtual</span> ~PlaneBoundedVolumeListSceneQuery();
00288         <span class="keywordtype">void</span> setVolumes(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a>&amp; volumes);
00289 
00291         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a>&amp; getVolumes() <span class="keyword">const</span>;
00292 
00293     };
00294 
00295 
00296     <span class="comment">/*</span>
00298 <span class="comment">    class _OgreExport PyramidSceneQuery : public RegionSceneQuery</span>
00299 <span class="comment">    {</span>
00300 <span class="comment">    public:</span>
00301 <span class="comment">        PyramidSceneQuery(SceneManager* mgr);</span>
00302 <span class="comment">        virtual ~PyramidSceneQuery();</span>
00303 <span class="comment">    };</span>
00304 <span class="comment">    */</span>
00305 
<a name="l00311"></a><a class="code" href="classOgre_1_1RaySceneQueryListener.html">00311</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryListener 
00312     {
00313     <span class="keyword">public</span>:
00320         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* obj, <a class="code" href="namespaceOgre.html#a420">Real</a> distance) = 0;
00321 
00328         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment, <a class="code" href="namespaceOgre.html#a420">Real</a> distance) = 0;
00329 
00330     };
00331       
<a name="l00333"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html">00333</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryResultEntry
00334     {
<a name="l00336"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">00336</a>         <a class="code" href="namespaceOgre.html#a420">Real</a> distance;
<a name="l00338"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo1">00338</a>         <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* movable;
<a name="l00340"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo2">00340</a>         <a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* worldFragment;
<a name="l00342"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntrya0">00342</a>         <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> RaySceneQueryResultEntry&amp; rhs)<span class="keyword"> const</span>
00343 <span class="keyword">        </span>{
00344             <span class="keywordflow">return</span> this-&gt;distance &lt; rhs.<a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">distance</a>;
00345         }
00346 
00347     };
<a name="l00348"></a><a class="code" href="namespaceOgre.html#a496">00348</a>     <span class="keyword">typedef</span> std::list&lt;RaySceneQueryResultEntry&gt; <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>;
00349 
<a name="l00351"></a><a class="code" href="classOgre_1_1RaySceneQuery.html">00351</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQuery : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> RaySceneQueryListener
00352     {
00353     <span class="keyword">protected</span>:
<a name="l00354"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp0">00354</a>         <a class="code" href="classOgre_1_1Ray.html">Ray</a> mRay;
<a name="l00355"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp1">00355</a>         <span class="keywordtype">bool</span> mSortByDistance;
<a name="l00356"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp2">00356</a>         <a class="code" href="namespaceOgre.html#a422">ushort</a> mMaxResults;
<a name="l00357"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp3">00357</a>         <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>* mLastResult;
00358 
00359     <span class="keyword">public</span>:
00360         RaySceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00361         <span class="keyword">virtual</span> ~RaySceneQuery();
00363         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRay(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Ray.html">Ray</a>&amp; ray);
00365         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classOgre_1_1Ray.html">Ray</a>&amp; getRay(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00384         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSortByDistance(<span class="keywordtype">bool</span> sort, <a class="code" href="namespaceOgre.html#a422">ushort</a> maxresults = 0);
00386         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getSortByDistance(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00389         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a422">ushort</a> getMaxResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00398         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>&amp; execute(<span class="keywordtype">void</span>);
00399 
00407         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(RaySceneQueryListener* listener) = 0;
00408 
00412         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00419         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
00420 
00422         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* obj, <a class="code" href="namespaceOgre.html#a420">Real</a> distance);
00424         <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment, <a class="code" href="namespaceOgre.html#a420">Real</a> distance);
00425 
00426 
00427 
00428 
00429     };
00430 
<a name="l00436"></a><a class="code" href="classOgre_1_1IntersectionSceneQueryListener.html">00436</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryListener 
00437     {
00438     <span class="keyword">public</span>:
00445         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* first, <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* second) = 0;
00446 
00453         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* movable, <a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment) = 0;
00454 
00455         <span class="comment">/* NB there are no results for world fragments intersecting other world fragments;</span>
00456 <span class="comment">           it is assumed that world geometry is either static or at least that self-intersections</span>
00457 <span class="comment">           are irrelevant or dealt with elsewhere (such as the custom scene manager) */</span>
00458         
00459     
00460     };
00461         
<a name="l00462"></a><a class="code" href="namespaceOgre.html#a497">00462</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, MovableObject*&gt; <a class="code" href="namespaceOgre.html#a497">SceneQueryMovableObjectPair</a>;
<a name="l00463"></a><a class="code" href="namespaceOgre.html#a498">00463</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a498">SceneQueryMovableObjectWorldFragmentPair</a>;
<a name="l00464"></a><a class="code" href="namespaceOgre.html#a499">00464</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectPair&gt; <a class="code" href="namespaceOgre.html#a499">SceneQueryMovableIntersectionList</a>;
<a name="l00465"></a><a class="code" href="namespaceOgre.html#a500">00465</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectWorldFragmentPair&gt; <a class="code" href="namespaceOgre.html#a500">SceneQueryMovableWorldFragmentIntersectionList</a>;
<a name="l00467"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html">00467</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryResult
00468     {
<a name="l00470"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto0">00470</a>         <a class="code" href="namespaceOgre.html#a499">SceneQueryMovableIntersectionList</a> movables2movables;
<a name="l00472"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto1">00472</a>         <a class="code" href="namespaceOgre.html#a500">SceneQueryMovableWorldFragmentIntersectionList</a> movables2world;
00473         
00474         
00475 
00476     };
00477 
<a name="l00486"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html">00486</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQuery
00487         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> IntersectionSceneQueryListener 
00488     {
00489     <span class="keyword">protected</span>:
<a name="l00490"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html#Ogre_1_1OctreeIntersectionSceneQueryp0">00490</a>         IntersectionSceneQueryResult* mLastResult;
00491     <span class="keyword">public</span>:
00492         IntersectionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
00493         <span class="keyword">virtual</span> ~IntersectionSceneQuery();
00494 
00503         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
00504 
00512         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(IntersectionSceneQueryListener* listener) = 0;
00513 
00517         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00524         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
00525 
00527         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* first, <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* second);
00529         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* movable, <a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment);
00530     };
00531     
00532 
00533 }
00534     
00535 
00536 
00537 <span class="preprocessor">#endif</span>
</pre></div><p>
Copyright &copy; 2000-2005 by The OGRE Team<br />
Last modified Wed Feb 23 00:19:13 2005
</p>
</body>
</html>