| VRS - The Virtual Rendering System |
| version 3.3 |
#include <vrs/rayrequest.h>

Public Member Functions | |
| VRS_TYPEINFO (RayRequest, TechniqueProcessor) | |
| RayRequest (RayRequestTechnique::RQMode mode=RayRequestTechnique::All, Filter *filter=NULL, const Ray &=Ray(), RayRequestTechnique::RQType rayType=RayRequestTechnique::Clip) | |
| void | setRay (const Ray &ray, RayRequestTechnique::RQType rayType=RayRequestTechnique::Clip) |
| Ray | getRay () const |
| void | setMode (RayRequestTechnique::RQMode m) |
| RayRequestTechnique::RQMode | getMode () const |
| int | results () const |
| IntersectionInfo * | result (int i=0) const |
| void | clear () |
| virtual const Handler * | getNativeHandler (Engine *, const ID &) const |
| virtual bool | handleNatively (Engine *, const Shape *, const Handler *) |
Static Public Member Functions | |
| static SO< FilterTag > | disableRayIntersectionTag () |
| static void | pushHint (int hint) |
| static void | popHint () |
| static bool | hasHint () |
| static int | getHint () |
Protected Member Functions | |
| virtual void | pushStandardTechniques (Engine *) |
| virtual void | popStandardTechniques (Engine *) |
| virtual SO< Filter > | getTechniqueFilter () const |
| VRS::RayRequest::RayRequest | ( | RayRequestTechnique::RQMode | mode = RayRequestTechnique::All, |
|
| Filter * | filter = NULL, |
|||
| const Ray & | = Ray(), |
|||
| RayRequestTechnique::RQType | rayType = RayRequestTechnique::Clip | |||
| ) |
| VRS::RayRequest::VRS_TYPEINFO | ( | RayRequest | , | |
| TechniqueProcessor | ||||
| ) |
| void VRS::RayRequest::setRay | ( | const Ray & | ray, | |
| RayRequestTechnique::RQType | rayType = RayRequestTechnique::Clip | |||
| ) | [inline] |
| Ray VRS::RayRequest::getRay | ( | ) | const [inline] |
The ray to be intersected can be specified in clip, object or world coordinates. The ray is transformed to object coordinates when applied to a shape, so the fastest way is to specify the ray in object coordinates.
| void VRS::RayRequest::setMode | ( | RayRequestTechnique::RQMode | m | ) | [inline] |
| RayRequestTechnique::RQMode VRS::RayRequest::getMode | ( | ) | const [inline] |
Specifies the request mode, one of All, Nearest, Furthest or DoNothing.
| int VRS::RayRequest::results | ( | ) | const [inline] |
| IntersectionInfo * VRS::RayRequest::result | ( | int | i = 0 |
) | const [inline] |
| void VRS::RayRequest::clear | ( | void | ) | [inline] |
'results' returns the number of results achieved, i.e. the number of intersections with specified shapes in the specified mode. The result list is cleared when the engine starts.
determines whether there is a rayintersector for the shape of type ID, in case it returns the ray intersector.
Implements VRS::TechniqueProcessor.
| virtual bool VRS::RayRequest::handleNatively | ( | Engine * | , | |
| const Shape * | , | |||
| const Handler * | ||||
| ) | [virtual] |
evaluate the shape using the rayintersector returned by haveNativeHandler.
Implements VRS::TechniqueProcessor.
| static void VRS::RayRequest::pushHint | ( | int | hint | ) | [static] |
| static void VRS::RayRequest::popHint | ( | ) | [static] |
| static bool VRS::RayRequest::hasHint | ( | ) | [static] |
| static int VRS::RayRequest::getHint | ( | ) | [static] |
| virtual void VRS::RayRequest::pushStandardTechniques | ( | Engine * | ) | [protected, virtual] |
Meant to be overwriten by subclasses. The TechniqueProcessor itself pushes a MainTechnique and a PosttraversalTechnique.
Reimplemented from VRS::TechniqueProcessor.
| virtual void VRS::RayRequest::popStandardTechniques | ( | Engine * | ) | [protected, virtual] |
Meant to be overwriten by subclasses. Techniques pushed in "pushStandardTechniques" should be popped here.
Reimplemented from VRS::TechniqueProcessor.
Reimplemented from VRS::TechniqueProcessor.