version 3.3

VRS::RayRequest Class Reference

#include <vrs/rayrequest.h>

Inheritance diagram for VRS::RayRequest:

VRS::TechniqueProcessor VRS::SharedObj VRS::Visitable

List of all members.

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
IntersectionInforesult (int i=0) const
void clear ()
virtual const HandlergetNativeHandler (Engine *, const ID &) const
virtual bool handleNatively (Engine *, const Shape *, const Handler *)

Static Public Member Functions

static SO< FilterTagdisableRayIntersectionTag ()
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< FiltergetTechniqueFilter () const


Constructor & Destructor Documentation

VRS::RayRequest::RayRequest ( RayRequestTechnique::RQMode  mode = RayRequestTechnique::All,
Filter filter = NULL,
const Ray = Ray(),
RayRequestTechnique::RQType  rayType = RayRequestTechnique::Clip 
)


Member Function Documentation

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.

static SO<FilterTag> VRS::RayRequest::disableRayIntersectionTag (  )  [static]

virtual const Handler* VRS::RayRequest::getNativeHandler ( Engine ,
const ID  
) const [virtual]

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.

virtual SO<Filter> VRS::RayRequest::getTechniqueFilter (  )  const [protected, virtual]

Reimplemented from VRS::TechniqueProcessor.


The documentation for this class was generated from the following file:

Generated on Tue May 22 06:00:27 2012 by Doxygen 1.5.6
© 2001-2010 Hasso-Plattner-Institut | Impressum | Contact