IteratorBVH Class Reference

#include <IteratorBVH.h>

Inheritance diagram for IteratorBVH:

IteratorSDS Iterator List of all members.

Public Types

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

Public Member Functions

 IteratorBVH (BVH *bvh)
virtual ~IteratorBVH ()
virtual const void * lastExploitedElement (void) const
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)

Protected Member Functions

SceneGraphObject_first_ray_intersection (BVH::Node *)
SceneGraphObject_next_ray_intersection (void)
SceneGraphObject_halfspace_search (void)
SceneGraphObject_area_search (void)
SceneGraphObject_children_search (void)
virtual SceneGraphObject_first_child (void)
virtual SceneGraphObject_next_child (void)

Protected Attributes

std::vector< BVH::Node * > _stack
BVH::Node_pLastUsedChild
BVH::Node_pBottomUpNode
RIAttr * _riAttr
HSAttr * _hsAttr
ARAttr * _arAttr
Traverse _traverse
SDS_pAggregate
bool _iterateTangible

Detailed Description

Definition at line 17 of file IteratorBVH.h.


Member Enumeration Documentation

enum Traverse [inherited]
 

Enumerator:
NONE 
RAY_INTERSECTION 
HALF_SPACE 
AREA 
CHILDREN 

Definition at line 37 of file IteratorSDS.h.


Constructor & Destructor Documentation

IteratorBVH BVH bvh  ) 
 

Definition at line 391 of file IteratorBVH.cc.

References IteratorBVH::_pLastUsedChild.

virtual ~IteratorBVH  )  [inline, virtual]
 

Definition at line 44 of file IteratorBVH.h.


Member Function Documentation

SceneGraphObject * _area_search void   )  [protected]
 

Definition at line 221 of file IteratorBVH.cc.

References IteratorSDS::_arAttr, IteratorBVH::_pLastUsedChild, IteratorBVH::_stack, BVH::Node::bv, BVList::firstItem(), BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, BVList::nextItem(), BVH::Node::rightChild, and Geometry::separation().

Referenced by IteratorBVH::_first_child(), and IteratorBVH::_next_child().

SceneGraphObject * _children_search void   )  [protected]
 

Definition at line 250 of file IteratorBVH.cc.

References IteratorSDS::_pAggregate, IteratorBVH::_pLastUsedChild, BVList::firstItem(), BVH::Node::list, BVList::nextItem(), and BVH::Node::rightChild.

Referenced by IteratorBVH::_first_child(), and IteratorBVH::_next_child().

SceneGraphObject * _first_child void   )  [protected, virtual]
 

Implements IteratorSDS.

Definition at line 265 of file IteratorBVH.cc.

References IteratorSDS::_arAttr, IteratorBVH::_area_search(), IteratorBVH::_children_search(), IteratorBVH::_first_ray_intersection(), IteratorBVH::_halfspace_search(), IteratorSDS::_hsAttr, IteratorSDS::_pAggregate, IteratorBVH::_pBottomUpNode, IteratorBVH::_pLastUsedChild, IteratorSDS::_riAttr, IteratorBVH::_stack, IteratorSDS::_traverse, IteratorSDS::AREA, BVH_UPDATE_STAT, IteratorSDS::CHILDREN, BVList::firstItem(), IteratorSDS::HALF_SPACE, BVH::Node::list, IteratorSDS::RAY_INTERSECTION, and BVH::Node::sibling.

SceneGraphObject * _first_ray_intersection BVH::Node  )  [protected]
 

Definition at line 35 of file IteratorBVH.cc.

References IteratorBVH::_pLastUsedChild, IteratorSDS::_riAttr, IteratorBVH::_stack, BVH::Node::bv, BVH_BACKTRACK, BVH_INC_SUC_TEST, BVH_INC_TEST, ENV_HAVE_INTERFERENCE, ENV_USE_CACHE, ENV_WANT_INTERFERENCE, BVList::firstItem(), BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, Geometry::rayIntersection(), and BVH::Node::rightChild.

Referenced by IteratorBVH::_first_child().

SceneGraphObject * _halfspace_search void   )  [protected]
 

Definition at line 188 of file IteratorBVH.cc.

References IteratorSDS::_hsAttr, IteratorBVH::_pLastUsedChild, IteratorBVH::_stack, BVH::Node::bv, Geometry::extent(), BVList::firstItem(), BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, Interval::max, BVList::nextItem(), and BVH::Node::rightChild.

Referenced by IteratorBVH::_first_child(), and IteratorBVH::_next_child().

SceneGraphObject * _next_child void   )  [protected, virtual]
 

Implements IteratorSDS.

Definition at line 343 of file IteratorBVH.cc.

References IteratorSDS::_arAttr, IteratorBVH::_area_search(), IteratorBVH::_children_search(), IteratorBVH::_halfspace_search(), IteratorSDS::_hsAttr, IteratorBVH::_next_ray_intersection(), IteratorBVH::_pLastUsedChild, IteratorSDS::_riAttr, IteratorSDS::_traverse, IteratorSDS::AREA, BVH_UPDATE_STAT, IteratorSDS::CHILDREN, IteratorSDS::HALF_SPACE, BVH::Node::list, BVList::nextItem(), and IteratorSDS::RAY_INTERSECTION.

SceneGraphObject * _next_ray_intersection void   )  [protected]
 

Definition at line 88 of file IteratorBVH.cc.

References IteratorBVH::_pBottomUpNode, IteratorBVH::_pLastUsedChild, IteratorSDS::_riAttr, IteratorBVH::_stack, BVH::Node::bv, BVH_BACKTRACK, BVH_INC_SUC_TEST, BVH_INC_TEST, ENV_HAVE_INTERFERENCE, ENV_USE_CACHE, ENV_WANT_INTERFERENCE, BVList::firstItem(), BVH::Node::leaf, BVH::Node::leftChild, BVH::Node::list, BVH::Node::parent, Geometry::rayIntersection(), and BVH::Node::rightChild.

Referenced by IteratorBVH::_next_child().

SceneGraphObject * firstChild void   )  [virtual, inherited]
 

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, inherited]
 

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, inherited]
 

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, inherited]
 

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, inherited]
 

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 from IteratorSDS.

Definition at line 46 of file IteratorBVH.h.

SceneGraphObject * nextChild void   )  [virtual, inherited]
 

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, inherited]
 

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, inherited]
 

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, inherited]
 

Definition at line 74 of file IteratorSDS.h.

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

SDS* _pAggregate [protected, inherited]
 

Definition at line 73 of file IteratorSDS.h.

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

BVH::Node* _pBottomUpNode [protected]
 

Definition at line 39 of file IteratorBVH.h.

Referenced by IteratorBVH::_first_child(), and IteratorBVH::_next_ray_intersection().

BVH::Node* _pLastUsedChild [protected]
 

Definition at line 38 of file IteratorBVH.h.

Referenced by IteratorBVH::_area_search(), IteratorBVH::_children_search(), IteratorBVH::_first_child(), IteratorBVH::_first_ray_intersection(), IteratorBVH::_halfspace_search(), IteratorBVH::_next_child(), IteratorBVH::_next_ray_intersection(), and IteratorBVH::IteratorBVH().

RIAttr* _riAttr [protected, inherited]
 

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().

std::vector<BVH::Node*> _stack [protected]
 

Definition at line 25 of file IteratorBVH.h.

Referenced by IteratorBVH::_area_search(), IteratorBVH::_first_child(), IteratorBVH::_first_ray_intersection(), IteratorBVH::_halfspace_search(), and IteratorBVH::_next_ray_intersection().

Traverse _traverse [protected, inherited]
 

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