Add support for arbitrary coordinate systems
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 799
- Forks
- 51
- PR merge metrics
- No merged PRs in 30d
Description
Might need to go in a major release as it might be quite a big change.
See #92 for prior discussion.
The idea is to expose to the host runtime a mechanism for specifying the default coordinate system that RTM is compiled with. This would allow it to just work with things like rotation matrices and look at transforms. A template argument could be added to functions that care about it, along the lines of:
template<class coord = RTM_DEFAULT_COORDINATE_SYSTEM>
matrix3x4f look_at(vector4f position, vector4f direction, vector4f up)
Callers can just use loop_at(foo, bar, up) to use the default coordinate system (the one specified by the host runtime) or they can explicitly provide one (e.g rtm::coord:maya) for import/export purposes. I haven't seen anything quite like this used out there, so it'll be experimental in a way. Hopefully it pans out without too many complications.
Questions that arise with a design like this:
- Does it scale?
- Is it easy/possible to implement functions that are coordinate system agnostic (e.g. look_at)?
- How do they compose (callers need to expose/propagate the template argument if they wish to be agnostic)?
See how the FBX SDK handles it.
A WIP draft is available in the research/coordinate-system branch.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the prior discussion in #92, the FBX SDK axis-system reference, and the WIP research/coordinate-system branch. Resolve whether the proposed default and explicit coordinate-system mechanism scales, supports coordinate-system-agnostic functions, and composes across callers; done requires an agreed design and corresponding implementation plan.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100