Fix radius sizes of geom shapes
PiperOrigin-RevId: 752750452 Change-Id: I2ac08ad4014718320f014ed8ba7cc3b87586f6c0
This commit is contained in:
committed by
Copybara-Service
parent
3e9d130092
commit
d657e628f0
@@ -673,15 +673,15 @@ class ModelWriter {
|
|||||||
pxr::SdfPath capsule_path =
|
pxr::SdfPath capsule_path =
|
||||||
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Capsule);
|
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Capsule);
|
||||||
|
|
||||||
// MuJoCo uses half sizes.
|
|
||||||
pxr::SdfPath radius_attr_path =
|
pxr::SdfPath radius_attr_path =
|
||||||
CreateAttributeSpec(data_, capsule_path, pxr::UsdGeomTokens->radius,
|
CreateAttributeSpec(data_, capsule_path, pxr::UsdGeomTokens->radius,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
SetAttributeDefault(data_, radius_attr_path, size[0] * 2);
|
SetAttributeDefault(data_, radius_attr_path, size[0]);
|
||||||
|
|
||||||
pxr::SdfPath height_attr_path =
|
pxr::SdfPath height_attr_path =
|
||||||
CreateAttributeSpec(data_, capsule_path, pxr::UsdGeomTokens->height,
|
CreateAttributeSpec(data_, capsule_path, pxr::UsdGeomTokens->height,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
|
// MuJoCo uses half sizes.
|
||||||
SetAttributeDefault(data_, height_attr_path, size[1] * 2);
|
SetAttributeDefault(data_, height_attr_path, size[1] * 2);
|
||||||
return capsule_path;
|
return capsule_path;
|
||||||
}
|
}
|
||||||
@@ -701,15 +701,15 @@ class ModelWriter {
|
|||||||
pxr::SdfPath cylinder_path =
|
pxr::SdfPath cylinder_path =
|
||||||
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Cylinder);
|
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Cylinder);
|
||||||
|
|
||||||
// MuJoCo uses half sizes.
|
|
||||||
pxr::SdfPath radius_attr_path =
|
pxr::SdfPath radius_attr_path =
|
||||||
CreateAttributeSpec(data_, cylinder_path, pxr::UsdGeomTokens->radius,
|
CreateAttributeSpec(data_, cylinder_path, pxr::UsdGeomTokens->radius,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
SetAttributeDefault(data_, radius_attr_path, size[0] * 2);
|
SetAttributeDefault(data_, radius_attr_path, size[0]);
|
||||||
|
|
||||||
pxr::SdfPath height_attr_path =
|
pxr::SdfPath height_attr_path =
|
||||||
CreateAttributeSpec(data_, cylinder_path, pxr::UsdGeomTokens->height,
|
CreateAttributeSpec(data_, cylinder_path, pxr::UsdGeomTokens->height,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
|
// MuJoCo uses half sizes.
|
||||||
SetAttributeDefault(data_, height_attr_path, size[1] * 2);
|
SetAttributeDefault(data_, height_attr_path, size[1] * 2);
|
||||||
return cylinder_path;
|
return cylinder_path;
|
||||||
}
|
}
|
||||||
@@ -729,11 +729,10 @@ class ModelWriter {
|
|||||||
pxr::SdfPath ellipsoid_path =
|
pxr::SdfPath ellipsoid_path =
|
||||||
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Sphere);
|
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Sphere);
|
||||||
|
|
||||||
pxr::GfVec3f scale = {static_cast<float>(size[0] * 2),
|
pxr::GfVec3f scale = {static_cast<float>(size[0]),
|
||||||
static_cast<float>(size[1] * 2),
|
static_cast<float>(size[1]),
|
||||||
static_cast<float>(size[2] * 2)};
|
static_cast<float>(size[2])};
|
||||||
|
|
||||||
// MuJoCo uses half sizes.
|
|
||||||
pxr::SdfPath radius_attr_path =
|
pxr::SdfPath radius_attr_path =
|
||||||
CreateAttributeSpec(data_, ellipsoid_path, pxr::UsdGeomTokens->radius,
|
CreateAttributeSpec(data_, ellipsoid_path, pxr::UsdGeomTokens->radius,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
@@ -760,11 +759,10 @@ class ModelWriter {
|
|||||||
pxr::SdfPath sphere_path =
|
pxr::SdfPath sphere_path =
|
||||||
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Sphere);
|
CreatePrimSpec(data_, body_path, name, pxr::UsdGeomTokens->Sphere);
|
||||||
|
|
||||||
// MuJoCo uses half sizes.
|
|
||||||
pxr::SdfPath radius_attr_path =
|
pxr::SdfPath radius_attr_path =
|
||||||
CreateAttributeSpec(data_, sphere_path, pxr::UsdGeomTokens->radius,
|
CreateAttributeSpec(data_, sphere_path, pxr::UsdGeomTokens->radius,
|
||||||
pxr::SdfValueTypeNames->Float);
|
pxr::SdfValueTypeNames->Float);
|
||||||
SetAttributeDefault(data_, radius_attr_path, size[0] * 2);
|
SetAttributeDefault(data_, radius_attr_path, size[0]);
|
||||||
return sphere_path;
|
return sphere_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -472,16 +472,16 @@ TEST_F(MjcfSdfFileFormatPluginTest, TestGeomsPrims) {
|
|||||||
// Sphere
|
// Sphere
|
||||||
EXPECT_PRIM_VALID(stage, "/test/sphere_geom");
|
EXPECT_PRIM_VALID(stage, "/test/sphere_geom");
|
||||||
EXPECT_PRIM_IS_A(stage, "/test/sphere_geom", pxr::UsdGeomSphere);
|
EXPECT_PRIM_IS_A(stage, "/test/sphere_geom", pxr::UsdGeomSphere);
|
||||||
ExpectAttributeEqual(stage, "/test/sphere_geom.radius", 2 * 10.0);
|
ExpectAttributeEqual(stage, "/test/sphere_geom.radius", 10.0);
|
||||||
// Capsule
|
// Capsule
|
||||||
EXPECT_PRIM_VALID(stage, "/test/capsule_geom");
|
EXPECT_PRIM_VALID(stage, "/test/capsule_geom");
|
||||||
EXPECT_PRIM_IS_A(stage, "/test/capsule_geom", pxr::UsdGeomCapsule);
|
EXPECT_PRIM_IS_A(stage, "/test/capsule_geom", pxr::UsdGeomCapsule);
|
||||||
ExpectAttributeEqual(stage, "/test/capsule_geom.radius", 2 * 10.0);
|
ExpectAttributeEqual(stage, "/test/capsule_geom.radius", 10.0);
|
||||||
ExpectAttributeEqual(stage, "/test/capsule_geom.height", 2 * 20.0);
|
ExpectAttributeEqual(stage, "/test/capsule_geom.height", 2 * 20.0);
|
||||||
// Cylinder
|
// Cylinder
|
||||||
EXPECT_PRIM_VALID(stage, "/test/cylinder_geom");
|
EXPECT_PRIM_VALID(stage, "/test/cylinder_geom");
|
||||||
EXPECT_PRIM_IS_A(stage, "/test/cylinder_geom", pxr::UsdGeomCylinder);
|
EXPECT_PRIM_IS_A(stage, "/test/cylinder_geom", pxr::UsdGeomCylinder);
|
||||||
ExpectAttributeEqual(stage, "/test/cylinder_geom.radius", 2 * 10.0);
|
ExpectAttributeEqual(stage, "/test/cylinder_geom.radius", 10.0);
|
||||||
ExpectAttributeEqual(stage, "/test/cylinder_geom.height", 2 * 20.0);
|
ExpectAttributeEqual(stage, "/test/cylinder_geom.height", 2 * 20.0);
|
||||||
// Ellipsoid
|
// Ellipsoid
|
||||||
EXPECT_PRIM_VALID(stage, "/test/ellipsoid_geom");
|
EXPECT_PRIM_VALID(stage, "/test/ellipsoid_geom");
|
||||||
@@ -490,7 +490,7 @@ TEST_F(MjcfSdfFileFormatPluginTest, TestGeomsPrims) {
|
|||||||
EXPECT_PRIM_IS_A(stage, "/test/ellipsoid_geom", pxr::UsdGeomSphere);
|
EXPECT_PRIM_IS_A(stage, "/test/ellipsoid_geom", pxr::UsdGeomSphere);
|
||||||
ExpectAttributeEqual(stage, "/test/ellipsoid_geom.radius", 1.0);
|
ExpectAttributeEqual(stage, "/test/ellipsoid_geom.radius", 1.0);
|
||||||
ExpectAttributeEqual(stage, "/test/ellipsoid_geom.xformOp:scale",
|
ExpectAttributeEqual(stage, "/test/ellipsoid_geom.xformOp:scale",
|
||||||
pxr::GfVec3f(2.0 * 10.0, 2.0 * 20.0, 2.0 * 30.0));
|
pxr::GfVec3f(10.0, 20.0, 30.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr char kSiteXml[] = R"(
|
static constexpr char kSiteXml[] = R"(
|
||||||
|
|||||||
Reference in New Issue
Block a user