IteratorSDS Class Reference

#include <IteratorSDS.h>

Inheritance diagram for IteratorSDS:

Iterator IteratorBVH IteratorHeap List of all members.

Public Types

enum  Traverse {
  NONE, RAY_INTERSECTION, HALF_SPACE, AREA,
  CHILDREN
}

Public Member Functions

 IteratorSDS (SDS *)
virtual ~IteratorSDS ()
virtual void initRayIntersection (const Vector3 &o, const Vector3 &d, bool clearCache, float distLimit=MAXFLOAT, const void *parentElement=NULL)
virtual void initHalfSpaceSearch (const Vector3 &, const Vector3 &)
virtual void initAreaSearch (Geometry *)
virtual void initChildrenSearch (void)
virtual SceneGraphObjectfirstChild (void)
virtual SceneGraphObjectnextChild (void)
virtual const void * lastExploitedElement (void) const

Protected Member Functions

virtual SceneGraphObject_first_child (void)=0
virtual SceneGraphObject_next_child (void)=0

Protected Attributes

RIAttr_riAttr
HSAttr_hsAttr
ARAttr_arAttr
Traverse _traverse
SDS_pAggregate
bool _iterateTangible

Classes

struct  ARAttr
struct  HSAttr
struct  RIAttr

Detailed Description

Definition at line 35 of file IteratorSDS.h.


Member Enumeration Documentation

enum Traverse
 

Enumerator:
NONE 
RAY_INTERSECTION 
HALF_SPACE 
AREA 
CHILDREN 

Definition at line 37 of file IteratorSDS.h.


Constructor & Destructor Documentation

IteratorSDS SDS  ) 
 

Definition at line 5 of file IteratorSDS.cc.

References IteratorSDS::_arAttr, IteratorSDS::_hsAttr, IteratorSDS::_pAggregate, IteratorSDS::_riAttr, IteratorSDS::_traverse, and IteratorSDS::NONE.

~IteratorSDS  )  [virtual]
 

Definition at line 15 of file IteratorSDS.cc.

References IteratorSDS::_arAttr, IteratorSDS::_hsAttr, and IteratorSDS::_riAttr.


Member Function Documentation

virtual SceneGraphObject* _first_child void   )  [protected, pure virtual]
 

Implemented in IteratorBVH, and IteratorHeap.

Referenced by IteratorSDS::firstChild(), and IteratorSDS::nextChild().

virtual SceneGraphObject* _next_child void   )  [protected, pure virtual]
 

Implemented in IteratorBVH, and IteratorHeap.

Referenced by IteratorSDS::nextChild().

SceneGraphObject * firstChild void   )  [virtual]
 

Implements Iterator.

Definition at line 67 of file IteratorSDS.cc.

References IteratorSDS::_first_child(), SDS::_intangibleChildren, IteratorSDS::_iterateTangible, IteratorSDS::_pAggregate, IteratorSDS::_traverse, IteratorSDS::CHILDREN, and List::firstItem().

Referenced by Surface::_duplicate_attributes(), RayIntExplorer::_explore(), ObjsAheadExplorer::_explore(), ObjsInAreaExplorer::_iterate(), ObjsExplorer::_iterate(), Explorer::_iterate(), Surface::_mesh(), Surface::_rotate(), Surface::_rotateX(), Surface::_rotateY(), Surface::_rotateZ(), Surface::_scale(), Surface::firstPlane(), OSGAdapter::getVertices(), Surface::numEdges(), Surface::randomDirection(), Surface::randomSample(), and Surface::rayIntersection().

void initAreaSearch Geometry  )  [virtual]
 

Definition at line 55 of file IteratorSDS.cc.

References IteratorSDS::_arAttr, IteratorSDS::_traverse, IteratorSDS::AREA, and IteratorSDS::ARAttr::area.

Referenced by ObjsInAreaExplorer::_iterate().

void initChildrenSearch void   )  [virtual]
 

Definition at line 62 of file IteratorSDS.cc.

References IteratorSDS::_traverse, and IteratorSDS::CHILDREN.

Referenced by Surface::_duplicate_attributes(), ObjsExplorer::_iterate(), Explorer::_iterate(), Surface::_mesh(), Surface::_rotate(), Surface::_rotateX(), Surface::_rotateY(), Surface::_rotateZ(), Surface::_scale(), Surface::firstPlane(), OSGAdapter::getVertices(), Surface::numEdges(), Surface::randomDirection(), and Surface::randomSample().

void initHalfSpaceSearch const Vector3 ,
const Vector3
[virtual]
 

Definition at line 43 of file IteratorSDS.cc.

References IteratorSDS::_hsAttr, IteratorSDS::_traverse, IteratorSDS::HSAttr::direction, IteratorSDS::HALF_SPACE, and IteratorSDS::HSAttr::origin.

Referenced by ObjsAheadExplorer::_explore().

void initRayIntersection const Vector3 o,
const Vector3 d,
bool  clearCache,
float  distLimit = MAXFLOAT,
const void *  parentElement = NULL
[virtual]
 

Definition at line 22 of file IteratorSDS.cc.

References IteratorSDS::_riAttr, IteratorSDS::_traverse, IteratorSDS::RIAttr::direction, IteratorSDS::RIAttr::distLimit, IteratorSDS::RIAttr::iEnv, IteratorSDS::RIAttr::origin, IteratorSDS::RIAttr::parentElement, PointEnv::pCache, and IteratorSDS::RAY_INTERSECTION.

Referenced by ShadowExplorer::_explore(), RayIntExplorer::_explore(), and Surface::rayIntersection().

virtual const void* lastExploitedElement void   )  const [inline, virtual]
 

Reimplemented in IteratorBVH.

Definition at line 118 of file IteratorSDS.h.

Referenced by Surface::rayIntersection().

SceneGraphObject * nextChild void   )  [virtual]
 

Implements Iterator.

Definition at line 84 of file IteratorSDS.cc.

References IteratorSDS::_first_child(), SDS::_intangibleChildren, IteratorSDS::_iterateTangible, IteratorSDS::_next_child(), IteratorSDS::_pAggregate, IteratorSDS::_traverse, IteratorSDS::CHILDREN, and List::nextItem().

Referenced by Surface::_duplicate_attributes(), RayIntExplorer::_explore(), ObjsAheadExplorer::_explore(), ObjsInAreaExplorer::_iterate(), ObjsExplorer::_iterate(), Explorer::_iterate(), Surface::_mesh(), Surface::_rotate(), Surface::_rotateX(), Surface::_rotateY(), Surface::_rotateZ(), Surface::_scale(), OSGAdapter::getVertices(), Surface::nextPlane(), Surface::numEdges(), Surface::randomDirection(), Surface::randomSample(), and Surface::rayIntersection().


Member Data Documentation

ARAttr* _arAttr [protected]
 

Definition at line 71 of file IteratorSDS.h.

Referenced by IteratorBVH::_area_search(), IteratorBVH::_first_child(), IteratorBVH::_next_child(), IteratorSDS::initAreaSearch(), IteratorSDS::IteratorSDS(), and IteratorSDS::~IteratorSDS().

HSAttr* _hsAttr [protected]
 

Definition at line 70 of file IteratorSDS.h.

Referenced by IteratorBVH::_first_child(), IteratorBVH::_halfspace_search(), IteratorBVH::_next_child(), IteratorSDS::initHalfSpaceSearch(), IteratorSDS::IteratorSDS(), and IteratorSDS::~IteratorSDS().

bool _iterateTangible [protected]
 

Definition at line 74 of file IteratorSDS.h.

Referenced by IteratorSDS::firstChild(), and IteratorSDS::nextChild().

SDS* _pAggregate [protected]
 

Definition at line 73 of file IteratorSDS.h.

Referenced by IteratorBVH::_children_search(), IteratorBVH::_first_child(), IteratorSDS::firstChild(), IteratorSDS::IteratorSDS(), and IteratorSDS::nextChild().

RIAttr* _riAttr [protected]
 

Definition at line 69 of file IteratorSDS.h.

Referenced by IteratorBVH::_first_child(), IteratorBVH::_first_ray_intersection(), IteratorBVH::_next_child(), IteratorBVH::_next_ray_intersection(), IteratorSDS::initRayIntersection(), IteratorSDS::IteratorSDS(), and IteratorSDS::~IteratorSDS().

Traverse _traverse [protected]
 

Definition at line 72 of file IteratorSDS.h.

Referenced by IteratorBVH::_first_child(), IteratorBVH::_next_child(), IteratorSDS::firstChild(), IteratorSDS::initAreaSearch(), IteratorSDS::initChildrenSearch(), IteratorSDS::initHalfSpaceSearch(), IteratorSDS::initRayIntersection(), IteratorSDS::IteratorSDS(), and IteratorSDS::nextChild().


The documentation for this class was generated from the following files:
Generated on Wed Jun 28 12:24:34 2006 for esg by  doxygen 1.4.6