Copy texture coordinates from OBJ into flex. Fixes #2464.

PiperOrigin-RevId: 732109960
Change-Id: I506b3540ab5d489ce8f10d0c473919611ccb654a
This commit is contained in:
Alessio Quaglino
2025-02-28 06:03:11 -08:00
committed by Copybara-Service
parent 06e217df7e
commit 7651cb1b33
19 changed files with 117 additions and 15 deletions
+14
View File
@@ -0,0 +1,14 @@
<mujoco>
<compiler assetdir="textured_torus"/>
<asset>
<texture file="carpet.png" type="2d"/>
<material name="carpet" texture="carpet"/>
</asset>
<worldbody>
<flexcomp name="torus" type="mesh" file="textured_torus.obj"
radius="0.01" dim="2" material="carpet">
<contact internal="false" selfcollide="none"/>
<edge equality="true" />
</flexcomp>
</worldbody>
</mujoco>
+16
View File
@@ -435,6 +435,22 @@ TEST_F(UserFlexTest, StiffnessMatrix) {
mj_deleteModel(m);
}
TEST_F(UserFlexTest, LoadTexture) {
const std::string xml_path =
GetTestDataFilePath("user/testdata/textured_torus_flex.xml");
std::array<char, 1024> error;
mjModel* m = mj_loadXML(xml_path.c_str(), 0, error.data(), error.size());
ASSERT_THAT(m, NotNull()) << error.data();
EXPECT_THAT(m->nflextexcoord, 637);
EXPECT_THAT(m->flex_elemtexcoord[0], 0);
EXPECT_THAT(m->flex_elemtexcoord[1], 1);
EXPECT_THAT(m->flex_elemtexcoord[2], 2);
EXPECT_THAT(m->flex_elemtexcoord[3], 0);
EXPECT_THAT(m->flex_elemtexcoord[4], 2);
EXPECT_THAT(m->flex_elemtexcoord[5], 3);
mj_deleteModel(m);
}
TEST_F(UserFlexTest, LoadMSHBinary_41_Success) {
const std::string xml_path =
GetTestDataFilePath("user/testdata/cube_41_binary_vol_gmshApp.xml");