update lua interface to speed and mode

This commit is contained in:
Emil Tin
2014-08-18 15:38:07 +02:00
parent 6cdc590db5
commit 30362cfc0c
14 changed files with 100 additions and 100 deletions
+11 -11
View File
@@ -45,7 +45,7 @@ struct ExtractionWay
nameID = INVALID_NAMEID;
path.clear();
keyVals.Clear();
speed = -1;
forward_speed = -1;
backward_speed = -1;
duration = -1;
type = -1;
@@ -53,7 +53,7 @@ struct ExtractionWay
roundabout = false;
isAccessRestricted = false;
ignoreInGrid = false;
travel_mode = TRAVEL_MODE_DEFAULT;
forward_travel_mode = TRAVEL_MODE_DEFAULT;
backward_travel_mode = TRAVEL_MODE_DEFAULT;
}
@@ -67,28 +67,28 @@ struct ExtractionWay
{
if (Directions::oneway == m )
{
travel_mode = TRAVEL_MODE_DEFAULT;
forward_travel_mode = TRAVEL_MODE_DEFAULT;
backward_travel_mode = TRAVEL_MODE_INACCESSIBLE;
}
else if (Directions::opposite == m )
{
travel_mode = TRAVEL_MODE_INACCESSIBLE;
forward_travel_mode = TRAVEL_MODE_INACCESSIBLE;
backward_travel_mode = TRAVEL_MODE_DEFAULT;
}
else if (Directions::bidirectional == m )
{
travel_mode = TRAVEL_MODE_DEFAULT;
forward_travel_mode = TRAVEL_MODE_DEFAULT;
backward_travel_mode = TRAVEL_MODE_DEFAULT;
}
}
inline const Directions get_direction()
{
if (TRAVEL_MODE_INACCESSIBLE != travel_mode && TRAVEL_MODE_INACCESSIBLE != backward_travel_mode )
if (TRAVEL_MODE_INACCESSIBLE != forward_travel_mode && TRAVEL_MODE_INACCESSIBLE != backward_travel_mode )
{
return Directions::bidirectional;
}
else if (TRAVEL_MODE_INACCESSIBLE != travel_mode )
else if (TRAVEL_MODE_INACCESSIBLE != forward_travel_mode )
{
return Directions::oneway;
}
@@ -102,14 +102,14 @@ struct ExtractionWay
}
}
inline void set_mode(const TravelMode m) { travel_mode = m; }
inline const TravelMode get_mode() { return travel_mode; }
inline void set_forward_mode(const TravelMode m) { forward_travel_mode = m; }
inline const TravelMode get_forward_mode() { return forward_travel_mode; }
inline void set_backward_mode(const TravelMode m) { backward_travel_mode = m; }
inline const TravelMode get_backward_mode() { return backward_travel_mode; }
unsigned id;
unsigned nameID;
double speed;
double forward_speed;
double backward_speed;
double duration;
std::string name;
@@ -120,7 +120,7 @@ struct ExtractionWay
bool ignoreInGrid;
std::vector<NodeID> path;
HashTable<std::string, std::string> keyVals;
TravelMode travel_mode : 4;
TravelMode forward_travel_mode : 4;
TravelMode backward_travel_mode : 4;
};
+11 -11
View File
@@ -63,7 +63,7 @@ bool ExtractorCallbacks::ProcessRestriction(const InputRestrictionContainer &res
/** warning: caller needs to take care of synchronization! */
void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way)
{
if ((0 >= parsed_way.speed) && (0 >= parsed_way.duration))
if ((0 >= parsed_way.forward_speed) && (0 >= parsed_way.duration))
{ // Only true if the way is specified by the speed profile
return;
}
@@ -84,10 +84,10 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way)
{
// TODO: iterate all way segments and set duration corresponding to the length of each
// segment
parsed_way.speed = parsed_way.duration / (parsed_way.path.size() - 1);
parsed_way.forward_speed = parsed_way.duration / (parsed_way.path.size() - 1);
}
if (std::numeric_limits<double>::epsilon() >= std::abs(-1. - parsed_way.speed))
if (std::numeric_limits<double>::epsilon() >= std::abs(-1. - parsed_way.forward_speed))
{
SimpleLogger().Write(logDEBUG) << "found way with bogus speed, id: " << parsed_way.id;
return;
@@ -106,20 +106,20 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way)
parsed_way.nameID = string_map_iterator->second;
}
if (TRAVEL_MODE_INACCESSIBLE == parsed_way.travel_mode)
if (TRAVEL_MODE_INACCESSIBLE == parsed_way.forward_travel_mode)
{
std::reverse(parsed_way.path.begin(), parsed_way.path.end());
parsed_way.travel_mode = parsed_way.backward_travel_mode;
parsed_way.forward_travel_mode = parsed_way.backward_travel_mode;
parsed_way.backward_travel_mode = TRAVEL_MODE_INACCESSIBLE;
}
const bool split_edge =
(parsed_way.speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.travel_mode) &&
(parsed_way.forward_speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.forward_travel_mode) &&
(parsed_way.backward_speed>0) && (TRAVEL_MODE_INACCESSIBLE != parsed_way.backward_travel_mode) &&
((parsed_way.speed != parsed_way.backward_speed) ||
(parsed_way.travel_mode != parsed_way.backward_travel_mode));
((parsed_way.forward_speed != parsed_way.backward_speed) ||
(parsed_way.forward_travel_mode != parsed_way.backward_travel_mode));
BOOST_ASSERT(parsed_way.travel_mode>0);
BOOST_ASSERT(parsed_way.forward_travel_mode>0);
for (unsigned n = 0; n < (parsed_way.path.size() - 1); ++n)
{
external_memory.all_edges_list.push_back(InternalExtractorEdge(
@@ -128,13 +128,13 @@ void ExtractorCallbacks::ProcessWay(ExtractionWay &parsed_way)
parsed_way.type,
((split_edge || TRAVEL_MODE_INACCESSIBLE == parsed_way.backward_travel_mode) ? ExtractionWay::oneway
: ExtractionWay::bidirectional),
parsed_way.speed,
parsed_way.forward_speed,
parsed_way.nameID,
parsed_way.roundabout,
parsed_way.ignoreInGrid,
(0 < parsed_way.duration),
parsed_way.isAccessRestricted,
parsed_way.travel_mode,
parsed_way.forward_travel_mode,
split_edge));
external_memory.used_node_id_list.push_back(parsed_way.path[n]);
}
+2 -2
View File
@@ -76,7 +76,7 @@ void ScriptingEnvironment::initLuaState(lua_State* lua_state)
// .def(luabind::constructor<>())
.def_readonly("id", &ExtractionWay::id)
.def_readwrite("name", &ExtractionWay::name)
.def_readwrite("speed", &ExtractionWay::speed)
.def_readwrite("forward_speed", &ExtractionWay::forward_speed)
.def_readwrite("backward_speed", &ExtractionWay::backward_speed)
.def_readwrite("duration", &ExtractionWay::duration)
.def_readwrite("type", &ExtractionWay::type)
@@ -86,7 +86,7 @@ void ScriptingEnvironment::initLuaState(lua_State* lua_state)
.def_readwrite("ignore_in_grid", &ExtractionWay::ignoreInGrid)
.def_readwrite("tags", &ExtractionWay::keyVals)
.property("direction", &ExtractionWay::get_direction, &ExtractionWay::set_direction)
.property("mode", &ExtractionWay::get_mode, &ExtractionWay::set_mode)
.property("forward_mode", &ExtractionWay::get_forward_mode, &ExtractionWay::set_forward_mode)
.property("backward_mode", &ExtractionWay::get_backward_mode, &ExtractionWay::set_backward_mode)
.enum_("constants")[
luabind::value("notSure", 0),