-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
New Mouse Handling #92
Conversation
…on in 3D. Temporarily add keyboard bindings that morph to different modes to the Skeleton.
…width of the window.
…-click to follow object is broken in this commit. @bagnell is on the case.
Conflicts: Examples/Skeleton/Skeleton.js
…ium into mouse-handling
Conflicts: Examples/Skeleton/Skeleton.js
Conflicts: Examples/Skeleton/Skeleton.js
Conflicts: Examples/Skeleton/Skeleton.js
Conflicts: Apps/CesiumViewer/CesiumViewer.js Examples/Skeleton/Skeleton.js
…but one has a key modifier.
Using 'this.' was incorrect in this location, the correct notation would be 'widget.', but the widget doesn't know or need to know about the particular controller being used here. So, it's local now.
General comments
|
|
||
if (positionWC.x < -maxX || positionWC.x > maxX || positionWC.y < -maxY || positionWC.y > maxY) { | ||
if (!this._translateHandler.isButtonDown()) { | ||
var animations = Tween.getAll(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that the rest of the code uses AnimationCollection
, why break the abstraction here and go behind its back to Tween
? Why not add something to AnimationCollection
instead and use it here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or just keep a flag and avoid the search.
@pjcozzi Some answers to the questions in the general comments:
|
|
The maximum y coordinate was being estimated by The only problem with the free look in Columbus view is staying in the new constraints. For example, we want the map to always be in view, but what if we use free look so that the view vector doesn't intersect the plane the map is on? |
I think if they're using the shift key for free look, that means they're probably not a novice user and they almost certainly don't want to be constrained to only see the map. Have to turn off the constraints at that point, or find some way to permit them to do what they want. Remember it's not always about preventing them seeing a black screen at all costs. We have to allow them to explore a 3d volume of interest, the box extending from the map up to geo and beyond. As long as any portion of this box intersects the view volume, even if it's empty, it's allowed. |
When looking up in Columbus view, the map doesn't always have to be in view. What is the map anyway? What about when we have terrain? A peak could be in view even though the base plane is in not. As @emackey says, users may want to look up at objects in the sky, and not necessarily have any of the ground in view. |
…iables and functions.
…en map is not visible.
@pjcozzi The last set of commits fix the problem in 2D and adds free look back to Columbus view. |
I changed the max latitude to pi/2. The reason it seems like the map is not in view is because the Bing imagery only extends to 85 degrees. If you change the tile provider to something that is defined past 85 degrees, like the SingleTileProvider in the Sandbox, you can see that the map is always visible. |
The mouse handling has been changed to be consistent across all scene modes:
Left button drag moves the camera over the surface.
Middle button drag rotates about a point on the surface.
Right button drag and wheel zoom in and out.