Skip to content

Commit

Permalink
Updates to work with changes to the translation of tensor mesh materials
Browse files Browse the repository at this point in the history
  • Loading branch information
dbs4261 committed Apr 20, 2023
1 parent 01fdc2e commit 6e156c1
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
4 changes: 3 additions & 1 deletion cpp/open3d/t/geometry/TriangleMesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,9 @@ open3d::geometry::TriangleMesh TriangleMesh::ToLegacy() const {
// Convert material if the t geometry has a valid one
auto &tmat = GetMaterial();
if (tmat.IsValid()) {
auto &legacy_mat = mesh_legacy.materials_["Mat1"];
mesh_legacy.materials_.emplace_back();
mesh_legacy.materials_.front().first = "Mat1";
auto &legacy_mat = mesh_legacy.materials_.front().second;
// Convert scalar properties
if (tmat.HasBaseColor()) {
legacy_mat.baseColor.f4[0] = tmat.GetBaseColor().x();
Expand Down
14 changes: 11 additions & 3 deletions cpp/tests/t/geometry/TriangleMesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,9 @@ TEST_P(TriangleMeshPermuteDevices, FromLegacy) {
Eigen::Vector2d(0.4, 0.5), Eigen::Vector2d(0.6, 0.7),
Eigen::Vector2d(0.8, 0.9), Eigen::Vector2d(1.0, 1.1)};

auto& mat = legacy_mesh.materials_["Mat1"];
legacy_mesh.materials_.emplace_back();
legacy_mesh.materials_.front().first = "Mat1";
auto& mat = legacy_mesh.materials_.front().second;
mat.baseColor = mat.baseColor.CreateRGB(1, 1, 1);

core::Dtype float_dtype = core::Float32;
Expand Down Expand Up @@ -497,8 +499,14 @@ TEST_P(TriangleMeshPermuteDevices, ToLegacy) {
Pointwise(FloatEq(), {0.8, 0.9}),
Pointwise(FloatEq(), {1.0, 1.1})}));

EXPECT_TRUE(legacy_mesh.materials_.count("Mat1") > 0);
auto& mat = legacy_mesh.materials_["Mat1"];
auto mat_iterator = std::find_if(
legacy_mesh.materials_.begin(),
legacy_mesh.materials_.end(),
[](const auto& pair)->bool{
return pair.first == "Mat1";
});
EXPECT_TRUE(mat_iterator != legacy_mesh.materials_.end());
auto& mat = mat_iterator->second;
EXPECT_TRUE(Eigen::Vector4f(mat.baseColor.f4) ==
Eigen::Vector4f(1, 1, 1, 1));
EXPECT_TRUE(mat.baseMetallic == 0.0);
Expand Down

0 comments on commit 6e156c1

Please sign in to comment.