Convert Camera to ES6 class syntax and inherit Map from it #3421
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was trying to make
Camera
a an object used fromMap
, as discussed in #3408, but it got really messy, with either lots of code duplication or splitting similar responsibilities betweenMap
andCamera
, and it also required rewriting tons of camera tests.So I'm proposing the make
Camera
the base class ofMap
instead. This way it looks much cleaner, is a clear improvement over the current state (mixing inCamera.prototype
), and doesn't require as many changes. We can follow up on any improvements in subsequent PRs (specifically, balancing out responsibilities betweenCamera
,Transform
andMap
, and camera event refactoring #3357).In addition to the change above, I made some minor cleanups inwill follow up in another PR.Camera
code and also moved all camera events there.👀 @lucaswoj @jfirebaugh