Skip to content

Conversation

DamienGilliard
Copy link
Collaborator

@DamienGilliard DamienGilliard commented Jun 17, 2025

This PR concerns the addition of point cloud utilities to diffCheck: cropping, substraction (one PC - other PC by comparing the distances of their points using KDSearch)

Cropping:

This component crops a point cloud based on a bbox or boundary values (set a minimum value for z coordinate, for example

Capture d'écran 2025-06-17 152404
Using bbox:
ViewCapture20250617_152500
Using boundary to coordinates:
ViewCapture20250617_152555

Subtracting

This component removes points from a point cloud when they are too close to another point cloud

image In the image hereunder, the blue point cloud is the one we subtract from, in red the one we subtract with, and in green the resulting point cloud: ViewCapture20250722_144116

@DamienGilliard DamienGilliard marked this pull request as draft June 17, 2025 13:30
@DamienGilliard DamienGilliard changed the base branch from main to release/2.0.0 June 17, 2025 13:31
@DamienGilliard
Copy link
Collaborator Author

  • Use 3D domain instead of individual boundaries

@DamienGilliard
Copy link
Collaborator Author

  • Use 3D domain instead of individual boundaries

I did not find 3D domain, but I think that by providing the possibility to give individual boundary coordinates, I am solving a problem that does not exist and no one asked for it, so I have remove it !

@DamienGilliard DamienGilliard self-assigned this Jul 24, 2025
@DamienGilliard
Copy link
Collaborator Author

  • For point clouds, get all 3 boolean operations: intersect, union, difference. But no volume, so how do you define the boolean velues, only by distance ? TBD
  • for cropping, have one case if a box is given and use o3d, or if any brep given, other case with .IsPointInside method of Rhino.Geometry
  • for Cropping, output the points IN and Out separately

@DamienGilliard
Copy link
Collaborator Author

DamienGilliard commented Jul 30, 2025

Cropping

Update: as discussed, the cropping now keeps the "in" and "out" (point 3 of comment above), and breps are supported (point 2 of comment above):

image ViewCapture20250730_111619

Point cloud booleans:

We now have point cloud booleans (point 1 of previouis comment): intersection, union, exclusion:
image
ViewCapture20250730_143632

@DamienGilliard
Copy link
Collaborator Author

@eleniv3d I Believe this PR is ready for review ;)
I'll make another PR for the pose comparison component

@DamienGilliard DamienGilliard marked this pull request as ready for review July 30, 2025 13:30
@DamienGilliard DamienGilliard requested a review from eleniv3d July 31, 2025 07:23
@eleniv3d
Copy link
Collaborator

  • Use 3D domain instead of individual boundaries

I did not find 3D domain, but I think that by providing the possibility to give individual boundary coordinates, I am solving a problem that does not exist and no one asked for it, so I have remove it !

Yeah, i guess one would use the domain box for this

Copy link
Collaborator

@eleniv3d eleniv3d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some first comments. Let me know what you think :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the metadata doesn't match the current implementation.. inputs/outputs are different :)

I would also suggest a slight refactoring.. Since we are now outputting both the point clouds inside the box/brep, i would consider renaming the component to sth like DF Cloud Split and then I think inputs could be:

  1. Cloud “The point cloud to split.”
  2. Boundary “Closed Box or Brep that defines the inside region.”

with outputs:

  1. Cloud Inside
  2. Cloud Outside

That would also mean that we check internally if its is a box or brep. it just feels a bit weird to me to have inputs that are not used between box and brep

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, and actually I noticed that if you feed in a non-axis-aligned bounbding box, it computes the axis aligned bb of that box, so there is some improvement there too...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I improved it like this, let me know what you think !
Capture d'écran 2025-08-04 232930

@DamienGilliard
Copy link
Collaborator Author

@eleniv3d , I believed I answered to your comments. Sorry the metadata was quite sloppy.
Asking for a second review following the changes ;)
Thanks a lot !

@DamienGilliard DamienGilliard requested a review from eleniv3d August 4, 2025 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants