luxlabs header browser preview


@class VKTimedAnimation;
@protocol VKTrackableAnnotation, VKTrackableAnnotationPresentation;

@interface VKAnnotationTrackingCameraController : VKCameraController {
    id<VKTrackableAnnotationPresentation> _annotationPresentation;
    VKTimedAnimation *_currentAnimation;
    struct Matrix<double, 3, 1> { double _e[3]; } _currentAnimationStartPoint;
    struct Matrix<double, 3, 1> { double _e[3]; } _currentAnimationStartCameraPosition;
    struct Matrix<double, 3, 1> { double _e[3]; } _currentAnimationEndPoint;
    struct Matrix<double, 3, 1> { double _e[3]; } _currentAnimationEndCameraPosition;
    double _pendingChangeDuration;
    VKTimedAnimation *_currentHeadingAnimation;
    double _pendingHeadingChangeDuration;
    float _headingAnimationCompletedAngle;
    struct { unsigned char hasPendingChange : 1; unsigned char paused : 1; unsigned char trackingHeading : 1; unsigned char hasPendingHeadingChange : 1; unsigned char isInitialRegionChange : 1; unsigned char isJumpingToAnnotation : 1; unsigned char hasVehicleHeading : 1; unsigned char annotationImplementsAccuracy : 1; unsigned char annotationImplementsHasValidHeading : 1; unsigned char annotationImplementsHeading : 1; unsigned char annotationImplementsExpectedCoordinateUpdateInterval : 1; unsigned char annotationImplementsExpectedHeadingUpdateInterval : 1; } _flags;
}

@property (nonatomic) struct { BOOL shouldZoomToFit; double idealCenterCoordinateDistance; BOOL shouldPreserveUserSpecifiedZoomLevel; BOOL resetAfterTracking; } behavior;
@property (nonatomic) void *elevationLogic;
@property (nonatomic) long long headingAnimationDisplayRate;
@property (nonatomic) BOOL hasUserSpecifiedZoomLevel;
@property (nonatomic) BOOL hasVehicleHeading;
@property (readonly, nonatomic) BOOL shouldForceZoomToFit;
@property (readonly, nonatomic) id<VKTrackableAnnotation> annotation;
@property (readonly, nonatomic, getter=isTrackingHeading) BOOL trackingHeading;

- (void)pauseAnimation;
- (void)dealloc;
- (void)stopTrackingAnnotation;
- (id)initWithMapDataAccess:(struct MapDataAccess { } *)a0 animationRunner:(struct AnimationRunner { } *)a1 runLoopController:(struct RunLoopController { struct MapEngine *x0; long long x1; } *)a2 cameraDelegate:(id)a3;
- (id).cxx_construct;
- (void)startTrackingAnnotation:(id)a0 trackHeading:(BOOL)a1 animated:(BOOL)a2 duration:(double)a3 timingFunction:(id /* block */)a4;
- (void)setGesturing:(BOOL)a0;
- (BOOL)isAnimating;
- (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3;
- (void).cxx_destruct;
- (void)resumeAnimation;
- (void)updateFramerate;
- (void)_goToAnnotationAnimated:(BOOL)a0 duration:(double)a1 timingFunction:(id /* block */)a2 isInitial:(BOOL)a3;
- (void)_rotateToHeadingAnimated:(BOOL)a0 duration:(double)a1;

@end