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

Revision 657, 28.8 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

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_1TerrainRaySceneQueryp4">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_1TerrainRaySceneQueryp5">00114</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mQueryMask;
70<a name="l00115"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp6">00115</a>         std::set&lt;WorldFragmentType&gt; mSupportedWorldFragments;
71<a name="l00116"></a><a class="code" href="classOgre_1_1SceneQuery.html#Ogre_1_1TerrainRaySceneQueryp7">00116</a>         WorldFragmentType mWorldFragmentType;
7200117     
7300118     <span class="keyword">public</span>:
7400120         SceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
7500121         <span class="keyword">virtual</span> ~SceneQuery();
7600122
7700132         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setQueryMask(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
7800134         <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>;
7900135
8000146         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setWorldFragmentType(<span class="keyword">enum</span> WorldFragmentType wft);
8100147
8200149         <span class="keyword">virtual</span> WorldFragmentType getWorldFragmentType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
8300150
84<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>
8500153 <span class="keyword">            </span>{<span class="keywordflow">return</span> &amp;mSupportedWorldFragments;}
8600154
8700155         
8800156     };
8900157
90<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
9100165     {
9200166     <span class="keyword">public</span>:
93<a name="l00167"></a><a class="code" href="classOgre_1_1SceneQueryListener.html#Ogre_1_1SceneQueryListenera0">00167</a>         <span class="keyword">virtual</span> ~SceneQueryListener() { }
9400173         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* object) = 0;
9500179         <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;
9600180
9700181     };
9800182
99<a name="l00183"></a><a class="code" href="namespaceOgre.html#a494">00183</a>     <span class="keyword">typedef</span> std::list&lt;MovableObject*&gt; <a class="code" href="namespaceOgre.html#a494">SceneQueryResultMovableList</a>;
100<a name="l00184"></a><a class="code" href="namespaceOgre.html#a495">00184</a>     <span class="keyword">typedef</span> std::list&lt;SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a495">SceneQueryResultWorldFragmentList</a>;
101<a name="l00186"></a><a class="code" href="structOgre_1_1SceneQueryResult.html">00186</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SceneQueryResult
10200187     {
103<a name="l00189"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto0">00189</a>         <a class="code" href="namespaceOgre.html#a494">SceneQueryResultMovableList</a> movables;
104<a name="l00191"></a><a class="code" href="structOgre_1_1SceneQueryResult.html#Ogre_1_1SceneQueryResulto1">00191</a>         <a class="code" href="namespaceOgre.html#a495">SceneQueryResultWorldFragmentList</a> worldFragments;
10500192     };
10600193
107<a name="l00200"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html">00200</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RegionSceneQuery
10800201         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> SceneQueryListener
10900202     {
11000203     <span class="keyword">protected</span>:
111<a name="l00204"></a><a class="code" href="classOgre_1_1RegionSceneQuery.html#Ogre_1_1SphereSceneQueryp1">00204</a>         SceneQueryResult* mLastResult;
11200205     <span class="keyword">public</span>:
11300207         RegionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
11400208         <span class="keyword">virtual</span> ~RegionSceneQuery();
11500217         <span class="keyword">virtual</span> SceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
11600218
11700226         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(SceneQueryListener* listener) = 0;
11800227         
11900231         <span class="keyword">virtual</span> SceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
12000238         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
12100239
12200241         <span class="keywordtype">bool</span> queryResult(<a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* first);
12300243         <span class="keywordtype">bool</span> queryResult(<a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* fragment);
12400244     };
12500245
126<a name="l00247"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html">00247</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> AxisAlignedBoxSceneQuery : <span class="keyword">public</span> RegionSceneQuery
12700248     {
12800249     <span class="keyword">protected</span>:
129<a name="l00250"></a><a class="code" href="classOgre_1_1AxisAlignedBoxSceneQuery.html#Ogre_1_1OctreeAxisAlignedBoxSceneQueryp0">00250</a>         <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a> mAABB;
13000251     <span class="keyword">public</span>:
13100252         AxisAlignedBoxSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
13200253         <span class="keyword">virtual</span> ~AxisAlignedBoxSceneQuery();
13300254
13400256         <span class="keywordtype">void</span> setBox(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AxisAlignedBox.html">AxisAlignedBox</a>&amp; box);
13500257
13600259         <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>;
13700260
13800261     };
13900262
140<a name="l00264"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html">00264</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> SphereSceneQuery : <span class="keyword">public</span> RegionSceneQuery
14100265     {
14200266     <span class="keyword">protected</span>:
143<a name="l00267"></a><a class="code" href="classOgre_1_1SphereSceneQuery.html#Ogre_1_1SphereSceneQueryp0">00267</a>         <a class="code" href="classOgre_1_1Sphere.html">Sphere</a> mSphere;
14400268     <span class="keyword">public</span>:
14500269         SphereSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
14600270         <span class="keyword">virtual</span> ~SphereSceneQuery();
14700272         <span class="keywordtype">void</span> setSphere(<span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; sphere);
14800273
14900275         <span class="keyword">const</span> <a class="code" href="classOgre_1_1Sphere.html">Sphere</a>&amp; getSphere() <span class="keyword">const</span>;
15000276
15100277     };
15200278
153<a name="l00281"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html">00281</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> PlaneBoundedVolumeListSceneQuery : <span class="keyword">public</span> RegionSceneQuery
15400282     {
15500283     <span class="keyword">protected</span>:
156<a name="l00284"></a><a class="code" href="classOgre_1_1PlaneBoundedVolumeListSceneQuery.html#Ogre_1_1PlaneBoundedVolumeListSceneQueryp0">00284</a>         <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a> mVolumes;
15700285     <span class="keyword">public</span>:
15800286         PlaneBoundedVolumeListSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
15900287         <span class="keyword">virtual</span> ~PlaneBoundedVolumeListSceneQuery();
16000289         <span class="keywordtype">void</span> setVolumes(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a>&amp; volumes);
16100290
16200292         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a411">PlaneBoundedVolumeList</a>&amp; getVolumes() <span class="keyword">const</span>;
16300293
16400294     };
16500295
16600296
16700297     <span class="comment">/*</span>
16800299 <span class="comment">    class _OgreExport PyramidSceneQuery : public RegionSceneQuery</span>
16900300 <span class="comment">    {</span>
17000301 <span class="comment">    public:</span>
17100302 <span class="comment">        PyramidSceneQuery(SceneManager* mgr);</span>
17200303 <span class="comment">        virtual ~PyramidSceneQuery();</span>
17300304 <span class="comment">    };</span>
17400305 <span class="comment">    */</span>
17500306
176<a name="l00312"></a><a class="code" href="classOgre_1_1RaySceneQueryListener.html">00312</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryListener
17700313     {
17800314     <span class="keyword">public</span>:
179<a name="l00315"></a><a class="code" href="classOgre_1_1RaySceneQueryListener.html#Ogre_1_1RaySceneQueryListenera0">00315</a>         <span class="keyword">virtual</span> ~RaySceneQueryListener() { }
18000322         <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;
18100323
18200330         <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;
18300331
18400332     };
18500333       
186<a name="l00335"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html">00335</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> RaySceneQueryResultEntry
18700336     {
188<a name="l00338"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">00338</a>         <a class="code" href="namespaceOgre.html#a420">Real</a> distance;
189<a name="l00340"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo1">00340</a>         <a class="code" href="classOgre_1_1MovableObject.html">MovableObject</a>* movable;
190<a name="l00342"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo2">00342</a>         <a class="code" href="structOgre_1_1SceneQuery_1_1WorldFragment.html">SceneQuery::WorldFragment</a>* worldFragment;
191<a name="l00344"></a><a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntrya0">00344</a>         <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> RaySceneQueryResultEntry&amp; rhs)<span class="keyword"> const</span>
19200345 <span class="keyword">        </span>{
19300346             <span class="keywordflow">return</span> this-&gt;distance &lt; rhs.<a class="code" href="structOgre_1_1RaySceneQueryResultEntry.html#Ogre_1_1RaySceneQueryResultEntryo0">distance</a>;
19400347         }
19500348
19600349     };
197<a name="l00350"></a><a class="code" href="namespaceOgre.html#a496">00350</a>     <span class="keyword">typedef</span> std::list&lt;RaySceneQueryResultEntry&gt; <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>;
19800351
199<a name="l00353"></a><a class="code" href="classOgre_1_1RaySceneQuery.html">00353</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
20000354     {
20100355     <span class="keyword">protected</span>:
202<a name="l00356"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp0">00356</a>         <a class="code" href="classOgre_1_1Ray.html">Ray</a> mRay;
203<a name="l00357"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp1">00357</a>         <span class="keywordtype">bool</span> mSortByDistance;
204<a name="l00358"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp2">00358</a>         <a class="code" href="namespaceOgre.html#a422">ushort</a> mMaxResults;
205<a name="l00359"></a><a class="code" href="classOgre_1_1RaySceneQuery.html#Ogre_1_1TerrainRaySceneQueryp3">00359</a>         <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>* mLastResult;
20600360
20700361     <span class="keyword">public</span>:
20800362         RaySceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
20900363         <span class="keyword">virtual</span> ~RaySceneQuery();
21000365         <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);
21100367         <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>;
21200386         <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);
21300388         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getSortByDistance(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
21400391         <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>;
21500400         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a496">RaySceneQueryResult</a>&amp; execute(<span class="keywordtype">void</span>);
21600401
21700409         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(RaySceneQueryListener* listener) = 0;
21800410
21900414         <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>;
22000421         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
22100422
22200424         <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);
22300426         <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);
22400427
22500428
22600429
22700430
22800431     };
22900432
230<a name="l00438"></a><a class="code" href="classOgre_1_1IntersectionSceneQueryListener.html">00438</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryListener
23100439     {
23200440     <span class="keyword">public</span>:
233<a name="l00441"></a><a class="code" href="classOgre_1_1IntersectionSceneQueryListener.html#Ogre_1_1IntersectionSceneQueryListenera0">00441</a>         <span class="keyword">virtual</span> ~IntersectionSceneQueryListener() { }
23400448         <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;
23500449
23600456         <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;
23700457
23800458         <span class="comment">/* NB there are no results for world fragments intersecting other world fragments;</span>
23900459 <span class="comment">           it is assumed that world geometry is either static or at least that self-intersections</span>
24000460 <span class="comment">           are irrelevant or dealt with elsewhere (such as the custom scene manager) */</span>
24100461         
24200462     
24300463     };
24400464         
245<a name="l00465"></a><a class="code" href="namespaceOgre.html#a497">00465</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, MovableObject*&gt; <a class="code" href="namespaceOgre.html#a497">SceneQueryMovableObjectPair</a>;
246<a name="l00466"></a><a class="code" href="namespaceOgre.html#a498">00466</a>     <span class="keyword">typedef</span> std::pair&lt;MovableObject*, SceneQuery::WorldFragment*&gt; <a class="code" href="namespaceOgre.html#a498">SceneQueryMovableObjectWorldFragmentPair</a>;
247<a name="l00467"></a><a class="code" href="namespaceOgre.html#a499">00467</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectPair&gt; <a class="code" href="namespaceOgre.html#a499">SceneQueryMovableIntersectionList</a>;
248<a name="l00468"></a><a class="code" href="namespaceOgre.html#a500">00468</a>     <span class="keyword">typedef</span> std::list&lt;SceneQueryMovableObjectWorldFragmentPair&gt; <a class="code" href="namespaceOgre.html#a500">SceneQueryMovableWorldFragmentIntersectionList</a>;
249<a name="l00470"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html">00470</a>     <span class="keyword">struct </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQueryResult
25000471     {
251<a name="l00473"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto0">00473</a>         <a class="code" href="namespaceOgre.html#a499">SceneQueryMovableIntersectionList</a> movables2movables;
252<a name="l00475"></a><a class="code" href="structOgre_1_1IntersectionSceneQueryResult.html#Ogre_1_1IntersectionSceneQueryResulto1">00475</a>         <a class="code" href="namespaceOgre.html#a500">SceneQueryMovableWorldFragmentIntersectionList</a> movables2world;
25300476         
25400477         
25500478
25600479     };
25700480
258<a name="l00489"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html">00489</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> IntersectionSceneQuery
25900490         : <span class="keyword">public</span> SceneQuery, <span class="keyword">public</span> IntersectionSceneQueryListener
26000491     {
26100492     <span class="keyword">protected</span>:
262<a name="l00493"></a><a class="code" href="classOgre_1_1IntersectionSceneQuery.html#Ogre_1_1OctreeIntersectionSceneQueryp0">00493</a>         IntersectionSceneQueryResult* mLastResult;
26300494     <span class="keyword">public</span>:
26400495         IntersectionSceneQuery(<a class="code" href="classOgre_1_1SceneManager.html">SceneManager</a>* mgr);
26500496         <span class="keyword">virtual</span> ~IntersectionSceneQuery();
26600497
26700506         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; execute(<span class="keywordtype">void</span>);
26800507
26900515         <span class="keyword">virtual</span> <span class="keywordtype">void</span> execute(IntersectionSceneQueryListener* listener) = 0;
27000516
27100520         <span class="keyword">virtual</span> IntersectionSceneQueryResult&amp; getLastResults(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
27200527         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearResults(<span class="keywordtype">void</span>);
27300528
27400530         <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);
27500532         <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);
27600533     };
27700534     
27800535
27900536 }
28000537     
28100538
28200539
28300540 <span class="preprocessor">#endif</span>
284</pre></div><hr>
285<p>
286Copyright &copy; 2000-2005 by The OGRE Team<br />
287<!--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/>
288This 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/>
289                <!--/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#">
290                <Work rdf:about="">
291                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
292        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
293                </Work>
294                <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> -->
295
296Last modified Sun Feb 12 12:59:52 2006
297</p>
298</body>
299</html>
Note: See TracBrowser for help on using the repository browser.