diff --git a/src/BVH/BVH_model.cpp b/src/BVH/BVH_model.cpp index a56cf1ac43b7dd642fcea28cf0d257acf6da37d3..bba163c7457ff844f3060f1c681b56fd11333501 100644 --- a/src/BVH/BVH_model.cpp +++ b/src/BVH/BVH_model.cpp @@ -422,7 +422,8 @@ int BVHModelBase::beginReplaceModel() return BVH_ERR_BUILD_EMPTY_PREVIOUS_FRAME; } - if(prev_vertices) delete [] prev_vertices; prev_vertices = NULL; + if(prev_vertices) delete [] prev_vertices; + prev_vertices = NULL; num_vertex_updated = 0; diff --git a/src/traversal/traversal_recurse.cpp b/src/traversal/traversal_recurse.cpp index 84fb992e22131fab14272fc2a53183053179a314..cf4c822780e59276c4af07fd2fa8e1ae3730a0e0 100644 --- a/src/traversal/traversal_recurse.cpp +++ b/src/traversal/traversal_recurse.cpp @@ -382,7 +382,7 @@ void propagateBVHFrontListCollisionRecurse front_iter->valid = false; if(node->firstOverSecond(b1, b2)) { int c1 = node->getFirstLeftChild(b1); - int c2 = node->getFirstRightChild(b2); + int c2 = node->getFirstRightChild(b1); collisionRecurse(node, c1, b2, front_list, sqrDistLowerBound1); collisionRecurse(node, c2, b2, front_list, sqrDistLowerBound2); diff --git a/test/frontlist.cpp b/test/frontlist.cpp index c46aca482f7bec72544102382d5da9ef15af49f3..9762d69b272c0211a7cd12778dba22e6cc2b6fd7 100644 --- a/test/frontlist.cpp +++ b/test/frontlist.cpp @@ -84,7 +84,11 @@ BOOST_AUTO_TEST_CASE(front_list) std::vector<Transform3f> transforms2; // t1 FCL_REAL extents[] = {-3000, -3000, 0, 3000, 3000, 3000}; FCL_REAL delta_trans[] = {1, 1, 1}; - std::size_t n = 10; +#ifdef NDEBUG + std::size_t n = 20; +#else + std::size_t n = 5; +#endif bool verbose = false; generateRandomTransforms(extents, delta_trans, 0.005 * 2 * 3.1415, transforms, transforms2, n); diff --git a/test/utility.cpp b/test/utility.cpp index e3e0082b9ef45c4fd021e252182f5f413bd4dcbd..a107faf800e65c71051f954a91e6124b10761609 100644 --- a/test/utility.cpp +++ b/test/utility.cpp @@ -339,51 +339,6 @@ void generateRandomTransforms(FCL_REAL extents[6], FCL_REAL delta_trans[3], FCL_ } } -void generateRandomTransform_ccd(FCL_REAL extents[6], std::vector<Transform3f>& transforms, std::vector<Transform3f>& transforms2, FCL_REAL delta_trans[3], FCL_REAL delta_rot, std::size_t n, - const std::vector<Vec3f>& /*vertices1*/, const std::vector<Triangle>& /*riangles1*/, - const std::vector<Vec3f>& /*vertices2*/, const std::vector<Triangle>& /*riangles2*/) -{ - transforms.resize(n); - transforms2.resize(n); - - for(std::size_t i = 0; i < n;) - { - FCL_REAL x = rand_interval(extents[0], extents[3]); - FCL_REAL y = rand_interval(extents[1], extents[4]); - FCL_REAL z = rand_interval(extents[2], extents[5]); - - const FCL_REAL pi = 3.1415926; - FCL_REAL a = rand_interval(0, 2 * pi); - FCL_REAL b = rand_interval(0, 2 * pi); - FCL_REAL c = rand_interval(0, 2 * pi); - - - Matrix3f R; - eulerToMatrix(a, b, c, R); - Vec3f T(x, y, z); - Transform3f tf(R, T); - - std::vector<std::pair<int, int> > results; - { - transforms[i] = tf; - - FCL_REAL deltax = rand_interval(-delta_trans[0], delta_trans[0]); - FCL_REAL deltay = rand_interval(-delta_trans[1], delta_trans[1]); - FCL_REAL deltaz = rand_interval(-delta_trans[2], delta_trans[2]); - - FCL_REAL deltaa = rand_interval(-delta_rot, delta_rot); - FCL_REAL deltab = rand_interval(-delta_rot, delta_rot); - FCL_REAL deltac = rand_interval(-delta_rot, delta_rot); - - Matrix3f R2; - eulerToMatrix(a + deltaa, b + deltab, c + deltac, R2); - Vec3f T2(x + deltax, y + deltay, z + deltaz); - transforms2[i].setTransform(R2, T2); - ++i; - } - } -} - bool defaultCollisionFunction(CollisionObject* o1, CollisionObject* o2, void* cdata_) { CollisionData* cdata = static_cast<CollisionData*>(cdata_); diff --git a/test/utility.h b/test/utility.h index d724399db73e086684e7757e63243ec3a18f27fa..dcefa68407e78a52928ba54432d8cc602445425d 100644 --- a/test/utility.h +++ b/test/utility.h @@ -118,12 +118,6 @@ void generateRandomTransforms(FCL_REAL extents[6], std::vector<Transform3f>& tra /// @brief Generate n random transforms whose translations are constrained by extents. Also generate another transforms2 which have additional random translation & rotation to the transforms generated. void generateRandomTransforms(FCL_REAL extents[6], FCL_REAL delta_trans[3], FCL_REAL delta_rot, std::vector<Transform3f>& transforms, std::vector<Transform3f>& transforms2, std::size_t n); -/// @brief Generate n random tranforms and transform2 with addtional random translation/rotation. The transforms and transform2 are used as initial and goal configurations for the first mesh. The second mesh is in I. This is used for continuous collision detection checking. -void generateRandomTransforms_ccd(FCL_REAL extents[6], std::vector<Transform3f>& transforms, std::vector<Transform3f>& transforms2, FCL_REAL delta_trans[3], FCL_REAL delta_rot, std::size_t n, - const std::vector<Vec3f>& vertices1, const std::vector<Triangle>& triangles1, - const std::vector<Vec3f>& vertices2, const std::vector<Triangle>& triangles2); - - /// @ brief Structure for minimum distance between two meshes and the corresponding nearest point pair struct DistanceRes { diff --git a/travis_custom/custom_before_install_osx.sh b/travis_custom/custom_before_install_osx.sh index e6015a00656ab08d8b7fbb006aa7d43eb08f85e7..b2d8bb1153c3c8a083f8aad1548a883c0c225df0 100755 --- a/travis_custom/custom_before_install_osx.sh +++ b/travis_custom/custom_before_install_osx.sh @@ -1,3 +1,5 @@ +brew update + # Add gepetto tap brew tap gepetto/homebrew-gepetto