28 #ifndef __SceneQuery_H__
29 #define __SceneQuery_H__
42 class SceneQueryListener;
143 virtual void setQueryMask(
uint32 mask);
145 virtual uint32 getQueryMask(
void)
const;
155 virtual void setQueryTypeMask(
uint32 mask);
157 virtual uint32 getQueryTypeMask(
void)
const;
176 {
return &mSupportedWorldFragments;}
261 virtual void clearResults(
void);
295 void setSphere(
const Sphere& sphere);
298 const Sphere& getSphere()
const;
369 return this->distance < rhs.
distance;
388 virtual void setRay(
const Ray& ray);
390 virtual const Ray& getRay(
void)
const;
409 virtual void setSortByDistance(
bool sort,
ushort maxresults = 0);
411 virtual bool getSortByDistance(
void)
const;
414 virtual ushort getMaxResults(
void)
const;
444 virtual void clearResults(
void);
550 virtual void clearResults(
void);
Representation of a ray in space, i.e.
IntersectionSceneQueryResult * mLastResult
Represents part of the world geometry that is a result of a SceneQuery.
float Real
Software floating point type.
std::pair< MovableObject *, MovableObject * > SceneQueryMovableObjectPair
SceneQuery::WorldFragment * worldFragment
The world fragment, or NULL if this is not a fragment result.
Holds the results of an intersection scene query (pair values).
RenderOperation * renderOp
General render operation structure, fallback if nothing else is available.
bool operator<(SharedPtr< T > const &a, SharedPtr< U > const &b)
PlaneBoundedVolumeList mVolumes
A class for performing queries on a scene.
Manages the organisation and rendering of a 'scene' i.e.
Holds the results of a scene query.
This struct allows a single comparison of result data no matter what the type.
list< Plane >::type * planes
Planes bounding a convex region, only applicable for WFT_PLANE_BOUNDED_REGION.
Specialises the SceneQuery class for querying within a sphere.
A 3D box aligned with the x/y/z axes.
SceneQueryMovableIntersectionList movables2movables
List of movable / movable intersections (entities, particle systems etc)
Abstract class defining a movable object in a scene.
MovableObject * movable
The movable, or NULL if this is not a movable result.
Custom geometry as defined by the SceneManager.
vector< PlaneBoundedVolume >::type PlaneBoundedVolumeList
list< SceneQueryMovableObjectWorldFragmentPair >::type SceneQueryMovableWorldFragmentIntersectionList
SceneQueryResultMovableList movables
List of movable objects in the query (entities, particle systems etc)
Return a single intersection point (typically RaySceneQuery only)
virtual ~IntersectionSceneQueryListener()
virtual ~SceneQueryListener()
SceneQueryResultWorldFragmentList worldFragments
List of world fragments.
Alternative listener class for dealing with RaySceneQuery.
Return no world geometry hits at all.
Alternative listener class for dealing with IntersectionSceneQuery.
WorldFragmentType fragmentType
The type of this world fragment.
A sphere primitive, mostly used for bounds checking.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Real distance
Distance along the ray.
list< SceneQueryMovableObjectPair >::type SceneQueryMovableIntersectionList
SceneQueryResult * mLastResult
WorldFragmentType
This type can be used by collaborating applications & SceneManagers to agree on the type of world geo...
list< SceneQuery::WorldFragment * >::type SceneQueryResultWorldFragmentList
Standard 3-dimensional vector.
Vector3 singleIntersection
Single intersection point, only applicable for WFT_SINGLE_INTERSECTION.
set< WorldFragmentType >::type mSupportedWorldFragments
'New' rendering operation using vertex buffers.
Abstract class defining a query which returns single results from a region.
Specialises the SceneQuery class for querying within an axis aligned box.
RaySceneQueryResult mResult
SceneManager * mParentSceneMgr
virtual const set< WorldFragmentType >::type * getSupportedWorldFragmentTypes(void) const
Returns the types of world fragments this query supports.
Specialises the SceneQuery class for querying within a plane-bounded volume.
vector< RaySceneQueryResultEntry >::type RaySceneQueryResult
Separate SceneQuery class to query for pairs of objects which are possibly intersecting one another...
This optional class allows you to receive per-result callbacks from SceneQuery executions instead of ...
void * geometry
Custom geometry block, only applicable for WFT_CUSTOM_GEOMETRY.
std::pair< MovableObject *, SceneQuery::WorldFragment * > SceneQueryMovableObjectWorldFragmentPair
SceneQueryMovableWorldFragmentIntersectionList movables2world
List of movable / world intersections.
Specialises the SceneQuery class for querying along a ray.
WorldFragmentType mWorldFragmentType
Return pointers to convex plane-bounded regions.
list< MovableObject * >::type SceneQueryResultMovableList
virtual ~RaySceneQueryListener()