diff --git a/model/composite/rope.xml b/model/composite/rope.xml deleted file mode 100644 index 50865d76..00000000 --- a/model/composite/rope.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - diff --git a/src/user/user_composite.cc b/src/user/user_composite.cc index 1041600b..159fb15d 100644 --- a/src/user/user_composite.cc +++ b/src/user/user_composite.cc @@ -297,6 +297,8 @@ bool mjCComposite::Make(mjCModel* model, mjCBody* body, char* error, int error_s return MakeGrid(model, body, error, error_sz); case mjCOMPTYPE_ROPE: + mju_warning("The \"rope\" composite type is deprecated. Please use \"cable\" instead."); + [[fallthrough]]; case mjCOMPTYPE_LOOP: return MakeRope(model, body, error, error_sz); diff --git a/test/user/user_composite_test.cc b/test/user/user_composite_test.cc index fe013e75..a4dff825 100644 --- a/test/user/user_composite_test.cc +++ b/test/user/user_composite_test.cc @@ -20,6 +20,7 @@ #include #include #include +#include "src/cc/array_safety.h" #include #include #include @@ -72,9 +73,15 @@ TEST_F(UserCompositeTest, StretchAndTwistAllowed) { )"; + static char warning[1024]; + warning[0] = '\0'; + mju_user_warning = [](const char* msg) { + util::strcpy_arr(warning, msg); + }; std::array error; mjModel* m = LoadModelFromString(xml, error.data(), error.size()); EXPECT_THAT(m, NotNull()); + EXPECT_THAT(warning, HasSubstr("deprecated")); mj_deleteModel(m); }