Terrain-relative GeoPoints #33
Replies: 4 comments
-
Hi! It is not a planned feature. TBH... we mildly regret doing this in osgEarth so were planning not to do the same thing in Rocky. It is kind of a pain to manage and introduces too much ambiguity. |
Beta Was this translation helpful? Give feedback.
-
It seems kind of fundamental to 3D map software to me. Most things humans care about are at ground level or just above it, and next to nothing in the real world is directly on the surface of the WGS84 reference ellipsoid. I might be missing something, but I've not even found a way to manually query the terrain height given an elevation layer in order to explicitly convert things. |
Beta Was this translation helpful? Give feedback.
-
A GeoPoint is a data structure that (in my judgement) should be able to standalone represent a unique location in space. It probably makes the most sense to represent a GeoPoint's Z value in MSL and then have a separate way to deal with height-above-terrain. The HAT calculation depends on separate information being available (the terrain data) which is a separate resource. So, while you are certainly correct, it's just a matter of how to organize the API. One approach could be a separate type (e.g., EntityPosition) that is based on a GeoPoint (for its 2D coordinates) but then can express a terrain-relative altitude. Processing an "EntityPosition" might then involve the step of converting its altitude to a fixed GeoPoint for rendering, intersection, or whatever. Just thoughts for now and I appreciate yours as well :) |
Beta Was this translation helpful? Give feedback.
-
I've implemented a proof-of-concept here #44. As a tangent, I'm not generally keen on GeoTransform and that PR's EntityTransform classes inheriting from |
Beta Was this translation helpful? Give feedback.
-
osgEarth supports GeoPoints with terrain-relative altitude, and as far as I can tell, this isn't something Rocky can do. Am I missing anything, and is this a planned feature if not?
Beta Was this translation helpful? Give feedback.
All reactions