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