parry
parry copied to clipboard
Feature normal at point
Some shapes are missing ``
- halfspace -> todo?
- triangle (2d) -> attempt 🤔 triangle has no edge?
- trimesh (2d) -> not attempted 🤔 -> get all neighbour vertices and compute normal ? sounds convoluted
- Cone -> attempt ; math can probably be simplified: see https://github.com/user-attachments/assets/f068cd71-35dd-4f00-b400-0e2c175c850e
- Cylinder -> done ; check if faces are ok (to challenge with cone too)
- heightfield -> todo -> ⚠️ more difficult
- polyline -> todo -> ⚠️ more difficult
- Voxels -> ⚠️ more difficult
- compound -> impossible? we'd need to know which shape we're targetting the feature on (more complex featureId, out of scope for this PR)
- roundshape -> what whould that mean? delegate to inner shape? todo?
- identifying features is complex due to 2 ways of doing that (ncollide/parry)
- TODO: lowprio: return err<notimplemented> or no such feature
- This leads to controversial api changes so I'd like to keep this PR simple
Cone implementation can probably be simplified from:
the concept of Feature and FeatureId is a bit complex and may need a more hoolistic approach, I'm pausing my work on it.