libosmscout  1.1.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osmscout::AbstractRoutingProfile Class Reference

#include <libosmscout/include/osmscout/routing/RoutingProfile.h>

Inheritance diagram for osmscout::AbstractRoutingProfile:
Inheritance graph
[legend]
Collaboration diagram for osmscout::AbstractRoutingProfile:
Collaboration graph
[legend]

Public Member Functions

 AbstractRoutingProfile (const TypeConfigRef &typeConfig)
 
void SetVehicle (Vehicle vehicle)
 
void SetVehicleMaxSpeed (double maxSpeed)
 
virtual void ParametrizeForFoot (const TypeConfig &typeConfig, double maxSpeed)
 
virtual void ParametrizeForBicycle (const TypeConfig &typeConfig, double maxSpeed)
 
virtual bool ParametrizeForCar (const TypeConfig &typeConfig, const std::map< std::string, double > &speedMap, double maxSpeed)
 
Vehicle GetVehicle () const override
 
double GetVehicleMaxSpeed () const
 
void SetCostLimitDistance (const Distance &costLimitDistance)
 
Distance GetCostLimitDistance () const override
 
void SetCostLimitFactor (double costLimitFactor)
 
double GetCostLimitFactor () const override
 
std::string GetCostString (double cost) const override
 
void AddType (const TypeInfoRef &type, double speed)
 
void AddType (const TypeInfoRef &type, SpeedVariant speed)
 
bool CanUse (const RouteNode &currentNode, const std::vector< ObjectVariantData > &objectVariantData, size_t pathIndex) const override
 
bool CanUse (const Area &area) const override
 
bool CanUse (const Way &way) const override
 
bool CanUseForward (const Way &way) const override
 
bool CanUseBackward (const Way &way) const override
 
Duration GetTime (const Area &area, const Distance &distance) const override
 
Duration GetTime (const Way &way, const Distance &distance) const override
 
- Public Member Functions inherited from osmscout::RoutingProfile
virtual ~RoutingProfile ()
 
virtual double GetCosts (const RouteNode &currentNode, const std::vector< ObjectVariantData > &objectVariantData, size_t inPathIndex, size_t outPathIndex) const =0
 
virtual double GetCosts (const Area &area, const Distance &distance) const =0
 
virtual double GetCosts (const Way &way, const Distance &distance) const =0
 
virtual double GetCosts (const Distance &distance) const =0
 

Protected Member Functions

template<typename Obj >
Duration GetTime2 (const Obj &obj, const Distance &distance) const
 

Protected Attributes

TypeConfigRef typeConfig
 
AccessFeatureValueReader accessReader
 
MaxSpeedFeatureValueReader maxSpeedReader
 
GradeFeatureValueReader gradeReader
 
Vehicle vehicle
 
uint8_t vehicleRouteNodeBit
 
Distance costLimitDistance
 
double costLimitFactor
 
std::vector< SpeedVariantspeeds
 maximum vehicle speed on route type and its grade More...
 
double minSpeed
 
double maxSpeed
 
double vehicleMaxSpeed
 

Detailed Description

Common base class for our concrete profile instantiations. Offers a number of profile type independent interface implementations and helper methods.

Constructor & Destructor Documentation

◆ AbstractRoutingProfile()

osmscout::AbstractRoutingProfile::AbstractRoutingProfile ( const TypeConfigRef typeConfig)
explicit

Member Function Documentation

◆ AddType() [1/2]

void osmscout::AbstractRoutingProfile::AddType ( const TypeInfoRef type,
double  speed 
)

Setup same speed for all grades of route type. Type may be forbidden for routing by setting speed to zero.

Parameters
type
speed

◆ AddType() [2/2]

void osmscout::AbstractRoutingProfile::AddType ( const TypeInfoRef type,
SpeedVariant  speed 
)

Setup speed for various grades of route type. Setup zero speed to forbid some grade for routing.

Parameters
type
speedtable of speeds for various grades. (copy in intentional) SetupValues() is called to fill all values.

◆ CanUse() [1/3]

bool osmscout::AbstractRoutingProfile::CanUse ( const RouteNode currentNode,
const std::vector< ObjectVariantData > &  objectVariantData,
size_t  pathIndex 
) const
overridevirtual

◆ CanUse() [2/3]

bool osmscout::AbstractRoutingProfile::CanUse ( const Area &  area) const
overridevirtual

◆ CanUse() [3/3]

bool osmscout::AbstractRoutingProfile::CanUse ( const Way &  way) const
overridevirtual

◆ CanUseBackward()

bool osmscout::AbstractRoutingProfile::CanUseBackward ( const Way &  way) const
overridevirtual

◆ CanUseForward()

bool osmscout::AbstractRoutingProfile::CanUseForward ( const Way &  way) const
overridevirtual

◆ GetCostLimitDistance()

Distance osmscout::AbstractRoutingProfile::GetCostLimitDistance ( ) const
inlineoverridevirtual

◆ GetCostLimitFactor()

double osmscout::AbstractRoutingProfile::GetCostLimitFactor ( ) const
inlineoverridevirtual

◆ GetCostString()

std::string osmscout::AbstractRoutingProfile::GetCostString ( double  cost) const
inlineoverridevirtual

Textual representation of cost

Implements osmscout::RoutingProfile.

Reimplemented in osmscout::FastestPathRoutingProfile, and osmscout::ShortestPathRoutingProfile.

◆ GetTime() [1/2]

Duration osmscout::AbstractRoutingProfile::GetTime ( const Area &  area,
const Distance &  distance 
) const
inlineoverridevirtual

◆ GetTime() [2/2]

Duration osmscout::AbstractRoutingProfile::GetTime ( const Way &  way,
const Distance &  distance 
) const
inlineoverridevirtual

◆ GetTime2()

template<typename Obj >
Duration osmscout::AbstractRoutingProfile::GetTime2 ( const Obj &  obj,
const Distance &  distance 
) const
inlineprotected

◆ GetVehicle()

Vehicle osmscout::AbstractRoutingProfile::GetVehicle ( ) const
inlineoverridevirtual

◆ GetVehicleMaxSpeed()

double osmscout::AbstractRoutingProfile::GetVehicleMaxSpeed ( ) const
inline

◆ ParametrizeForBicycle()

virtual void osmscout::AbstractRoutingProfile::ParametrizeForBicycle ( const TypeConfig &  typeConfig,
double  maxSpeed 
)
virtual

◆ ParametrizeForCar()

virtual bool osmscout::AbstractRoutingProfile::ParametrizeForCar ( const TypeConfig &  typeConfig,
const std::map< std::string, double > &  speedMap,
double  maxSpeed 
)
virtual

◆ ParametrizeForFoot()

virtual void osmscout::AbstractRoutingProfile::ParametrizeForFoot ( const TypeConfig &  typeConfig,
double  maxSpeed 
)
virtual

◆ SetCostLimitDistance()

void osmscout::AbstractRoutingProfile::SetCostLimitDistance ( const Distance &  costLimitDistance)

◆ SetCostLimitFactor()

void osmscout::AbstractRoutingProfile::SetCostLimitFactor ( double  costLimitFactor)

◆ SetVehicle()

void osmscout::AbstractRoutingProfile::SetVehicle ( Vehicle  vehicle)

◆ SetVehicleMaxSpeed()

void osmscout::AbstractRoutingProfile::SetVehicleMaxSpeed ( double  maxSpeed)

Member Data Documentation

◆ accessReader

AccessFeatureValueReader osmscout::AbstractRoutingProfile::accessReader
protected

◆ costLimitDistance

Distance osmscout::AbstractRoutingProfile::costLimitDistance
protected

◆ costLimitFactor

double osmscout::AbstractRoutingProfile::costLimitFactor
protected

◆ gradeReader

GradeFeatureValueReader osmscout::AbstractRoutingProfile::gradeReader
protected

◆ maxSpeed

double osmscout::AbstractRoutingProfile::maxSpeed
protected

◆ maxSpeedReader

MaxSpeedFeatureValueReader osmscout::AbstractRoutingProfile::maxSpeedReader
protected

◆ minSpeed

double osmscout::AbstractRoutingProfile::minSpeed
protected

◆ speeds

std::vector<SpeedVariant> osmscout::AbstractRoutingProfile::speeds
protected

maximum vehicle speed on route type and its grade

◆ typeConfig

TypeConfigRef osmscout::AbstractRoutingProfile::typeConfig
protected

◆ vehicle

Vehicle osmscout::AbstractRoutingProfile::vehicle
protected

◆ vehicleMaxSpeed

double osmscout::AbstractRoutingProfile::vehicleMaxSpeed
protected

◆ vehicleRouteNodeBit

uint8_t osmscout::AbstractRoutingProfile::vehicleRouteNodeBit
protected

The documentation for this class was generated from the following file: