Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix existing implementation issues with the Track #151

Open
MakoEnergy opened this issue May 31, 2017 · 1 comment
Open

Fix existing implementation issues with the Track #151

MakoEnergy opened this issue May 31, 2017 · 1 comment

Comments

@MakoEnergy
Copy link
Member

MakoEnergy commented May 31, 2017

The current Track class suffers from a few issues:

  1. Most of the interpolators lack tests of them being used in conjunction with the Track.
  2. Rotations are not being properly handled. SLerp and NLerp are desirable for handling rotations.

Some extra notes about these issues:

  1. It is not currently clear that SLerp and/or NLerp can be written in a generic way as an interpolator class.
  2. Even if they could, handling a compound class (such as a Transform) couldn't be handled if we take that approach with the existing Track design.
  3. Other approaches involve defeating the existing design to one extent or another. Such as writing an "InterpolationTraits" class for each math type we want to interpolate.

A simple test of the Track exists in EngineDemo, where translations are being handled appropriately with the LinearInterpolator, but rotations are going 3/4ths the way and then reversing, due to the algorithm used assuming a reverse direction is the fastest path back to origin. There are also some assumptions being made in respect to adding Quaternions, which does not produce a concatenation of two Quaternions like it does with Vectors.

A vaguely related issue: #73

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant