ShapeWorks icon indicating copy to clipboard operation
ShapeWorks copied to clipboard

Mesh distance symmetric

Open nawazishkhan1-nk opened this issue 1 year ago • 7 comments

[WIP] - Do Not Merge

Summary

This PR addresses issue #2040.

Changes Made

  • Non-breaking change: Added a new distance method in Mesh class to compute symmetric point-to-cell distances.
  • Included this method in the ShapeWorks Python API.
  • Temporarily called it in ShapeWorks Studio Viewer when surface-to-surface distance is checked.

Testing Done

  • Tested the new distance method using different meshes.
  • Checked that the ShapeWorks Studio Viewer and API calls run without errors.

Known Issues

  • None at this time.

Screenshots

Symmetric Point-to-cell distance vs. regular Point-to-cell distance Screen Shot 2023-04-05 at 8 28 20 AM

nawazishkhan1-nk avatar Apr 05 '23 13:04 nawazishkhan1-nk

Hello, I propose also to add the signed point-to-cell metric, I will amend the commit

ben2k avatar Apr 26 '23 20:04 ben2k

@nawazishkhan1-nk , do you have an update on the PR?

akenmorris avatar Jun 27 '23 23:06 akenmorris

@nawazishkhan1-nk , any update on this?

akenmorris avatar Oct 25 '23 15:10 akenmorris

Hello, I propose also to add the signed point-to-cell metric, I will amend the commit

I don't have the time but I suggest we add the signed point-to-cell metric: the sign is defined as follow:

// Determine the signed distance const Vector normal = in_transfo * in_normals[i]; // get the normal of source mesh for vertex i const Vector v = closest_point_ref_i - point[i]; // get the vector between the closest point in the reference and the vertex i signed_distance = sign( dot(v, normal) ) * norm(closest_point_ref_i - point[i]);

ben2k avatar Aug 27 '24 21:08 ben2k

Additionally, instead of this symmetric distance (that will never be higher than traditional point-to-cell metric), I would propose that we implement the Chamfer Distance (sum of A to B and B to A distances) which is used in numerous publications to compare mesh to mesh.

ben2k avatar Aug 27 '24 21:08 ben2k

Additionally, instead of this symmetric distance (that will never be higher than traditional point-to-cell metric), I would propose that we implement the Chamfer Distance (sum of A to B and B to A distances) which is used in numerous publications to compare mesh to mesh.

The Chamfer Distance, as far as I can find, is only defined for point sets. Do you propose to use vertices only and not the point to cell distance?

akenmorris avatar Aug 28 '24 22:08 akenmorris

Additionally, instead of this symmetric distance (that will never be higher than traditional point-to-cell metric), I would propose that we implement the Chamfer Distance (sum of A to B and B to A distances) which is used in numerous publications to compare mesh to mesh.

The Chamfer Distance, as far as I can find, is only defined for point sets. Do you propose to use vertices only and not the point to cell distance?

Yes from point sets only.

It would be an additional metric along signed and absolute point-to-cell distances.

ben2k avatar Aug 28 '24 23:08 ben2k