luxlabs header browser preview


@class GEORouteMatch, VKRunningCurve, NSUUID, _delegate, VKPuckAnimatorLocationProjector, CLLocation, VKTimedAnimation;
@protocol VKPuckAnimatorTarget, VKPuckAnimatorDelegate;

@interface VKPuckAnimator : NSObject {
    VKTimedAnimation *_animation;
    VKRunningCurve *_curve;
    VKPuckAnimatorLocationProjector *_locationProjector;
    double _vehicleHeading;
    long long _pausedCount;
    BOOL _suspended;
    BOOL _hasElevation;
    BOOL _resetCourse;
    struct { double latitude; double longitude; } _lastProjectedCoordinate;
    const struct RouteOverlayCache { void /* function */ **x0; id x1; } *_routeOverlayCache;
    struct linear_map<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>, std::equal_to<unsigned long long>, std::allocator<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>>>, std::vector<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>>>> { struct vector<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>>, std::allocator<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>>>> { void *__begin_; void *__end_; struct __compressed_pair<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>> *, std::allocator<std::pair<unsigned long long, std::function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)>>>> { void *__value_; } __end_cap_; } _backing; } _locationUpdateSubscriptions;
    struct Monitorable<md::ConfigValue<GEOConfigKeyDouble, double>> { struct { struct { unsigned int identifier; void *metadata; } key; } _key; double _value; _delegate *_listener; struct function<void (double)> { struct __value_func<void (double)> { struct type { unsigned char __lx[24]; } __buf_; void *__f_; } __f_; } x0; } _puckUpdatePointDeltaForAnimation;
    struct Monitorable<md::ConfigValue<GEOConfigKeyDouble, double>> { struct { struct { unsigned int identifier; void *metadata; } key; } _key; double _value; _delegate *_listener; struct function<void (double)> { struct __value_func<void (double)> { struct type { unsigned char __lx[24]; } __buf_; void *__f_; } __f_; } x0; } _puckUpdateDistanceDeltaThreshold;
    struct optional<md::LocationUpdate> { union { char __null_state_; struct LocationUpdate { CLLocation *location; GEORouteMatch *routeMatch; NSUUID *locationUpdateUUID; } __val_; } ; BOOL __engaged_; } _lastLocationUpdate;
}

@property (readonly, nonatomic) struct optional<std::pair<geo::Mercator3<double>, geo::Mercator3<double>>> { union { char x0; struct pair<geo::Mercator3<double>, geo::Mercator3<double>> { struct Mercator3<double> { double x0[3]; } x0; struct Mercator3<double> { double x0[3]; } x1; } x1; } x0; BOOL x1; } currentSnappedSegment;
@property (nonatomic) struct Matrix<double, 3, 1> { double _e[3]; } lastProjectedPosition;
@property (nonatomic) BOOL alwaysUseGoodRouteMatch;
@property (retain, nonatomic) id<VKPuckAnimatorTarget> target;
@property (weak, nonatomic) id<VKPuckAnimatorDelegate> delegate;
@property (nonatomic) double tracePlaybackSpeedMultiplier;
@property (nonatomic) unsigned long long behavior;

- (void)pause;
- (id)detailedDescription;
- (void)resetCourse;
- (void)_step;
- (void)dealloc;
- (void)_queueLocationUpdate:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2;
- (void)updateLocation:(id)a0 routeMatch:(id)a1;
- (void)start;
- (unsigned long long)subscribeToLocationUpdates:(struct function<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)> { struct __value_func<void (VKPuckAnimator *, CLLocation *, GEORouteMatch *, NSUUID *)> { struct type { unsigned char x0[24]; } x0; void *x1; } x0; })a0;
- (id).cxx_construct;
- (BOOL)hasElevation;
- (void)stop;
- (void)resume;
- (void)_publishLocationUpdate:(id)a0 routeMatch:(id)a1 uuid:(id)a2;
- (void).cxx_destruct;
- (void)updateLocation:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2;
- (id)initWithCallbackQueue:(id)a0;
- (void)unsubscribeFromLocationUpdates:(unsigned long long)a0;
- (void)setRouteOverlayCache:(const struct RouteOverlayCache { void /* function */ **x0; id x1; } *)a0;
- (void)processLocationUpdates;
- (void)updatedPosition:(const void *)a0;
- (void)_updateLocation:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2;
- (void)updateVehicleHeading:(double)a0;

@end