@class NSMutableArray, NSMutableDictionary; @interface VKLabelNavRoadGraph : NSObject { struct unordered_set, std::hash>, std::equal_to>, geo::StdAllocator, mdm::Allocator>> { struct __hash_table, std::hash>, std::equal_to>, geo::StdAllocator, mdm::Allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *, mdm::Allocator>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *, mdm::Allocator>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *, mdm::Allocator>> { struct __compressed_pair, void *> *> *, mdm::Allocator>> { unsigned long long __value_; struct StdAllocator, void *> *> *, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, geo::StdAllocator, void *>, mdm::Allocator>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; struct StdAllocator, void *>, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __p1_; struct __compressed_pair>> { unsigned long long __value_; } __p2_; struct __compressed_pair>> { float __value_; } __p3_; } __table_; } _tiles; struct unordered_set, std::hash>, std::equal_to>, geo::StdAllocator, mdm::Allocator>> { struct __hash_table, std::hash>, std::equal_to>, geo::StdAllocator, mdm::Allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *, mdm::Allocator>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *, mdm::Allocator>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *, mdm::Allocator>> { struct __compressed_pair, void *> *> *, mdm::Allocator>> { unsigned long long __value_; struct StdAllocator, void *> *> *, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, geo::StdAllocator, void *>, mdm::Allocator>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; struct StdAllocator, void *>, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __p1_; struct __compressed_pair>> { unsigned long long __value_; } __p2_; struct __compressed_pair>> { float __value_; } __p3_; } __table_; } _duplicateTiles; NSMutableDictionary *_tileDatasByIndex; NSMutableArray *_intersections; BOOL _oppositeCarriagewayJunctionsValid; NSMutableArray *_oppositeCarriagewayJunctions; struct Matrix { float _e[2]; } _unitHeading; BOOL _offRouteJunctionsValid; struct Box { struct Matrix { double _e[2]; } _minimum; struct Matrix { double _e[2]; } _maximum; } _offRouteJunctionSelectRect; NSMutableArray *_offRouteJunctions; struct PolylineCoordinate { unsigned int index; float offset; } _routeUserOffset; BOOL _routeFeatureMapValid; struct unordered_map, geo::StdAllocator>, std::shared_ptr, std::hash, geo::StdAllocator>>, std::equal_to, geo::StdAllocator>>, geo::StdAllocator, geo::StdAllocator>, std::shared_ptr>, mdm::Allocator>> { struct __hash_table, geo::StdAllocator>, std::shared_ptr>, std::__unordered_map_hasher, geo::StdAllocator>, std::__hash_value_type, geo::StdAllocator>, std::shared_ptr>, std::hash, geo::StdAllocator>>, std::equal_to, geo::StdAllocator>>>, std::__unordered_map_equal, geo::StdAllocator>, std::__hash_value_type, geo::StdAllocator>, std::shared_ptr>, std::equal_to, geo::StdAllocator>>, std::hash, geo::StdAllocator>>>, geo::StdAllocator, geo::StdAllocator>, std::shared_ptr>, mdm::Allocator>> { struct unique_ptr, geo::StdAllocator>, std::shared_ptr>, void *> *> *[], std::__bucket_list_deallocator, geo::StdAllocator>, std::shared_ptr>, void *> *> *, mdm::Allocator>>> { struct __compressed_pair, geo::StdAllocator>, std::shared_ptr>, void *> *> **, std::__bucket_list_deallocator, geo::StdAllocator>, std::shared_ptr>, void *> *> *, mdm::Allocator>>> { void **__value_; struct __bucket_list_deallocator, geo::StdAllocator>, std::shared_ptr>, void *> *> *, mdm::Allocator>> { struct __compressed_pair, geo::StdAllocator>, std::shared_ptr>, void *> *> *, mdm::Allocator>> { unsigned long long __value_; struct StdAllocator, geo::StdAllocator>, std::shared_ptr>, void *> *> *, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, geo::StdAllocator>, std::shared_ptr>, void *> *>, geo::StdAllocator, geo::StdAllocator>, std::shared_ptr>, void *>, mdm::Allocator>> { struct __hash_node_base, geo::StdAllocator>, std::shared_ptr>, void *> *> { void *__next_; } __value_; struct StdAllocator, geo::StdAllocator>, std::shared_ptr>, void *>, mdm::Allocator> { struct Allocator *_allocator; } __value_; } __p1_; struct __compressed_pair, geo::StdAllocator>, std::__hash_value_type, geo::StdAllocator>, std::shared_ptr>, std::hash, geo::StdAllocator>>, std::equal_to, geo::StdAllocator>>>> { unsigned long long __value_; } __p2_; struct __compressed_pair, geo::StdAllocator>, std::__hash_value_type, geo::StdAllocator>, std::shared_ptr>, std::equal_to, geo::StdAllocator>>, std::hash, geo::StdAllocator>>>> { float __value_; } __p3_; } __table_; } _routeFeatureMap; BOOL _simplifiedRouteValid; struct vector> { struct LabelPoint *__begin_; struct LabelPoint *__end_; struct __compressed_pair> { struct LabelPoint *__value_; struct StdAllocator { struct Allocator *_allocator; } __value_; } __end_cap_; } _simplifiedRoutePoints; unsigned long long _currentRoadStartSimplifiedPointIndex; BOOL _screenRouteValid; struct vector> { struct RouteSegment *__begin_; struct RouteSegment *__end_; struct __compressed_pair> { struct RouteSegment *__value_; struct StdAllocator { struct Allocator *_allocator; } __value_; } __end_cap_; } _screenRouteSegments; unsigned long long _firstPOIAligningRouteSegment; } @property (retain, nonatomic) NSMutableArray *junctions; - (void)reset; - (id)initWithJunctions:(id)a0; - (void)_findOffRouteJunctions; - (id)_findInterTileJunctionForJunction:(id)a0; - (void)addRouteRoadEdge:(const struct VKLabelNavRouteRoadEdge { struct PolylineCoordinate { unsigned int x0; float x1; } x0; struct PolylineCoordinate { unsigned int x0; float x1; } x1; struct GeoCodecsRoadEdge { struct GeoCodecsMultiSectionFeature *x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; struct GeoCodecsConnectivityJunction *x5; struct GeoCodecsConnectivityJunction *x6; } x2; unsigned long long x3; unsigned long long x4; } *)a0 atA:(BOOL)a1 isRouteRefineJunction:(BOOL)a2 tile:(const void *)a3 junctionList:(id)a4; - (id).cxx_construct; - (id)_nextIntersectionForRoad:(id)a0; - (unsigned long long)countReadyJunctionLists; - (void)debugDraw:(id)a0 overlayConsole:(void *)a1 navContext:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a2; - (id)oppositeCarriagewayJunctions; - (void)_updateSimplifiedRoute; - (id)_junctionForRoadEdge:(const struct GeoCodecsRoadEdge { struct GeoCodecsMultiSectionFeature *x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; struct GeoCodecsConnectivityJunction *x5; struct GeoCodecsConnectivityJunction *x6; } *)a0 atA:(BOOL)a1 routeOffset:(struct PolylineCoordinate { unsigned int x0; float x1; })a2 tile:(const void *)a3; - (id)overpassJunctionForJunction:(id)a0; - (id)junctionListForDepth:(unsigned long long)a0; - (void)routeJunctionsHaveChanged; - (void).cxx_destruct; - (BOOL)collideRouteWithLabel:(id)a0 routeCrossProduct:(float *)a1 context:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a2; - (struct Matrix { float x0[2]; })unitHeading; - (BOOL)_checkIfDualCarriageWayConnectorRoad:(id)a0 fromJunction:(id)a1 toJunction:(id)a2 checkShields:(BOOL)a3; - (void)_updateIntersectionsForDepth:(unsigned long long)a0; - (void)_transformRouteToScreenWithContext:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a0; - (BOOL)isPriorRouteCollinearWithRoad:(id)a0 distance:(float)a1; - (unsigned char)computeRoutePositionForPOIAtPixel:(const void *)a0 currentPosition:(unsigned char)a1 context:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a2; - (void)evaluateDualCarriagewayForJunction:(id)a0 outputJunctionList:(id)a1; - (id)offRouteGraphJunctionsWithNavContext:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a0 maxJunctions:(unsigned long long)a1 isOnRoute:(BOOL)a2; - (BOOL)prepareOppositeCarriagewayJunctions; - (id)junctionForRoad:(id)a0 nearJunction:(BOOL)a1 crossTileEdge:(BOOL)a2; - (void)startingLabelLayoutWithContext:(struct NavContext { void /* function */ **x0; struct LabelManager *x1; struct MapNavLabeler *x2; struct LabelLayoutContext *x3; struct LabelNavLayoutContext *x4; } *)a0 routeUserOffset:(struct PolylineCoordinate { unsigned int x0; float x1; })a1; - (id)offRouteJunctionList; - (void)setTiles:(const void *)a0; - (id)nextRoadSegmentForRoad:(id)a0; @end