Commit dc6065d0 authored by Lucile Remigy's avatar Lucile Remigy
Browse files

delete BVFitterBase and BVSplitterBase, come back of BVTesting and leafTesting

parent 7f436317
......@@ -127,14 +127,6 @@ SET(${PROJECT_NAME}_HEADERS
include/hpp/fcl/math/vec_3f.h
include/hpp/fcl/math/types.h
include/hpp/fcl/math/transform.h
include/hpp/fcl/traversal/details/traversal.h
include/hpp/fcl/traversal/traversal_node_shapes.h
include/hpp/fcl/traversal/traversal_node_setup.h
include/hpp/fcl/traversal/traversal_recurse.h
include/hpp/fcl/traversal/traversal_node_octree.h
include/hpp/fcl/traversal/traversal_node_bvhs.h
include/hpp/fcl/traversal/traversal_node_bvh_shape.h
include/hpp/fcl/traversal/traversal_node_base.h
include/hpp/fcl/data_types.h
include/hpp/fcl/BVH/BV_splitter.h
include/hpp/fcl/BVH/BVH_internal.h
......
......@@ -77,10 +77,10 @@ public:
BVHBuildState build_state;
/// @brief Split rule to split one BV node into two children
boost::shared_ptr<BVSplitterBase<BV> > bv_splitter;
boost::shared_ptr<BVSplitter<BV> > bv_splitter;
/// @brief Fitting rule to fit a BV node to a set of geometry primitives
boost::shared_ptr<BVFitterBase<BV> > bv_fitter;
boost::shared_ptr<BVFitterTpl<BV> > bv_fitter;
/// @brief Model type described by the instance
BVHModelType getModelType() const
......
......@@ -74,27 +74,9 @@ void fit<OBBRSS>(Vec3f* ps, int n, OBBRSS& bv);
template<>
void fit<AABB>(Vec3f* ps, int n, AABB& bv);
/// @brief Interface for fitting a bv given the triangles or points inside it.
template<typename BV>
class BVFitterBase
{
public:
/// @brief Set the primitives to be processed by the fitter
virtual void set(Vec3f* vertices_, Triangle* tri_indices_, BVHModelType type_) = 0;
/// @brief Set the primitives to be processed by the fitter, for deformable mesh.
virtual void set(Vec3f* vertices_, Vec3f* prev_vertices_, Triangle* tri_indices_, BVHModelType type_) = 0;
/// @brief Compute the fitting BV
virtual BV fit(unsigned int* primitive_indices, int num_primitives) = 0;
/// @brief clear the temporary data generated.
virtual void clear() = 0;
};
/// @brief The class for the default algorithm fitting a bounding volume to a set of points
template<typename BV>
class BVFitterTpl : public BVFitterBase<BV>
class BVFitterTpl
{
public:
/// @brief default deconstructor
......@@ -118,6 +100,9 @@ public:
type = type_;
}
/// @brief Compute the fitting BV
virtual BV fit(unsigned int* primitive_indices, int num_primitives) = 0;
/// @brief Clear the geometry primitive data
void clear()
{
......
......@@ -49,32 +49,13 @@ namespace hpp
namespace fcl
{
/// @brief Base interface for BV splitting algorithm
template<typename BV>
class BVSplitterBase
{
public:
/// @brief Set the geometry data needed by the split rule
virtual void set(Vec3f* vertices_, Triangle* tri_indices_, BVHModelType type_) = 0;
/// @brief Compute the split rule according to a subset of geometry and the corresponding BV node
virtual void computeRule(const BV& bv, unsigned int* primitive_indices, int num_primitives) = 0;
/// @brief Apply the split rule on a given point
virtual bool apply(const Vec3f& q) const = 0;
/// @brief Clear the geometry data set before
virtual void clear() = 0;
};
/// @brief Three types of split algorithms are provided in FCL as default
enum SplitMethodType {SPLIT_METHOD_MEAN, SPLIT_METHOD_MEDIAN, SPLIT_METHOD_BV_CENTER};
/// @brief A class describing the split rule that splits each BV node
template<typename BV>
class BVSplitter : public BVSplitterBase<BV>
class BVSplitter
{
public:
......
This diff is collapsed.
......@@ -37,7 +37,7 @@
#include <../src/collision_node.h>
#include <hpp/fcl/traversal/traversal_recurse.h>
#include "traversal/traversal_recurse.h"
namespace hpp
{
......
......@@ -39,8 +39,8 @@
#ifndef HPP_FCL_COLLISION_NODE_H
#define HPP_FCL_COLLISION_NODE_H
#include <hpp/fcl/traversal/traversal_node_base.h>
#include <hpp/fcl/traversal/traversal_node_bvhs.h>
#include "traversal/traversal_node_base.h"
#include "traversal/traversal_node_bvhs.h"
#include <hpp/fcl/BVH/BVH_front.h>
......
......@@ -38,7 +38,7 @@
#include <hpp/fcl/distance_func_matrix.h>
#include <../src/collision_node.h>
#include <hpp/fcl/traversal/traversal_node_setup.h>
#include "traversal/traversal_node_setup.h"
#include <hpp/fcl/narrowphase/narrowphase.h>
namespace hpp
......
......@@ -38,7 +38,7 @@
#ifndef HPP_FCL_SRC_NARROWPHASE_DETAILS_H
# define HPP_FCL_SRC_NARROWPHASE_DETAILS_H
#include <hpp/fcl/traversal/traversal_node_setup.h>
#include "../traversal/traversal_node_setup.h"
#include <hpp/fcl/narrowphase/narrowphase.h>
namespace hpp
......
......@@ -36,7 +36,7 @@
/** \author Jia Pan */
#include <hpp/fcl/traversal/traversal_node_base.h>
#include "traversal_node_base.h"
#include <limits>
namespace hpp
......@@ -97,7 +97,7 @@ DistanceTraversalNodeBase::~DistanceTraversalNodeBase()
{
}
FCL_REAL DistanceTraversalNodeBase::BVDisjoints(int /*b1*/, int /*b2*/) const
FCL_REAL DistanceTraversalNodeBase::BVTesting(int /*b1*/, int /*b2*/) const
{
return std::numeric_limits<FCL_REAL>::max();
}
......
......@@ -139,10 +139,10 @@ public:
/// @brief BV test between b1 and b2
/// \return a lower bound of the distance between the two BV.
/// \note except for OBB, this method returns the distance.
virtual FCL_REAL BVDisjoints(int b1, int b2) const;
virtual FCL_REAL BVTesting(int b1, int b2) const;
/// @brief Leaf test between node b1 and b2, if they are both leafs
virtual void leafCollides(int b1, int b2) const = 0;
virtual void leafTesting(int b1, int b2) const = 0;
/// @brief Check whether the traversal can stop
virtual bool canStop(FCL_REAL c) const;
......
......@@ -42,8 +42,8 @@
#include <hpp/fcl/collision_data.h>
#include <hpp/fcl/shape/geometric_shapes.h>
#include <hpp/fcl/shape/geometric_shapes_utility.h>
#include <hpp/fcl/traversal/traversal_node_base.h>
#include <hpp/fcl/traversal/details/traversal.h>
#include "traversal_node_base.h"
#include "details/traversal.h"
#include <hpp/fcl/BVH/BVH_model.h>
......@@ -166,7 +166,7 @@ public:
}
/// @brief BV culling test in one BVTT node
bool BVDisjoints(int b1, int /*b2*/) const
bool BVTesting(int b1, int /*b2*/) const
{
if(this->enable_statistics) this->num_bv_tests++;
if (RTIsIdentity)
......@@ -180,7 +180,7 @@ public:
/// \retval sqrDistLowerBound square of a lower bound of the minimal
/// distance between bounding volumes.
/// @brief BV culling test in one BVTT node
bool BVDisjoints(int b1, int /*b2*/, FCL_REAL& sqrDistLowerBound) const
bool BVTesting(int b1, int /*b2*/, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_bv_tests++;
bool res;
......@@ -195,7 +195,7 @@ public:
}
/// @brief Intersection testing between leaves (one triangle and one shape)
void leafCollides(int b1, int /*b2*/, FCL_REAL& sqrDistLowerBound) const
void leafTesting(int b1, int /*b2*/, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_leaf_tests++;
const BVNode<BV>& node = this->model1->getBV(b1);
......@@ -327,7 +327,7 @@ public:
/// BV test between b1 and b2
/// \param b2 Bounding volumes to test,
bool BVDisjoints(int /*b1*/, int b2) const
bool BVTesting(int /*b1*/, int b2) const
{
if(this->enable_statistics) this->num_bv_tests++;
if (RTIsIdentity)
......@@ -340,7 +340,7 @@ public:
/// \param b2 Bounding volumes to test,
/// \retval sqrDistLowerBound square of a lower bound of the minimal
/// distance between bounding volumes.
bool BVDisjoints(int /*b1*/, int b2, FCL_REAL& sqrDistLowerBound) const
bool BVTesting(int /*b1*/, int b2, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_bv_tests++;
bool res;
......@@ -355,7 +355,7 @@ public:
}
/// @brief Intersection testing between leaves (one shape and one triangle)
void leafCollides(int /*b1*/, int b2, FCL_REAL& sqrDistLowerBound) const
void leafTesting(int /*b1*/, int b2, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_leaf_tests++;
const BVNode<BV>& node = this->model2->getBV(b2);
......@@ -493,7 +493,7 @@ public:
}
/// @brief BV culling test in one BVTT node
FCL_REAL BVDisjoints(int b1, int /*b2*/) const
FCL_REAL BVTesting(int b1, int /*b2*/) const
{
return model1->getBV(b1).bv.distance(model2_bv);
}
......@@ -541,7 +541,7 @@ public:
}
/// @brief BV culling test in one BVTT node
FCL_REAL BVDisjoints(int b1, int b2) const
FCL_REAL BVTesting(int b1, int b2) const
{
return model1_bv.distance(model2->getBV(b2).bv);
}
......@@ -573,7 +573,7 @@ public:
}
/// @brief Distance testing between leaves (one triangle and one shape)
void leafCollides(int b1, int /*b2*/) const
void leafTesting(int b1, int /*b2*/) const
{
if(this->enable_statistics) this->num_leaf_tests++;
......@@ -700,13 +700,13 @@ public:
{
}
FCL_REAL BVDisjoints(int b1, int /*b2*/) const
FCL_REAL BVTesting(int b1, int /*b2*/) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf1.getRotation(), this->tf1.getTranslation(), this->model2_bv, this->model1->getBV(b1).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b1, b2, this->model1, *(this->model2), this->vertices, this->tri_indices,
this->tf1, this->tf2, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......@@ -732,13 +732,13 @@ public:
{
}
FCL_REAL BVDisjoints(int b1, int /*b2*/) const
FCL_REAL BVTesting(int b1, int /*b2*/) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf1.getRotation(), this->tf1.getTranslation(), this->model2_bv, this->model1->getBV(b1).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b1, b2, this->model1, *(this->model2), this->vertices, this->tri_indices,
this->tf1, this->tf2, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......@@ -746,11 +746,11 @@ public:
};
template<typename S, typename GJKSolver>
class MeshShapeDistanceTraversalNodeOBBRSS : public MeshShapeDistanceTraversalNode<OBBRSS, S, GJKSolver>
template<typename S, typename NarrowPhaseSolver>
class MeshShapeDistanceTraversalNodeOBBRSS : public MeshShapeDistanceTraversalNode<OBBRSS, S, NarrowPhaseSolver>
{
public:
MeshShapeDistanceTraversalNodeOBBRSS() : MeshShapeDistanceTraversalNode<OBBRSS, S, GJKSolver>()
MeshShapeDistanceTraversalNodeOBBRSS() : MeshShapeDistanceTraversalNode<OBBRSS, S, NarrowPhaseSolver>()
{
}
......@@ -765,13 +765,13 @@ public:
}
FCL_REAL BVDisjoints(int b1, int /*b2*/) const
FCL_REAL BVTesting(int b1, int /*b2*/) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf1.getRotation(), this->tf1.getTranslation(), this->model2_bv, this->model1->getBV(b1).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b1, b2, this->model1, *(this->model2), this->vertices, this->tri_indices,
this->tf1, this->tf2, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......@@ -780,7 +780,7 @@ public:
};
/// @brief Traversal node for distance between shape and mesh
template<typename S, typename BV, typename GJKSolver>
template<typename S, typename BV, typename NarrowPhaseSolver>
class ShapeMeshDistanceTraversalNode : public ShapeBVHDistanceTraversalNode<S, BV>
{
public:
......@@ -796,7 +796,7 @@ public:
}
/// @brief Distance testing between leaves (one shape and one triangle)
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_leaf_tests++;
......@@ -835,14 +835,14 @@ public:
FCL_REAL rel_err;
FCL_REAL abs_err;
const GJKSolver* nsolver;
const NarrowPhaseSolver* nsolver;
};
template<typename S, typename GJKSolver>
class ShapeMeshDistanceTraversalNodeRSS : public ShapeMeshDistanceTraversalNode<S, RSS, GJKSolver>
template<typename S, typename NarrowPhaseSolver>
class ShapeMeshDistanceTraversalNodeRSS : public ShapeMeshDistanceTraversalNode<S, RSS, NarrowPhaseSolver>
{
public:
ShapeMeshDistanceTraversalNodeRSS() : ShapeMeshDistanceTraversalNode<S, RSS, GJKSolver>()
ShapeMeshDistanceTraversalNodeRSS() : ShapeMeshDistanceTraversalNode<S, RSS, NarrowPhaseSolver>()
{
}
......@@ -856,13 +856,13 @@ public:
{
}
FCL_REAL BVDisjoints(int b1, int b2) const
FCL_REAL BVTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf2.getRotation(), this->tf2.getTranslation(), this->model1_bv, this->model2->getBV(b2).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b2, b1, this->model2, *(this->model1), this->vertices, this->tri_indices,
this->tf2, this->tf1, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......@@ -870,11 +870,11 @@ public:
};
template<typename S, typename GJKSolver>
class ShapeMeshDistanceTraversalNodekIOS : public ShapeMeshDistanceTraversalNode<S, kIOS, GJKSolver>
template<typename S, typename NarrowPhaseSolver>
class ShapeMeshDistanceTraversalNodekIOS : public ShapeMeshDistanceTraversalNode<S, kIOS, NarrowPhaseSolver>
{
public:
ShapeMeshDistanceTraversalNodekIOS() : ShapeMeshDistanceTraversalNode<S, kIOS, GJKSolver>()
ShapeMeshDistanceTraversalNodekIOS() : ShapeMeshDistanceTraversalNode<S, kIOS, NarrowPhaseSolver>()
{
}
......@@ -888,13 +888,13 @@ public:
{
}
FCL_REAL BVDisjoints(int b1, int b2) const
FCL_REAL BVTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf2.getRotation(), this->tf2.getTranslation(), this->model1_bv, this->model2->getBV(b2).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b2, b1, this->model2, *(this->model1), this->vertices, this->tri_indices,
this->tf2, this->tf1, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......@@ -902,11 +902,11 @@ public:
};
template<typename S, typename GJKSolver>
class ShapeMeshDistanceTraversalNodeOBBRSS : public ShapeMeshDistanceTraversalNode<S, OBBRSS, GJKSolver>
template<typename S, typename NarrowPhaseSolver>
class ShapeMeshDistanceTraversalNodeOBBRSS : public ShapeMeshDistanceTraversalNode<S, OBBRSS, NarrowPhaseSolver>
{
public:
ShapeMeshDistanceTraversalNodeOBBRSS() : ShapeMeshDistanceTraversalNode<S, OBBRSS, GJKSolver>()
ShapeMeshDistanceTraversalNodeOBBRSS() : ShapeMeshDistanceTraversalNode<S, OBBRSS, NarrowPhaseSolver>()
{
}
......@@ -920,13 +920,13 @@ public:
{
}
FCL_REAL BVDisjoints(int b1, int b2) const
FCL_REAL BVTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_bv_tests++;
return distance(this->tf2.getRotation(), this->tf2.getTranslation(), this->model1_bv, this->model2->getBV(b2).bv);
}
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
details::meshShapeDistanceOrientedNodeLeafTesting(b2, b1, this->model2, *(this->model1), this->vertices, this->tri_indices,
this->tf2, this->tf1, this->nsolver, this->enable_statistics, this->num_leaf_tests, this->request, *(this->result));
......
......@@ -36,7 +36,7 @@
/** \author Jia Pan */
#include <hpp/fcl/traversal/traversal_node_bvhs.h>
#include "traversal_node_bvhs.h"
namespace hpp
{
......@@ -46,7 +46,7 @@ namespace fcl
namespace details
{
template<typename BV>
static inline void meshDistanceOrientedNodeLeafTesting(int b1, int b2,
static inline void meshDistanceOrientedNodeleafTesting(int b1, int b2,
const BVHModel<BV>* model1, const BVHModel<BV>* model2,
Vec3f* vertices1, Vec3f* vertices2,
Triangle* tri_indices1, Triangle* tri_indices2,
......@@ -152,7 +152,7 @@ void MeshDistanceTraversalNodeRSS::postprocess()
details::distancePostprocessOrientedNode(model1, model2, tf1, request, *result);
}
FCL_REAL MeshDistanceTraversalNodeRSS::BVDisjoints(int b1, int b2) const
FCL_REAL MeshDistanceTraversalNodeRSS::BVTesting(int b1, int b2) const
{
if(enable_statistics) num_bv_tests++;
return distance(R, T, model1->getBV(b1).bv, model2->getBV(b2).bv);
......@@ -160,7 +160,7 @@ FCL_REAL MeshDistanceTraversalNodeRSS::BVDisjoints(int b1, int b2) const
void MeshDistanceTraversalNodeRSS::leafTesting(int b1, int b2) const
{
details::meshDistanceOrientedNodeLeafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
details::meshDistanceOrientedNodeleafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
R, T, enable_statistics, num_leaf_tests,
request, *result);
}
......@@ -180,7 +180,7 @@ void MeshDistanceTraversalNodekIOS::postprocess()
details::distancePostprocessOrientedNode(model1, model2, tf1, request, *result);
}
FCL_REAL MeshDistanceTraversalNodekIOS::BVDisjoints(int b1, int b2) const
FCL_REAL MeshDistanceTraversalNodekIOS::BVTesting(int b1, int b2) const
{
if(enable_statistics) num_bv_tests++;
return distance(R, T, model1->getBV(b1).bv, model2->getBV(b2).bv);
......@@ -188,7 +188,7 @@ FCL_REAL MeshDistanceTraversalNodekIOS::BVDisjoints(int b1, int b2) const
void MeshDistanceTraversalNodekIOS::leafTesting(int b1, int b2) const
{
details::meshDistanceOrientedNodeLeafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
details::meshDistanceOrientedNodeleafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
R, T, enable_statistics, num_leaf_tests,
request, *result);
}
......@@ -208,7 +208,7 @@ void MeshDistanceTraversalNodeOBBRSS::postprocess()
details::distancePostprocessOrientedNode(model1, model2, tf1, request, *result);
}
FCL_REAL MeshDistanceTraversalNodeOBBRSS::BVDisjoints(int b1, int b2) const
FCL_REAL MeshDistanceTraversalNodeOBBRSS::BVTesting(int b1, int b2) const
{
if(enable_statistics) num_bv_tests++;
return distance(R, T, model1->getBV(b1).bv, model2->getBV(b2).bv);
......@@ -216,7 +216,7 @@ FCL_REAL MeshDistanceTraversalNodeOBBRSS::BVDisjoints(int b1, int b2) const
void MeshDistanceTraversalNodeOBBRSS::leafTesting(int b1, int b2) const
{
details::meshDistanceOrientedNodeLeafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
details::meshDistanceOrientedNodeleafTesting(b1, b2, model1, model2, vertices1, vertices2, tri_indices1, tri_indices2,
R, T, enable_statistics, num_leaf_tests,
request, *result);
}
......
......@@ -40,14 +40,14 @@
#define HPP_FCL_TRAVERSAL_NODE_MESHES_H
#include <hpp/fcl/collision_data.h>
#include <hpp/fcl/traversal/traversal_node_base.h>
#include "traversal_node_base.h"
#include <hpp/fcl/BV/BV_node.h>
#include <hpp/fcl/BV/BV.h>
#include <hpp/fcl/BVH/BVH_model.h>
#include <hpp/fcl/intersect.h>
#include <hpp/fcl/shape/geometric_shapes.h>
#include <hpp/fcl/narrowphase/narrowphase.h>
#include <hpp/fcl/traversal/details/traversal.h>
#include "details/traversal.h"
#include <boost/shared_array.hpp>
#include <boost/shared_ptr.hpp>
......@@ -157,7 +157,7 @@ public:
}
/// @brief BV culling test in one BVTT node
bool BVDisjoints(int b1, int b2) const
bool BVTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_bv_tests++;
if (RTIsIdentity)
......@@ -171,7 +171,7 @@ public:
/// \param b1, b2 Bounding volumes to test,
/// \retval sqrDistLowerBound square of a lower bound of the minimal
/// distance between bounding volumes.
bool BVDisjoints(int b1, int b2, FCL_REAL& sqrDistLowerBound) const
bool BVTesting(int b1, int b2, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_bv_tests++;
if (RTIsIdentity)
......@@ -200,7 +200,7 @@ public:
/// \note If the distance between objects is less than the security margin,
/// and the object are not colliding, the penetration depth is
/// negative.
void leafCollides(int b1, int b2, FCL_REAL& sqrDistLowerBound) const
void leafTesting(int b1, int b2, FCL_REAL& sqrDistLowerBound) const
{
if(this->enable_statistics) this->num_leaf_tests++;
......@@ -361,7 +361,7 @@ public:
}
/// @brief BV culling test in one BVTT node
FCL_REAL BVDisjoints(int b1, int b2) const
FCL_REAL BVTesting(int b1, int b2) const
{
if(enable_statistics) num_bv_tests++;
return details::DistanceTraversalBVTesting_impl<BV>
......@@ -397,7 +397,7 @@ public:
}
/// @brief Distance testing between leaves (two triangles)
void leafCollides(int b1, int b2) const
void leafTesting(int b1, int b2) const
{
if(this->enable_statistics) this->num_leaf_tests++;
......@@ -457,7 +457,7 @@ public:
void postprocess();
FCL_REAL BVDisjoints(int b1, int b2) const;
FCL_REAL BVTesting(int b1, int b2) const;
void leafTesting(int b1, int b2) const;
......@@ -475,7 +475,7 @@ public:
void postprocess();
FCL_REAL BVDisjoints(int b1, int b2) const;
FCL_REAL BVTesting(int b1, int b2) const;
void leafTesting(int b1, int b2) const;
......@@ -492,9 +492,9 @@ public:
void postprocess();
FCL_REAL BVDisjoints(int b1, int b2) const;
FCL_REAL BVTesting(int b1, int b2) const;
FCL_REAL BVDisjoints(int b1, int b2, FCL_REAL& sqrDistLowerBound) const;
FCL_REAL BVTesting(int b1, int b2, FCL_REAL& sqrDistLowerBound) const;
void leafTesting(int b1, int b2) const;
......@@ -525,4 +525,4 @@ inline const Matrix3f& getBVAxes<OBBRSS>(const OBBRSS& bv)
} // namespace hpp