-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Add CZML velocity vector orientation support. #5807
Conversation
@shunter, thanks for the pull request! Maintainers, we have a signed CLA from @shunter, so you can review this at any time. I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to I am a bot who helps you make Cesium awesome! Thanks again. |
6f9e013
to
4111d8e
Compare
Awesome! Is interpolation supported? I'm probably using it wrong, but I tried adding these lines to the aircraft position in your demo above:
The result was, the aircraft's orientation had both smooth interpolated changes cut by abrupt orientation changes at the path points. I would hope for just smooth changes, but having both is worse than having either one individually. |
I'm assuming that those artifacts are just a result of limitations of the approach. Client-side finite differencing is not going to produce smooth results, since it's sort of trying to infer information that's not really part of the data. |
@emackey are you volunteering to review this? 😄 |
This could also be a data issue. I'm not sure where the data in this example came from, but it just might not lend itself well to Lagrange interpolation. The Interpolation Sandcastle example doesn't suffer from this problem. |
At first glance, this all looks fine to me I'll take a closer look tomorrow but if someone beats me too it, that's fine by me. Thanks @shunter! |
b79f98c
to
fad3e2e
Compare
* Improve handling of existing alignedAxis velocity support. We now distinguish properties which must produce a unit cartesian (currently only alignedAxis). For those properties, we always normalize on the client to avoid later errors. * Fix velocityReference use from within an interval. Fixes #5738 * Fix promise handling in CzmlDataSourceSpec. Many tests were calling .load without using the resulting promise. This meant that any exceptions during CZML load would be silently ignored.
fad3e2e
to
03b0a86
Compare
Thanks again @shunter! |
orientation
defined as the client-side calculation of the velocity direction, via the existingvelocityReference
concept. As before, this still implies finite differencing, with the same limitations as before. Fixes Ability to specify orientation with VelocityOrientationProperty AnalyticalGraphicsInc/czml-writer#140alignedAxis
velocity support. We now distinguish properties which must produce a unit cartesian (currently onlyalignedAxis
). For those properties, we always normalize values on the client to avoid later errors.velocityReference
use from within an interval. Previously we handledreference
specially while processing. Generalized this concept to instead consider them "specialized" (as opposed to plain value) properties. This now includes the client-side velocity calculating properties, and potentially others in the future. As a result a lot of the logic was inverted throughout the processing. Fixes velocityReference is not supported within an interval. #5738.load
without using the resulting promise. This meant that any exceptions during CZML load would be silently ignored by the tests. Remember, any test code that calls a method returning a promise but doesn't use the result is probably wrong!