38#ifndef HPP_FCL_TRAVERSAL_NODE_BASE_H
39#define HPP_FCL_TRAVERSAL_NODE_BASE_H
54class TraversalNodeBase
57 TraversalNodeBase () : enable_statistics(false) {}
59 virtual ~TraversalNodeBase() {}
61 virtual void preprocess() {}
63 virtual void postprocess() {}
66 virtual bool isFirstNodeLeaf(
unsigned int )
const {
return true; }
69 virtual bool isSecondNodeLeaf(
unsigned int )
const {
return true; }
72 virtual bool firstOverSecond(
unsigned int ,
unsigned int )
const {
return true; }
75 virtual int getFirstLeftChild(
unsigned int b)
const {
return (
int)b; }
78 virtual int getFirstRightChild(
unsigned int b)
const {
return (
int)b; }
81 virtual int getSecondLeftChild(
unsigned int b)
const {
return (
int)b; }
84 virtual int getSecondRightChild(
unsigned int b)
const {
return (
int)b; }
87 void enableStatistics(
bool enable) { enable_statistics = enable; }
96 bool enable_statistics;
104class CollisionTraversalNodeBase :
public TraversalNodeBase
107 CollisionTraversalNodeBase (
const CollisionRequest& request_) :
108 request (request_), result(NULL) {}
110 virtual ~CollisionTraversalNodeBase() {}
113 virtual bool BVDisjoints(
unsigned int b1,
unsigned int b2)
const = 0;
119 virtual bool BVDisjoints(
unsigned int b1,
unsigned int b2, FCL_REAL& sqrDistLowerBound)
const = 0;
122 virtual void leafCollides(
unsigned int ,
unsigned int , FCL_REAL& )
const = 0;
125 bool canStop()
const {
return this->request.isSatisfied(*(this->result)); }
128 const CollisionRequest& request;
131 CollisionResult* result;
142class DistanceTraversalNodeBase :
public TraversalNodeBase
145 DistanceTraversalNodeBase() : result(NULL) {}
147 virtual ~DistanceTraversalNodeBase() {}
152 virtual FCL_REAL BVDistanceLowerBound(
unsigned int ,
unsigned int )
const
154 return (std::numeric_limits<FCL_REAL>::max)();
158 virtual void leafComputeDistance(
unsigned int b1,
unsigned int b2)
const = 0;
161 virtual bool canStop(FCL_REAL )
const
165 DistanceRequest request;
168 DistanceResult* result;
double FCL_REAL
Definition: data_types.h:66
Main namespace.
Definition: AABB.h:44