Reflections poorly supported/documented
- Dominant language
- Rust
- Stars
- 4.8k
- Forks
- 565
- PR merge metrics
- No merged PRs in 30d
Description
TL;DR: I'd like to be able to reflect an `Isometry3` about a plane, including both translation and rotation components. I see no reason this would be impossible, but I can't figure out how to do so given the documentation.
---
Hi! I'm trying to use nalgebra for some relatively simple 3D geometry utilities, and one thing I'd like to be able to do is go from my physical world (Z is up and XY is the ground plane) to the coordinate system CSS uses (which I think is pretty common): Y is down, X is left-to-right, and Z goes inward (so it's left-handed, I'm pretty sure).
nalgebra is so far the geometry library I know best for any language, so there might be a better way of doing this, but I don't know what to look for. At the moment, the way I'm trying to do this is:
1. Rotate isometry about the x axis (pi / 2)
2. Negating the y component of the translation
3. Rotating just the rotation about the Z axis
I did this out on paper, and I think it should work, but I can't get the implementation right. I'm definitely not asking you to do my homework (not that this is homework), but I think the second two components could be properly done with a reflection about the XZ plane, as that's basically the difference between a left-handed coordinate system with Y facing down and a right-handed one with Y facing up.
Contributor guide
No contributing guide indexed for this repository
Research direction
No file or test is named in the issue. Start by reading the Isometry3 API and existing reflection documentation, then trace how translation and rotation components are represented. Done means a documented way to reflect an Isometry3 across a plane, including both components, with coverage for the requested coordinate-system transformation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100