Storing all the ValueAnimator's that could be run. Only specific camera animators could be used in this plugin.
Controlling animation execution - only one ValueAnimator of certain type could be run at a time. If some another animation with same CameraAnimator.type is about to start previous one will be cancelled.
Giving possibility to listen to CameraOptions values changes during animations via listeners.
If several animations of different CameraAnimator.type are running simultaneously map camera will be updated only on oldest animation update (the oldest is the one that was started first). That actually means that animation start order matters. High-level animations flyTo and easeTo will always trigger camera center animator first.
CameraAnimationsPluginImpl is NOT thread-safe meaning all animations must be started from one thread. However, it doesn't have to be the UI thread.
Map camera anchor value. Default value is NULL meaning center of given map view. Left-top corner is represented as ScreenCoordinate (0.0, 0.0).
If anchor is set to some specific value (set directly or by some running anchor animation) it will be used as anchor for all upcoming animations even if they do not animate anchor directly.
Note: If anchor animator is started and no start value is specified explicitly and anchor = NULL - then start value will be set to ScreenCoordinate(0.0, 0.0) automatically and it will be start point for interpolation.