libosmscout 1.1.1
Loading...
Searching...
No Matches
RouteDescriptionPostprocessor.h
Go to the documentation of this file.
1#ifndef LIBOSMSCOUT_ROUTEDESCRIPTIONPOSTPROCESSOR_H
2#define LIBOSMSCOUT_ROUTEDESCRIPTIONPOSTPROCESSOR_H
3
4/*
5 This source is part of the libosmscout library
6 Copyright (C) 2009-2018 Tim Teulings
7
8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public
10 License as published by the Free Software Foundation; either
11 version 2.1 of the License, or (at your option) any later version.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21*/
22
23#include <list>
24#include <memory>
25#include <string>
26#include <unordered_map>
27#include <vector>
28#include <map>
29
30#include <osmscout/ObjectRef.h>
31#include <osmscout/Path.h>
32#include <osmscout/GeoCoord.h>
36#include <osmscout/util/Time.h>
37
38namespace osmscout {
39
48 {
49 public:
54 {
55 virtual ~Callback() = default;
56
60 virtual void BeforeRoute();
61
69 virtual void OnStart(const RouteDescription::StartDescriptionRef& startDescription,
70 const RouteDescription::TypeNameDescriptionRef& typeNameDescription,
71 const RouteDescription::NameDescriptionRef& nameDescription);
72
78 virtual void OnTargetReached(const RouteDescription::TargetDescriptionRef& targetDescription);
79
90 virtual void OnTurn(const RouteDescription::TurnDescriptionRef& turnDescription,
91 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription,
92 const RouteDescription::DirectionDescriptionRef& directionDescription,
93 const RouteDescription::TypeNameDescriptionRef& typeNameDescription,
94 const RouteDescription::NameDescriptionRef& nameDescription);
95
102 virtual void OnRoundaboutEnter(const RouteDescription::RoundaboutEnterDescriptionRef& roundaboutEnterDescription,
103 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription);
104
111 virtual void OnRoundaboutLeave(const RouteDescription::RoundaboutLeaveDescriptionRef& roundaboutLeaveDescription,
112 const RouteDescription::NameDescriptionRef& nameDescription);
113
120 virtual void OnMotorwayEnter(const RouteDescription::MotorwayEnterDescriptionRef& motorwayEnterDescription,
121 const RouteDescription::CrossingWaysDescriptionRef& crossingWaysDescription);
130 virtual void OnMotorwayChange(const RouteDescription::MotorwayChangeDescriptionRef& motorwayChangeDescription,
131 const RouteDescription::MotorwayJunctionDescriptionRef& motorwayJunctionDescription,
132 const RouteDescription::DirectionDescriptionRef& directionDescription,
133 const RouteDescription::DestinationDescriptionRef& crossingDestinationDescription);
143 virtual void OnMotorwayLeave(const RouteDescription::MotorwayLeaveDescriptionRef& motorwayLeaveDescription,
144 const RouteDescription::MotorwayJunctionDescriptionRef& motorwayJunctionDescription,
145 const RouteDescription::DirectionDescriptionRef& directionDescription,
146 const RouteDescription::NameDescriptionRef& nameDescription,
147 const RouteDescription::DestinationDescriptionRef& destinationDescription);
148
154 virtual void OnPathNameChange(const RouteDescription::NameChangedDescriptionRef& nameChangedDescription);
155
161 virtual void OnMaxSpeed(const RouteDescription::MaxSpeedDescriptionRef& maxSpeedDescription);
162
169 virtual void OnPOIAtRoute(const RouteDescription::POIAtRouteDescriptionRef& poiAtRouteDescription);
170
177 virtual void OnViaAtRoute(const RouteDescription::ViaDescriptionRef& viaDescription);
178
185 virtual void BeforeNode(const RouteDescription::Node& node);
190 virtual void AfterNode(const RouteDescription::Node& node);
191
197 virtual bool Continue() const;
198 };
199
200 public:
201 void GenerateDescription(const RouteDescription& description,
202 Callback& callback) const;
203
206 Callback& callback) const;
207 };
208
209}
210
211#endif //LIBOSMSCOUT_ROUTEDESCRIPTIONPOSTPROCESSOR_H
#define OSMSCOUT_API
Definition CoreImportExport.h:45
Definition RouteDescription.h:688
Definition RouteDescription.h:55
std::shared_ptr< ViaDescription > ViaDescriptionRef
Definition RouteDescription.h:682
std::shared_ptr< TargetDescription > TargetDescriptionRef
Definition RouteDescription.h:149
std::shared_ptr< NameChangedDescription > NameChangedDescriptionRef
Definition RouteDescription.h:207
std::shared_ptr< RoundaboutEnterDescription > RoundaboutEnterDescriptionRef
Definition RouteDescription.h:353
std::shared_ptr< CrossingWaysDescription > CrossingWaysDescriptionRef
Definition RouteDescription.h:256
std::shared_ptr< MotorwayJunctionDescription > MotorwayJunctionDescriptionRef
Definition RouteDescription.h:476
std::shared_ptr< MotorwayChangeDescription > MotorwayChangeDescriptionRef
Definition RouteDescription.h:432
std::shared_ptr< StartDescription > StartDescriptionRef
Definition RouteDescription.h:130
std::shared_ptr< NameDescription > NameDescriptionRef
Definition RouteDescription.h:178
std::shared_ptr< MaxSpeedDescription > MaxSpeedDescriptionRef
Definition RouteDescription.h:517
std::shared_ptr< TypeNameDescription > TypeNameDescriptionRef
Definition RouteDescription.h:540
std::shared_ptr< TurnDescription > TurnDescriptionRef
Definition RouteDescription.h:331
std::shared_ptr< MotorwayLeaveDescription > MotorwayLeaveDescriptionRef
Definition RouteDescription.h:454
std::shared_ptr< MotorwayEnterDescription > MotorwayEnterDescriptionRef
Definition RouteDescription.h:403
std::shared_ptr< DestinationDescription > DestinationDescriptionRef
Definition RouteDescription.h:495
std::shared_ptr< RoundaboutLeaveDescription > RoundaboutLeaveDescriptionRef
Definition RouteDescription.h:381
std::shared_ptr< POIAtRouteDescription > POIAtRouteDescriptionRef
Definition RouteDescription.h:583
std::shared_ptr< DirectionDescription > DirectionDescriptionRef
Definition RouteDescription.h:319
std::list< RouteDescription::Node >::const_iterator NodeIterator
Definition RouteDescription.h:799
Definition RouteDescriptionPostprocessor.h:48
void GenerateDescription(const RouteDescription &description, Callback &callback) const
void GenerateDescription(const RouteDescription::NodeIterator &first, const RouteDescription::NodeIterator &last, Callback &callback) const
Definition Area.h:39
Definition RouteDescriptionPostprocessor.h:54
virtual void OnViaAtRoute(const RouteDescription::ViaDescriptionRef &viaDescription)
virtual void OnTargetReached(const RouteDescription::TargetDescriptionRef &targetDescription)
virtual void OnMaxSpeed(const RouteDescription::MaxSpeedDescriptionRef &maxSpeedDescription)
virtual void OnPOIAtRoute(const RouteDescription::POIAtRouteDescriptionRef &poiAtRouteDescription)
virtual void OnMotorwayEnter(const RouteDescription::MotorwayEnterDescriptionRef &motorwayEnterDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription)
virtual void OnRoundaboutLeave(const RouteDescription::RoundaboutLeaveDescriptionRef &roundaboutLeaveDescription, const RouteDescription::NameDescriptionRef &nameDescription)
virtual void BeforeNode(const RouteDescription::Node &node)
virtual void OnMotorwayLeave(const RouteDescription::MotorwayLeaveDescriptionRef &motorwayLeaveDescription, const RouteDescription::MotorwayJunctionDescriptionRef &motorwayJunctionDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::NameDescriptionRef &nameDescription, const RouteDescription::DestinationDescriptionRef &destinationDescription)
virtual void OnStart(const RouteDescription::StartDescriptionRef &startDescription, const RouteDescription::TypeNameDescriptionRef &typeNameDescription, const RouteDescription::NameDescriptionRef &nameDescription)
virtual void OnMotorwayChange(const RouteDescription::MotorwayChangeDescriptionRef &motorwayChangeDescription, const RouteDescription::MotorwayJunctionDescriptionRef &motorwayJunctionDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::DestinationDescriptionRef &crossingDestinationDescription)
virtual void OnTurn(const RouteDescription::TurnDescriptionRef &turnDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription, const RouteDescription::DirectionDescriptionRef &directionDescription, const RouteDescription::TypeNameDescriptionRef &typeNameDescription, const RouteDescription::NameDescriptionRef &nameDescription)
virtual void OnPathNameChange(const RouteDescription::NameChangedDescriptionRef &nameChangedDescription)
virtual void AfterNode(const RouteDescription::Node &node)
virtual void OnRoundaboutEnter(const RouteDescription::RoundaboutEnterDescriptionRef &roundaboutEnterDescription, const RouteDescription::CrossingWaysDescriptionRef &crossingWaysDescription)