39 #ifndef HPP_FCL_BV_NODE_H 40 #define HPP_FCL_BV_NODE_H 75 , first_primitive((std::numeric_limits<unsigned int>::max)())
91 return !(*
this == other);
95 inline bool isLeaf()
const {
return first_child < 0; }
108 template<
typename BV>
119 return Base::operator==(other) && bv == other.
bv;
125 return !(*
this == other);
131 return bv.overlap(other.
bv);
137 return bv.overlap(other.
bv, request, sqrDistLowerBound);
143 return bv.distance(other.
bv, P1, P2);
152 static const Matrix3f id3 = Matrix3f::Identity();
157 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
unsigned int first_primitive
The start id the primitive belonging to the current node. The index is referred to the primitive_indi...
Definition: BV_node.h:67
bool overlap(const BVNode &other) const
Check whether two BVNode collide.
Definition: BV_node.h:129
Main namespace.
Definition: AABB.h:43
BV bv
bounding volume storing the geometry
Definition: BV_node.h:114
Eigen::Matrix< FCL_REAL, 3, 3 > Matrix3f
Definition: data_types.h:69
BVNodeBase Base
Definition: BV_node.h:111
Vec3f getCenter() const
Access to the center of the BV.
Definition: BV_node.h:147
int primitiveId() const
Return the primitive index. The index is referred to the original data (i.e. vertices or tri_indices)...
Definition: BV_node.h:98
int first_child
An index for first child node or primitive If the value is positive, it is the index of the first chi...
Definition: BV_node.h:63
bool operator==(const BVNode &other) const
Equality operator.
Definition: BV_node.h:117
request to the collision algorithm
Definition: collision_data.h:209
double FCL_REAL
Definition: data_types.h:66
bool overlap(const BVNode &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const
Check whether two BVNode collide.
Definition: BV_node.h:134
BVNodeBase()
Default constructor.
Definition: BV_node.h:73
const Matrix3f & getOrientation() const
Access to the orientation of the BV.
Definition: BV_node.h:150
FCL_REAL distance(const BVNode &other, Vec3f *P1=NULL, Vec3f *P2=NULL) const
Compute the distance between two BVNode. P1 and P2, if not NULL and the underlying BV supports distan...
Definition: BV_node.h:141
bool operator!=(const BVNodeBase &other) const
Difference operator.
Definition: BV_node.h:89
A class describing a bounding volume node. It includes the tree structure providing in BVNodeBase and...
Definition: BV_node.h:109
int leftChild() const
Return the index of the first child. The index is referred to the bounding volume array (i...
Definition: BV_node.h:101
bool isLeaf() const
Whether current node is a leaf node (i.e. contains a primitive index.
Definition: BV_node.h:95
unsigned int num_primitives
The number of primitives belonging to the current node.
Definition: BV_node.h:70
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
int rightChild() const
Return the index of the second child. The index is referred to the bounding volume array (i...
Definition: BV_node.h:104
bool operator==(const BVNodeBase &other) const
Equality operator.
Definition: BV_node.h:80
bool operator!=(const BVNode &other) const
Difference operator.
Definition: BV_node.h:123
BVNodeBase encodes the tree structure for BVH.
Definition: BV_node.h:57
#define HPP_FCL_DLLAPI
Definition: config.hh:64