@class GEOComposedRoute, VKPolylineOverlayRenderRegion, GEOPathMatcher, NSUUID, NSSet, NSMutableArray, VKPolylineOverlay; @protocol VKRouteLineObserverProtocol; @interface VKRouteLine : NSObject { BOOL _matchToRoads; struct Matrix { double _e[16]; } _inverseMatrix; double _boundsUnitsPerMeter; double _metersPerPoint; double _viewUnitsPerPoint; struct fast_shared_ptr { struct _fast_shared_ptr_control *_control; } _userLocationSection; struct PolylineCoordinate { unsigned int index; float offset; } _userLocationIndex; struct Matrix { float _e[2]; } _userLocation; struct _retain_ptr { void /* function */ **_vptr$_retain_ptr; NSUUID *_obj; struct _retain_objc_arc { } _retain; struct _release_objc_arc { } _release; } _revisionIdentifier; double _lastTrafficTimeStamp; NSSet *_retainedMatchedSegment; struct ManeuverArrowCoordinates { struct vector> { struct ManeuverArrowInfo *__begin_; struct ManeuverArrowInfo *__end_; struct __compressed_pair> { struct ManeuverArrowInfo *__value_; } __end_cap_; } _maneuverArrows; } _maneuverArrowCoordinates; double _builtViewUnitsPerPoint; NSMutableArray *_pendingMatchedSegments; struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _matchedSegmentsLock; } @property BOOL hasNewRoadMatches; @property (readonly, nonatomic) struct vector, std::allocator>> { void *__begin_; void *__end_; struct __compressed_pair *, std::allocator>> { void *__value_; } __end_cap_; } sections; @property (readonly, nonatomic) struct Box { struct Matrix { double _e[3]; } _minimum; struct Matrix { double _e[3]; } _maximum; } bounds; @property (readonly, nonatomic) VKPolylineOverlayRenderRegion *renderRegion; @property (readonly, nonatomic) double boundsInWorldUnit; @property (readonly, nonatomic) VKPolylineOverlay *overlay; @property (readonly, nonatomic) GEOComposedRoute *composedRoute; @property (weak, nonatomic) id observer; @property (readonly, nonatomic) GEOPathMatcher *pathMatcher; @property unsigned short numPathsMatching; @property (readonly, nonatomic) NSMutableArray *matchedSegments; @property (nonatomic) unsigned int matchingStartIndex; @property (nonatomic) unsigned int matchingEndIndex; @property (nonatomic) double simplificationEpsilonPoints; - (void)dealloc; - (id).cxx_construct; - (void).cxx_destruct; - (void)forEachSection:(id /* block */)a0; - (struct optional { union { char x0; struct VKRouteLineSnapResult { struct Mercator3 { double x0[3]; } x0; struct pair, geo::Mercator3> { struct Mercator3 { double x0[3]; } x0; struct Mercator3 { double x0[3]; } x1; } x1; } x1; } x0; BOOL x1; })snapRouteMatch:(id)a0; - (void)_addMatchedSegments:(id)a0; - (void)_clearMatchedSegments; - (void)_updateBounds:(id)a0 boundsInflation:(float)a1; - (void)_updateTilesCovered:(id)a0; - (double)boundsUnitsPerMeter; - (BOOL)buildRouteLine:(id)a0 matchToRoads:(BOOL)a1 shouldGenerateSnapPath:(BOOL)a2 viewUnitsPerPoint:(double)a3 force:(BOOL)a4 boundsInflation:(float)a5 isGradientTraffic:(BOOL)a6 currentLegIndex:(unsigned int)a7; - (void)createMeshIfNecessary:(long long)a0; - (void)generateArrowsForManeuverDisplayMode:(int)a0 routeLineWidth:(double)a1; - (id)initWithPolylineOverlay:(id)a0; - (struct Matrix { double x0[16]; })inverseManeuverTransform; - (BOOL)isTrafficUpToDate; - (BOOL)isTrafficUptoDate:(double)a0; - (struct vector, std::allocator>> { void *x0; void *x1; struct __compressed_pair *, std::allocator>> { void *x0; } x2; })maneuverPoints; - (struct Matrix { double x0[16]; })maneuverTransform; - (BOOL)needsUpdateForViewingScale:(double)a0; - (void)splitRouteLineAtAnnotation:(id)a0; @end