diff --git a/CMakeLists.txt b/CMakeLists.txt index 4100a81826c6cc209314953baae9794f36e428a1..53de7c32fcfd6793b235ffa2dc4d219e4d140db6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,6 @@ SET(${PROJECT_NAME}_HEADERS include/hpp/fcl/BV/kDOP.h include/hpp/fcl/narrowphase/narrowphase.h include/hpp/fcl/narrowphase/gjk.h - include/hpp/fcl/shape/geometric_shapes_utility.h include/hpp/fcl/shape/geometric_shape_to_BVH_model.h include/hpp/fcl/shape/geometric_shapes.h include/hpp/fcl/distance_func_matrix.h diff --git a/include/hpp/fcl/BVH/BVH_model.h b/include/hpp/fcl/BVH/BVH_model.h index 66005904e48a6548a2c5345213c6c5e5929e5dd8..d6d200334f6a094f27c307b57c57d095cefb30d7 100644 --- a/include/hpp/fcl/BVH/BVH_model.h +++ b/include/hpp/fcl/BVH/BVH_model.h @@ -41,8 +41,6 @@ #include <hpp/fcl/collision_object.h> #include <hpp/fcl/BVH/BVH_internal.h> #include <hpp/fcl/BV/BV_node.h> -#include "../../src/BVH/BV_splitter.h" -#include "../../src/BVH/BV_fitter.h" #include <vector> #include <boost/shared_ptr.hpp> #include <boost/noncopyable.hpp> @@ -54,6 +52,9 @@ namespace fcl class ConvexBase; +template <typename BV> class BVFitter; +template <typename BV> class BVSplitter; + /// @brief A base class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as a degraded version of mesh) class BVHModelBase : public CollisionGeometry { @@ -258,15 +259,7 @@ public: boost::shared_ptr<BVFitter<BV> > bv_fitter; /// @brief Constructing an empty BVH - BVHModel() : BVHModelBase (), - bv_splitter(new BVSplitter<BV>(SPLIT_METHOD_MEAN)), - bv_fitter(new BVFitter<BV>()), - num_bvs_allocated(0), - primitive_indices(NULL), - bvs(NULL), - num_bvs(0) - { - } + BVHModel(); /// @brief copy from another BVH BVHModel(const BVHModel& other); diff --git a/src/BVH/BVH_model.cpp b/src/BVH/BVH_model.cpp index 11379c84056afcf50c189bb33a480498d7f082e1..281656f101b63193b86a43c6856aa6a0de9ba258 100644 --- a/src/BVH/BVH_model.cpp +++ b/src/BVH/BVH_model.cpp @@ -36,11 +36,16 @@ /** \author Jia Pan */ #include <hpp/fcl/BVH/BVH_model.h> -#include <hpp/fcl/BV/BV.h> -#include <hpp/fcl/shape/convex.h> + #include <iostream> #include <string.h> +#include <hpp/fcl/BV/BV.h> +#include <hpp/fcl/shape/convex.h> + +#include "../../src/BVH/BV_splitter.h" +#include "../../src/BVH/BV_fitter.h" + namespace hpp { namespace fcl @@ -630,6 +635,20 @@ void BVHModelBase::computeLocalAABB() aabb_local = aabb_; } + + /// @brief Constructing an empty BVH +template<typename BV> +BVHModel<BV>::BVHModel() : + BVHModelBase (), + bv_splitter(new BVSplitter<BV>(SPLIT_METHOD_MEAN)), + bv_fitter(new BVFitter<BV>()), + num_bvs_allocated(0), + primitive_indices(NULL), + bvs(NULL), + num_bvs(0) +{ +} + template<typename BV> void BVHModel<BV>::deleteBVs() { @@ -1015,11 +1034,6 @@ NODE_TYPE BVHModel<KDOP<24> >::getNodeType() const return BV_KDOP24; } - - - - - template class BVHModel<KDOP<16> >; template class BVHModel<KDOP<18> >; template class BVHModel<KDOP<24> >; @@ -1028,6 +1042,7 @@ template class BVHModel<AABB>; template class BVHModel<RSS>; template class BVHModel<kIOS>; template class BVHModel<OBBRSS>; -} + +} // namespace fcl } // namespace hpp diff --git a/src/BVH/BVH_utility.cpp b/src/BVH/BVH_utility.cpp index b1f2f7bef3ad94d6b1ca9879857c95aa4634a668..c3ac12c76dc9007e60ee5222682ebf770419f4ce 100644 --- a/src/BVH/BVH_utility.cpp +++ b/src/BVH/BVH_utility.cpp @@ -38,7 +38,7 @@ #include <hpp/fcl/BVH/BVH_utility.h> #include <hpp/fcl/narrowphase/narrowphase.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> +#include "../src/shape/geometric_shapes_utility.h" namespace hpp { diff --git a/src/narrowphase/narrowphase.cpp b/src/narrowphase/narrowphase.cpp index f0b29a7270df353702081fcd2ae819fb332fcc34..e8e05b76e693eff8c2dca66e5a374205e949f257 100644 --- a/src/narrowphase/narrowphase.cpp +++ b/src/narrowphase/narrowphase.cpp @@ -36,10 +36,12 @@ /** \author Jia Pan */ #include <hpp/fcl/narrowphase/narrowphase.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> -#include "../intersect.h" -#include <boost/math/constants/constants.hpp> + #include <vector> +#include <boost/math/constants/constants.hpp> + +#include "../src/shape/geometric_shapes_utility.h" +#include "../src/intersect.h" #include "../src/narrowphase/details.h" namespace hpp diff --git a/src/shape/geometric_shapes.cpp b/src/shape/geometric_shapes.cpp index ddf0cb4febe3b12f963e78f612fc98d082d3ee0b..eb9cc27428a17aca293de1742eb65827e9729c93 100644 --- a/src/shape/geometric_shapes.cpp +++ b/src/shape/geometric_shapes.cpp @@ -37,7 +37,7 @@ #include <hpp/fcl/shape/geometric_shapes.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> +#include "../src/shape/geometric_shapes_utility.h" namespace hpp { diff --git a/src/shape/geometric_shapes_utility.cpp b/src/shape/geometric_shapes_utility.cpp index b02f952317b493b36697e336f9a79f09a6421fe2..1bd29f4b6657e52e6247b9fc6eefab741a37297c 100644 --- a/src/shape/geometric_shapes_utility.cpp +++ b/src/shape/geometric_shapes_utility.cpp @@ -36,7 +36,7 @@ /** \author Jia Pan */ -#include <hpp/fcl/shape/geometric_shapes_utility.h> +#include "../src/shape/geometric_shapes_utility.h" #include "../BVH/BV_fitter.h" #include "../math/tools.h" diff --git a/include/hpp/fcl/shape/geometric_shapes_utility.h b/src/shape/geometric_shapes_utility.h similarity index 99% rename from include/hpp/fcl/shape/geometric_shapes_utility.h rename to src/shape/geometric_shapes_utility.h index c29a903c8e40bd853f58a63dc5dc3f932b43a2d6..2a6a2ba62d8670cf2b461b56ffa1b51e9031a54e 100644 --- a/include/hpp/fcl/shape/geometric_shapes_utility.h +++ b/src/shape/geometric_shapes_utility.h @@ -43,6 +43,8 @@ #include <hpp/fcl/shape/geometric_shapes.h> #include <hpp/fcl/BV/BV.h> +#include "../src/BVH/BV_fitter.h" + namespace hpp { namespace fcl diff --git a/src/traversal/traversal_node_bvh_shape.h b/src/traversal/traversal_node_bvh_shape.h index e931a392748039f7ef84fdd0f56724df8af1f91d..b01351ac562581a0f09aef6e824a28091fb2ca75 100644 --- a/src/traversal/traversal_node_bvh_shape.h +++ b/src/traversal/traversal_node_bvh_shape.h @@ -41,7 +41,7 @@ #include <hpp/fcl/collision_data.h> #include <hpp/fcl/shape/geometric_shapes.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> +#include "../src/shape/geometric_shapes_utility.h" #include "traversal_node_base.h" #include "details/traversal.h" #include <hpp/fcl/BVH/BVH_model.h> diff --git a/src/traversal/traversal_node_octree.h b/src/traversal/traversal_node_octree.h index c8f0f52220c39f9babaf1082b429ebcfcd0ebacf..142531ef98a232910073b66ea5e0c9232be944f5 100644 --- a/src/traversal/traversal_node_octree.h +++ b/src/traversal/traversal_node_octree.h @@ -41,9 +41,9 @@ #include <hpp/fcl/collision_data.h> #include "traversal_node_base.h" #include <hpp/fcl/narrowphase/narrowphase.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> #include <hpp/fcl/octree.h> #include <hpp/fcl/BVH/BVH_model.h> +#include "../src/shape/geometric_shapes_utility.h" namespace hpp { diff --git a/src/traversal/traversal_node_shapes.h b/src/traversal/traversal_node_shapes.h index 902527343c5e3bba0a56e595c8558330dc68892c..4344c4e57e3673681b736ba42fd0b2391583a705 100644 --- a/src/traversal/traversal_node_shapes.h +++ b/src/traversal/traversal_node_shapes.h @@ -42,9 +42,8 @@ #include <hpp/fcl/collision_data.h> #include "traversal_node_base.h" #include <hpp/fcl/narrowphase/narrowphase.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> #include <hpp/fcl/BV/BV.h> -#include <hpp/fcl/shape/geometric_shapes_utility.h> +#include "../src/shape/geometric_shapes_utility.h" namespace hpp { diff --git a/test/benchmark.cpp b/test/benchmark.cpp index f3a16334fcee0cec289ae72ec9075c927943fec3..21e4cae7b1ce4cea14cfc730bf069e45c43ed9f1 100644 --- a/test/benchmark.cpp +++ b/test/benchmark.cpp @@ -14,12 +14,15 @@ // received a copy of the GNU Lesser General Public License along with // hpp-fcl. If not, see <http://www.gnu.org/licenses/>. +#include <boost/filesystem.hpp> + #include "../src/traversal/traversal_node_setup.h" #include "../src/traversal/traversal_node_bvhs.h" -#include <../src/collision_node.h> +#include "../src/collision_node.h" +#include "../src/BVH/BV_splitter.h" + #include "utility.h" #include "fcl_resources/config.h" -#include <boost/filesystem.hpp> #define RUN_CASE(BV,tf,models,split) \ run<BV>(tf, models, split, #BV " - " #split ":\t") diff --git a/test/collision.cpp b/test/collision.cpp index d28452d9eb2afaa7e7b2aa6326dac7da466e0404..2cc491807b305983783b6c6a960aa932c2e9f945 100644 --- a/test/collision.cpp +++ b/test/collision.cpp @@ -44,19 +44,22 @@ #include <boost/test/unit_test.hpp> #include <boost/utility/binary.hpp> +#include <boost/filesystem.hpp> #include <boost/assign/list_of.hpp> -#include "../src/traversal/traversal_node_bvhs.h" -#include "../src/traversal/traversal_node_setup.h" -#include <../src/collision_node.h> #include <hpp/fcl/collision.h> #include <hpp/fcl/BV/BV.h> #include <hpp/fcl/shape/geometric_shapes.h> #include <hpp/fcl/narrowphase/narrowphase.h> #include <hpp/fcl/mesh_loader/assimp.h> + +#include "../src/traversal/traversal_node_bvhs.h" +#include "../src/traversal/traversal_node_setup.h" +#include "../src/collision_node.h" +#include "../src/BVH/BV_splitter.h" + #include "utility.h" #include "fcl_resources/config.h" -#include <boost/filesystem.hpp> using namespace hpp::fcl; diff --git a/test/distance.cpp b/test/distance.cpp index a7457eb6c6329486c181c00843488b6b3147a1aa..eea1eb8b75903e6ac5bfbfeb52379b1c11875726 100644 --- a/test/distance.cpp +++ b/test/distance.cpp @@ -39,14 +39,16 @@ #define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include <boost/utility/binary.hpp> +#include <boost/timer.hpp> +#include <boost/filesystem.hpp> #include "../src/traversal/traversal_node_bvhs.h" #include "../src/traversal/traversal_node_setup.h" -#include <../src/collision_node.h> +#include "../src/collision_node.h" +#include "../src/BVH/BV_splitter.h" + #include "utility.h" -#include <boost/timer.hpp> #include "fcl_resources/config.h" -#include <boost/filesystem.hpp> using namespace hpp::fcl; diff --git a/test/frontlist.cpp b/test/frontlist.cpp index b2e9f30039864fdf7312afed9a91df5e05ad7d03..05045b06578beadcdd648754e44b9e97c6c54a71 100644 --- a/test/frontlist.cpp +++ b/test/frontlist.cpp @@ -44,6 +44,7 @@ #include "../src/traversal/traversal_node_bvhs.h" #include "../src/traversal/traversal_node_setup.h" #include <../src/collision_node.h> +#include <../src/BVH/BV_splitter.h> #include "utility.h" #include "fcl_resources/config.h" diff --git a/test/octree.cpp b/test/octree.cpp index 65507fa0aff8223ac63846b4baa37f1dfb806bc8..406339dcedc7c1202d2176f0817472aac10cf5b0 100644 --- a/test/octree.cpp +++ b/test/octree.cpp @@ -38,14 +38,16 @@ #define BOOST_TEST_DYN_LINK #include <fstream> #include <boost/test/unit_test.hpp> +#include <boost/filesystem.hpp> #include <hpp/fcl/BVH/BVH_model.h> #include <hpp/fcl/collision.h> #include <hpp/fcl/distance.h> #include <hpp/fcl/shape/geometric_shapes.h> +#include "../src/BVH/BV_splitter.h" + #include "utility.h" #include "fcl_resources/config.h" -#include <boost/filesystem.hpp> using hpp::fcl::Vec3f; using hpp::fcl::Triangle;