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

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

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>OgreSceneQuery.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>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>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">    (Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025 <span class="preprocessor">#ifndef __SceneQuery_H__</span>
3500026 <span class="preprocessor"></span><span class="preprocessor">#define __SceneQuery_H__</span>
3600027 <span class="preprocessor"></span>
3700028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
3800029 <span class="preprocessor">#include "<a class="code" href="OgreAxisAlignedBox_8h.html">OgreAxisAlignedBox.h</a>"</span>
3900030 <span class="preprocessor">#include "<a class="code" href="OgreSphere_8h.html">OgreSphere.h</a>"</span>
4000031 <span class="preprocessor">#include "<a class="code" href="OgreRay_8h.html">OgreRay.h</a>"</span>
4100032 <span class="preprocessor">#include "<a class="code" href="OgreRenderOperation_8h.html">OgreRenderOperation.h</a>"</span>
4200033 <span class="preprocessor">#include "<a class="code" href="OgrePlaneBoundedVolume_8h.html">OgrePlaneBoundedVolume.h</a>"</span>
4300034
4400035 <span class="keyword">namespace </span>Ogre {
4500036
4600037     <span class="comment">// forward declaration</span>
4700038     <span class="keyword">class </span>SceneQueryListener;
48<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#a16">_OgreExport</a> SceneQuery
4900065     {
5000066     <span class="keyword">public</span>:
51<a name="l00073"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryw5">00073</a>         <span class="keyword">enum</span> WorldFragmentType {
5200075             WFT_NONE,
5300077             WFT_PLANE_BOUNDED_REGION,
5400079             WFT_SINGLE_INTERSECTION,
5500081             WFT_CUSTOM_GEOMETRY,
5600083             WFT_RENDER_OPERATION
5700084         };
5800085
59<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> {
60<a name="l00101"></a><a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html#Ogre_1_1SceneQuery_1_1WorldFragmento0">00101</a>             WorldFragmentType fragmentType;
61<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;
62<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;
63<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;
64<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;
6500110             
6600111         };
6700112     <span class="keyword">protected</span>:
68<a name="l00113"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp5">00113</a>         <a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mParentSceneMgr;
69<a name="l00114"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp6">00114</a>         <a class="code" href="namespaceOgre.html#a455">uint32</a> mQueryMask;
70<a name="l00115"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp7">00115</a>         <a class="code" href="namespaceOgre.html#a455">uint32</a> mQueryTypeMask;
71<a name="l00116"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp8">00116</a>         std::set&lt;WorldFragmentType&gt; mSupportedWorldFragments;
72<a name="l00117"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp9">00117</a>         WorldFragmentType mWorldFragmentType;
7300118     
7400119     <span class="keyword">public</span>:
7500121         SceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
7600122         <span class="keyword">virtual</span> ~SceneQuery();
7700123
7800133         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setQueryMask(<a class="code" href="namespaceOgre.html#a455">uint32</a> mask);
7900135         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a455">uint32</a> getQueryMask(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
8000136
8100145         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setQueryTypeMask(<a class="code" href="namespaceOgre.html#a455">uint32</a> mask);
8200147         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a455">uint32</a> getQueryTypeMask(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
8300148
8400159         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorldFragmentType(<span class="keyword">enum</span> WorldFragmentType wft);
8500160
8600162         <span class="keyword">virtual</span> WorldFragmentType getWorldFragmentType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
8700163
88<a name="l00165"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQuerya19">00165</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>
8900166 <span class="keyword">            </span>{<span class="keywordflow">return</span> &amp;mSupportedWorldFragments;}
9000167
9100168         
9200169     };
9300170
94<a name="l00177"></a><a class="code" href="classOgre_1_1SceneQueryListener.html">00177</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SceneQueryListener
9500178     {
9600179     <span class="keyword">public</span>:
97<a name="l00180"></a><a class="code" href="classOgre_1_1SceneQueryListener.html#Ogre_1_1SceneQueryListenera0">00180</a>         <span class="keyword">virtual</span> ~SceneQueryListener() { }
9800186         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* object) = 0;
9900192         <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;
10000193
10100194     };
10200195
103<a name="l00196"></a><a class="code" href="namespaceOgre.html#a539">00196</a>     <span class="keyword">typedef</span> std::list&lt;MovableObject*&gt; <a class="code" href="namespaceOgre.html#a539">SceneQueryResultMovableList</a>;
104<a name="l00197"></a><a class="code" href="namespaceOgre.html#a540">00197</a>     <span class="keyword">typedef</span> std::list&lt;SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a540">SceneQueryResultWorldFragmentList</a>;
105<a name="l00199"></a><a class="code" href="structOgre_1_1SceneQueryResult.html">00199</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SceneQueryResult
10600200     {
107<a name="l00202"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto0">00202</a>         <a class="code" href="namespaceOgre.html#a539">SceneQueryResultMovableList</a> movables;
108<a name="l00204"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto1">00204</a>         <a class="code" href="namespaceOgre.html#a540">SceneQueryResultWorldFragmentList</a> worldFragments;
10900205     };
11000206
111<a name="l00213"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html">00213</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RegionSceneQuery
11200214         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> SceneQueryListener
11300215     {
11400216     <span class="keyword">protected</span>:
115<a name="l00217"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html#Ogre_1_1SphereSceneQueryp1">00217</a>         SceneQueryResult* mLastResult;
11600218     <span class="keyword">public</span>:
11700220         RegionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
11800221         <span class="keyword">virtual</span> ~RegionSceneQuery();
11900230         <span class="keyword">virtual</span> SceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
12000231
12100239         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(SceneQueryListener* listener) = 0;
12200240         
12300244         <span class="keyword">virtual</span> SceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12400251         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
12500252
12600254         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* first);
12700256         <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment);
12800257     };
12900258
130<a name="l00260"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html">00260</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> AxisAlignedBoxSceneQuery : <span class="keyword">public</span> RegionSceneQuery
13100261     {
13200262     <span class="keyword">protected</span>:
133<a name="l00263"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html#Ogre_1_1OctreeAxisAlignedBoxSceneQueryp0">00263</a>         <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mAABB;
13400264     <span class="keyword">public</span>:
13500265         AxisAlignedBoxSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
13600266         <span class="keyword">virtual</span> ~AxisAlignedBoxSceneQuery();
13700267
13800269         <span class="keywordtype">void</span> setBox(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; box);
13900270
14000272         <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>;
14100273
14200274     };
14300275
144<a name="l00277"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html">00277</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SphereSceneQuery : <span class="keyword">public</span> RegionSceneQuery
14500278     {
14600279     <span class="keyword">protected</span>:
147<a name="l00280"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html#Ogre_1_1SphereSceneQueryp0">00280</a>         <a class="code" href="classOgre_1_1Sphere.html">Sphere</a> mSphere;
14800281     <span class="keyword">public</span>:
14900282         SphereSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
15000283         <span class="keyword">virtual</span> ~SphereSceneQuery();
15100285         <span class="keywordtype">void</span> setSphere(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; sphere);
15200286
15300288         <span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; getSphere() <span class="keyword">const</span>;
15400289
15500290     };
15600291
157<a name="l00294"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html">00294</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> PlaneBoundedVolumeListSceneQuery : <span class="keyword">public</span> RegionSceneQuery
15800295     {
15900296     <span class="keyword">protected</span>:
160<a name="l00297"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html#Ogre_1_1PlaneBoundedVolumeListSceneQueryp0">00297</a>         <a class="code" href="namespaceOgre.html#a454">PlaneBoundedVolumeList</a> mVolumes;
16100298     <span class="keyword">public</span>:
16200299         PlaneBoundedVolumeListSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
16300300         <span class="keyword">virtual</span> ~PlaneBoundedVolumeListSceneQuery();
16400302         <span class="keywordtype">void</span> setVolumes(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a454">PlaneBoundedVolumeList</a>&amp; volumes);
16500303
16600305         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a454">PlaneBoundedVolumeList</a>&amp; getVolumes() <span class="keyword">const</span>;
16700306
16800307     };
16900308
17000309
17100310     <span class="comment">/*</span>
17200312 <span class="comment">    class _OgreExport PyramidSceneQuery : public RegionSceneQuery</span>
17300313 <span class="comment">    {</span>
17400314 <span class="comment">    public:</span>
17500315 <span class="comment">        PyramidSceneQuery(SceneManager* mgr);</span>
17600316 <span class="comment">        virtual ~PyramidSceneQuery();</span>
17700317 <span class="comment">    };</span>
17800318 <span class="comment">    */</span>
17900319
180<a name="l00325"></a><a class="code" href="classOgre_1_1RaySceneQueryListener.html">00325</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryListener
18100326     {
18200327     <span class="keyword">public</span>:
183<a name="l00328"></a><a class="code" href="classOgre_1_1RaySceneQueryListener.html#Ogre_1_1RaySceneQueryListenera0">00328</a>         <span class="keyword">virtual</span> ~RaySceneQueryListener() { }
18400335         <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#a465">Real</a> distance) = 0;
18500336
18600343         <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#a465">Real</a> distance) = 0;
18700344
18800345     };
18900346       
190<a name="l00348"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html">00348</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryResultEntry
19100349     {
192<a name="l00351"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">00351</a>         <a class="code" href="namespaceOgre.html#a465">Real</a> distance;
193<a name="l00353"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo1">00353</a>         <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* movable;
194<a name="l00355"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo2">00355</a>         <a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* worldFragment;
195<a name="l00357"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntrya0">00357</a>         <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> RaySceneQueryResultEntry&amp; rhs)<span class="keyword"> const</span>
19600358 <span class="keyword">        </span>{
19700359             <span class="keywordflow">return</span> this-&gt;distance &lt; rhs.<a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">distance</a>;
19800360         }
19900361
20000362     };
201<a name="l00363"></a><a class="code" href="namespaceOgre.html#a541">00363</a>     <span class="keyword">typedef</span> std::vector&lt;RaySceneQueryResultEntry&gt; <a class="code" href="namespaceOgre.html#a541">RaySceneQueryResult</a>;
20200364
203<a name="l00366"></a><a class="code" href="classOgre_1_1RaySceneQuery.html">00366</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
20400367     {
20500368     <span class="keyword">protected</span>:
206<a name="l00369"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp1">00369</a>         <a class="code" href="classOgre_1_1Ray.html">Ray</a> mRay;
207<a name="l00370"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp2">00370</a>         <span class="keywordtype">bool</span> mSortByDistance;
208<a name="l00371"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp3">00371</a>         <a class="code" href="namespaceOgre.html#a467">ushort</a> mMaxResults;
209<a name="l00372"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp4">00372</a>         <a class="code" href="namespaceOgre.html#a541">RaySceneQueryResult</a> mResult;
21000373
21100374     <span class="keyword">public</span>:
21200375         RaySceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
21300376         <span class="keyword">virtual</span> ~RaySceneQuery();
21400378         <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);
21500380         <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>;
21600399         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSortByDistance(<span class="keywordtype">bool</span> sort, <a class="code" href="namespaceOgre.html#a467">ushort</a> maxresults = 0);
21700401         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getSortByDistance(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
21800404         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a467">ushort</a> getMaxResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
21900413         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a541">RaySceneQueryResult</a>&amp; execute(<span class="keywordtype">void</span>);
22000414
22100422         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(RaySceneQueryListener* listener) = 0;
22200423
22300427         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a541">RaySceneQueryResult</a>&amp; getLastResults(<span class="keywordtype">void</span>);
22400434         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
22500435
22600437         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* obj, <a class="code" href="namespaceOgre.html#a465">Real</a> distance);
22700439         <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#a465">Real</a> distance);
22800440
22900441
23000442
23100443
23200444     };
23300445
234<a name="l00451"></a><a class="code" href="classOgre_1_1IntersectionSceneQueryListener.html">00451</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryListener
23500452     {
23600453     <span class="keyword">public</span>:
237<a name="l00454"></a><a class="code" href="classOgre_1_1IntersectionSceneQueryListener.html#Ogre_1_1IntersectionSceneQueryListenera0">00454</a>         <span class="keyword">virtual</span> ~IntersectionSceneQueryListener() { }
23800461         <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;
23900462
24000469         <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;
24100470
24200471         <span class="comment">/* NB there are no results for world fragments intersecting other world fragments;</span>
24300472 <span class="comment">           it is assumed that world geometry is either static or at least that self-intersections</span>
24400473 <span class="comment">           are irrelevant or dealt with elsewhere (such as the custom scene manager) */</span>
24500474         
24600475     
24700476     };
24800477         
249<a name="l00478"></a><a class="code" href="namespaceOgre.html#a542">00478</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, MovableObject*&gt; <a class="code" href="namespaceOgre.html#a542">SceneQueryMovableObjectPair</a>;
250<a name="l00479"></a><a class="code" href="namespaceOgre.html#a543">00479</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a543">SceneQueryMovableObjectWorldFragmentPair</a>;
251<a name="l00480"></a><a class="code" href="namespaceOgre.html#a544">00480</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectPair&gt; <a class="code" href="namespaceOgre.html#a544">SceneQueryMovableIntersectionList</a>;
252<a name="l00481"></a><a class="code" href="namespaceOgre.html#a545">00481</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectWorldFragmentPair&gt; <a class="code" href="namespaceOgre.html#a545">SceneQueryMovableWorldFragmentIntersectionList</a>;
253<a name="l00483"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html">00483</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryResult
25400484     {
255<a name="l00486"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto0">00486</a>         <a class="code" href="namespaceOgre.html#a544">SceneQueryMovableIntersectionList</a> movables2movables;
256<a name="l00488"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto1">00488</a>         <a class="code" href="namespaceOgre.html#a545">SceneQueryMovableWorldFragmentIntersectionList</a> movables2world;
25700489         
25800490         
25900491
26000492     };
26100493
262<a name="l00502"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html">00502</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQuery
26300503         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> IntersectionSceneQueryListener
26400504     {
26500505     <span class="keyword">protected</span>:
266<a name="l00506"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html#Ogre_1_1OctreeIntersectionSceneQueryp0">00506</a>         IntersectionSceneQueryResult* mLastResult;
26700507     <span class="keyword">public</span>:
26800508         IntersectionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
26900509         <span class="keyword">virtual</span> ~IntersectionSceneQuery();
27000510
27100519         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
27200520
27300528         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(IntersectionSceneQueryListener* listener) = 0;
27400529
27500533         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
27600540         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
27700541
27800543         <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);
27900545         <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);
28000546     };
28100547     
28200548
28300549 }
28400550     
28500551
28600552
28700553 <span class="preprocessor">#endif</span>
288</pre></div><hr>
289<p>
290Copyright &copy; 2000-2005 by The OGRE Team<br />
291<!--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/>
292This 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/>
293                <!--/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#">
294                <Work rdf:about="">
295                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
296        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
297                </Work>
298                <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> -->
299
300Last modified Sun Mar 12 14:37:49 2006
301</p>
302</body>
303</html>
Note: See TracBrowser for help on using the repository browser.