Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modify profiles to use Lua 5.2+ without needing compatibility flags #1457

Merged
merged 5 commits into from May 16, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 7 additions & 6 deletions profiles/bicycle.lua
@@ -1,5 +1,7 @@
require("lib/access")
require("lib/maxspeed")
-- Bicycle profile

local find_access_tag = require("lib/access").find_access_tag
local limit = require("lib/maxspeed").limit

-- Begin of globals
barrier_whitelist = { [""] = true, ["cycle_barrier"] = true, ["bollard"] = true, ["entrance"] = true, ["cattle_grid"] = true, ["border_control"] = true, ["toll_booth"] = true, ["sally_port"] = true, ["gate"] = true, ["no"] = true }
Expand Down Expand Up @@ -122,7 +124,6 @@ local function parse_maxspeed(source)
return n
end


function get_exceptions(vector)
for i,v in ipairs(restriction_exception_tags) do
vector:Add(v)
Expand All @@ -131,7 +132,7 @@ end

function node_function (node, result)
local barrier = node:get_value_by_key("barrier")
local access = Access.find_access_tag(node, access_tags_hierachy)
local access = find_access_tag(node, access_tags_hierachy)
local traffic_signal = node:get_value_by_key("highway")

-- flag node if it carries a traffic light
Expand Down Expand Up @@ -181,7 +182,7 @@ function way_function (way, result)
end

-- access
local access = Access.find_access_tag(way, access_tags_hierachy)
local access = find_access_tag(way, access_tags_hierachy)
if access and access_tag_blacklist[access] then
return
end
Expand Down Expand Up @@ -391,7 +392,7 @@ function way_function (way, result)
end

-- maxspeed
MaxSpeed.limit( result, maxspeed, maxspeed_forward, maxspeed_backward )
limit( result, maxspeed, maxspeed_forward, maxspeed_backward )
end

function turn_function (angle)
Expand Down
16 changes: 4 additions & 12 deletions profiles/car.lua
@@ -1,6 +1,8 @@
-- Begin of globals
--require("lib/access") --function temporarily inlined
-- Car profile

local find_access_tag = require("lib/access").find_access_tag

-- Begin of globals
barrier_whitelist = { ["cattle_grid"] = true, ["border_control"] = true, ["checkpoint"] = true, ["toll_booth"] = true, ["sally_port"] = true, ["gate"] = true, ["lift_gate"] = true, ["no"] = true, ["entrance"] = true }
access_tag_whitelist = { ["yes"] = true, ["motorcar"] = true, ["motor_vehicle"] = true, ["vehicle"] = true, ["permissive"] = true, ["designated"] = true }
access_tag_blacklist = { ["no"] = true, ["private"] = true, ["agricultural"] = true, ["forestry"] = true, ["emergency"] = true, ["psv"] = true }
Expand Down Expand Up @@ -147,16 +149,6 @@ local mode_normal = 1
local mode_ferry = 2
local mode_movable_bridge = 3

local function find_access_tag(source, access_tags_hierachy)
for i,v in ipairs(access_tags_hierachy) do
local access_tag = source:get_value_by_key(v)
if access_tag and "" ~= access_tag then
return access_tag
end
end
return ""
end

function get_exceptions(vector)
for i,v in ipairs(restriction_exception_tags) do
vector:Add(v)
Expand Down
7 changes: 4 additions & 3 deletions profiles/foot.lua
@@ -1,7 +1,8 @@
-- Foot profile

require("lib/access")
local find_access_tag = require("lib/access").find_access_tag

-- Begin of globals
barrier_whitelist = { [""] = true, ["cycle_barrier"] = true, ["bollard"] = true, ["entrance"] = true, ["cattle_grid"] = true, ["border_control"] = true, ["toll_booth"] = true, ["sally_port"] = true, ["gate"] = true, ["no"] = true}
access_tag_whitelist = { ["yes"] = true, ["foot"] = true, ["permissive"] = true, ["designated"] = true }
access_tag_blacklist = { ["no"] = true, ["private"] = true, ["agricultural"] = true, ["forestery"] = true }
Expand Down Expand Up @@ -75,7 +76,7 @@ end

function node_function (node, result)
local barrier = node:get_value_by_key("barrier")
local access = Access.find_access_tag(node, access_tags_hierachy)
local access = find_access_tag(node, access_tags_hierachy)
local traffic_signal = node:get_value_by_key("highway")

-- flag node if it carries a traffic light
Expand Down Expand Up @@ -125,7 +126,7 @@ function way_function (way, result)
end

-- access
local access = Access.find_access_tag(way, access_tags_hierachy)
local access = find_access_tag(way, access_tags_hierachy)
if access_tag_blacklist[access] then
return
end
Expand Down
8 changes: 5 additions & 3 deletions profiles/lib/access.lua
@@ -1,13 +1,15 @@
local ipairs = ipairs

module "Access"
local Access = {}

function find_access_tag(source,access_tags_hierachy)
function Access.find_access_tag(source,access_tags_hierachy)
for i,v in ipairs(access_tags_hierachy) do
local tag = source:get_value_by_key(v)
if tag and tag ~= '' then
return tag
end
end
return nil
return ""
end

return Access
6 changes: 4 additions & 2 deletions profiles/lib/maxspeed.lua
@@ -1,8 +1,8 @@
local math = math

module "MaxSpeed"
local MaxSpeed = {}

function limit(way,max,maxf,maxb)
function MaxSpeed.limit(way,max,maxf,maxb)
if maxf and maxf>0 then
way.forward_speed = math.min(way.forward_speed, maxf)
elseif max and max>0 then
Expand All @@ -15,3 +15,5 @@ function limit(way,max,maxf,maxb)
way.backward_speed = math.min(way.backward_speed, max)
end
end

return MaxSpeed
5 changes: 2 additions & 3 deletions util/lua_util.hpp
Expand Up @@ -55,11 +55,10 @@ inline bool lua_function_exists(lua_State *lua_state, const char *name)
// See http://lua-users.org/wiki/PackagePath for details on the package.path syntax.
inline void luaAddScriptFolderToLoadPath(lua_State *lua_state, const char *file_name)
{
const boost::filesystem::path profile_path(file_name);
boost::filesystem::path profile_path = boost::filesystem::canonical(file_name);
std::string folder = profile_path.parent_path().string();
// TODO: This code is most probably not Windows safe since it uses UNIX'ish path delimiters
const std::string lua_code =
"package.path = \"" + folder + "/?.lua;profiles/?.lua;\" .. package.path";
const std::string lua_code = "package.path = \"" + folder + "/?.lua;\" .. package.path";
luaL_dostring(lua_state, lua_code.c_str());
}

Expand Down