summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--street_signs/api.lua487
-rw-r--r--street_signs/compat_convert.lua41
-rw-r--r--street_signs/crafting.lua138
-rw-r--r--street_signs/init.lua1672
-rw-r--r--street_signs/models/street_signs_generic_sign_24x24.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_24x24_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_24x30.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_24x30_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_24x36.obj (renamed from street_signs/models/street_signs_regulatory_24x36.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_24x36_onpole.obj (renamed from street_signs/models/street_signs_regulatory_24x36_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_30x24.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_30x24_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_30x36.obj (renamed from street_signs/models/street_signs_regulatory_30x36.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_30x36_entity.obj (renamed from street_signs/models/street_signs_regulatory_30x36_entity.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj (renamed from street_signs/models/street_signs_regulatory_30x36_entity_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_30x36_onpole.obj (renamed from street_signs/models/street_signs_regulatory_30x36_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x36.obj (renamed from street_signs/models/street_signs_regulatory_36x36.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x36_entity.obj (renamed from street_signs/models/street_signs_regulatory_36x36_entity.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj (renamed from street_signs/models/street_signs_regulatory_36x36_entity_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x36_onpole.obj (renamed from street_signs/models/street_signs_regulatory_36x36_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x42.obj (renamed from street_signs/models/street_signs_regulatory_36x42.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x42_onpole.obj (renamed from street_signs/models/street_signs_regulatory_36x42_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x48.obj (renamed from street_signs/models/street_signs_regulatory_36x48.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_36x48_onpole.obj (renamed from street_signs/models/street_signs_regulatory_36x48_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_42x30.obj (renamed from street_signs/models/street_signs_regulatory_42x30.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_42x30_onpole.obj (renamed from street_signs/models/street_signs_regulatory_42x30_onpole.obj)0
-rw-r--r--street_signs/models/street_signs_generic_sign_48x24.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_48x24_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_54x18.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_54x18_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_60x24.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_60x24_onpole.obj456
-rw-r--r--street_signs/models/street_signs_generic_sign_9x12.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_9x12_onpole.obj487
-rw-r--r--street_signs/models/street_signs_generic_sign_9x15.obj254
-rw-r--r--street_signs/models/street_signs_generic_sign_9x15_entity.obj55
-rw-r--r--street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj55
-rw-r--r--street_signs/models/street_signs_generic_sign_9x15_onpole.obj487
-rw-r--r--street_signs/models/street_signs_rr_grade_crossbuck.obj132
-rw-r--r--street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj319
-rw-r--r--street_signs/models/street_signs_rr_grade_crossing_advance.obj524
-rw-r--r--street_signs/models/street_signs_rr_grade_crossing_advance_onpole.obj726
-rw-r--r--street_signs/models/street_signs_stop_all_way.obj263
-rw-r--r--street_signs/models/street_signs_stop_all_way_onpole.obj553
-rw-r--r--street_signs/signs.lua2071
-rw-r--r--street_signs/textures/street_signs_circular_intersection_ahead.pngbin0 -> 19161 bytes
-rw-r--r--street_signs/textures/street_signs_circular_intersection_ahead_inv.pngbin0 -> 3116 bytes
-rw-r--r--street_signs/textures/street_signs_cross_road_ahead.pngbin0 -> 11390 bytes
-rw-r--r--street_signs/textures/street_signs_cross_road_ahead_inv.pngbin0 -> 1390 bytes
-rw-r--r--street_signs/textures/street_signs_crosswalk_stop_on_red_light.pngbin0 -> 28323 bytes
-rw-r--r--street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.pngbin0 -> 4473 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_begins.pngbin0 -> 18775 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_begins_inv.pngbin0 -> 2900 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_ends.pngbin0 -> 18488 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_ends_inv.pngbin0 -> 2779 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_with_cross_road.pngbin0 -> 15524 bytes
-rw-r--r--street_signs/textures/street_signs_divided_highway_with_cross_road_inv.pngbin0 -> 3015 bytes
-rw-r--r--street_signs/textures/street_signs_do_not_stop_on_tracks.pngbin0 -> 25008 bytes
-rw-r--r--street_signs/textures/street_signs_do_not_stop_on_tracks_inv.pngbin0 -> 3948 bytes
-rw-r--r--street_signs/textures/street_signs_hill_with_grade_ahead.pngbin0 -> 18634 bytes
-rw-r--r--street_signs/textures/street_signs_hill_with_grade_ahead_inv.pngbin0 -> 2821 bytes
-rw-r--r--street_signs/textures/street_signs_left_lane_must_turn_left.pngbin0 -> 16762 bytes
-rw-r--r--street_signs/textures/street_signs_left_lane_must_turn_left_inv.pngbin0 -> 3642 bytes
-rw-r--r--street_signs/textures/street_signs_left_turn_only.pngbin0 -> 14658 bytes
-rw-r--r--street_signs/textures/street_signs_left_turn_only_inv.pngbin0 -> 2373 bytes
-rw-r--r--street_signs/textures/street_signs_left_turn_yield_on_green_light.pngbin0 -> 19277 bytes
-rw-r--r--street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.pngbin0 -> 3198 bytes
-rw-r--r--street_signs/textures/street_signs_low_clearance.pngbin0 -> 16000 bytes
-rw-r--r--street_signs/textures/street_signs_low_clearance_inv.pngbin0 -> 3544 bytes
-rw-r--r--street_signs/textures/street_signs_no_left_turn.pngbin0 -> 20395 bytes
-rw-r--r--street_signs/textures/street_signs_no_left_turn_inv.pngbin0 -> 4263 bytes
-rw-r--r--street_signs/textures/street_signs_no_right_turn.pngbin0 -> 20754 bytes
-rw-r--r--street_signs/textures/street_signs_no_right_turn_inv.pngbin0 -> 4245 bytes
-rw-r--r--street_signs/textures/street_signs_no_straight_through.pngbin0 -> 19525 bytes
-rw-r--r--street_signs/textures/street_signs_no_straight_through_inv.pngbin0 -> 3963 bytes
-rw-r--r--street_signs/textures/street_signs_no_u_turn.pngbin0 -> 21860 bytes
-rw-r--r--street_signs/textures/street_signs_no_u_turn_inv.pngbin0 -> 4665 bytes
-rw-r--r--street_signs/textures/street_signs_offset_side_road_left_ahead.pngbin0 -> 12163 bytes
-rw-r--r--street_signs/textures/street_signs_offset_side_road_left_ahead_inv.pngbin0 -> 1327 bytes
-rw-r--r--street_signs/textures/street_signs_offset_side_road_right_ahead.pngbin0 -> 12378 bytes
-rw-r--r--street_signs/textures/street_signs_offset_side_road_right_ahead_inv.pngbin0 -> 1298 bytes
-rw-r--r--street_signs/textures/street_signs_one_way_left.pngbin0 -> 8517 bytes
-rw-r--r--street_signs/textures/street_signs_one_way_left_inv.pngbin0 -> 1924 bytes
-rw-r--r--street_signs/textures/street_signs_one_way_right.pngbin0 -> 8425 bytes
-rw-r--r--street_signs/textures/street_signs_one_way_right_inv.pngbin0 -> 1867 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.pngbin0 -> 15423 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.pngbin0 -> 3196 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.pngbin0 -> 15424 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.pngbin0 -> 3627 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.pngbin0 -> 54367 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.pngbin0 -> 9886 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.pngbin0 -> 54349 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.pngbin0 -> 10890 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.pngbin0 -> 53868 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.pngbin0 -> 10496 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.pngbin0 -> 53841 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.pngbin0 -> 10480 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.pngbin0 -> 13353 bytes
-rw-r--r--street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.pngbin0 -> 3833 bytes
-rw-r--r--street_signs/textures/street_signs_right_lane_must_turn_right.pngbin0 -> 19715 bytes
-rw-r--r--street_signs/textures/street_signs_right_lane_must_turn_right_inv.pngbin0 -> 4091 bytes
-rw-r--r--street_signs/textures/street_signs_right_turn_only.pngbin0 -> 14564 bytes
-rw-r--r--street_signs/textures/street_signs_right_turn_only_inv.pngbin0 -> 2408 bytes
-rw-r--r--street_signs/textures/street_signs_roundabout_directional.pngbin0 -> 8154 bytes
-rw-r--r--street_signs/textures/street_signs_roundabout_directional_inv.pngbin0 -> 2232 bytes
-rw-r--r--street_signs/textures/street_signs_rr_grade_crossbuck.pngbin0 -> 25998 bytes
-rw-r--r--street_signs/textures/street_signs_rr_grade_crossbuck_inv.pngbin0 -> 4456 bytes
-rw-r--r--street_signs/textures/street_signs_rr_grade_crossing_advance.pngbin0 -> 24884 bytes
-rw-r--r--street_signs/textures/street_signs_rr_grade_crossing_advance_inv.pngbin0 -> 4027 bytes
-rw-r--r--street_signs/textures/street_signs_service_ev_charging.pngbin0 -> 12352 bytes
-rw-r--r--street_signs/textures/street_signs_service_ev_charging_inv.pngbin0 -> 2329 bytes
-rw-r--r--street_signs/textures/street_signs_service_food.pngbin0 -> 15614 bytes
-rw-r--r--street_signs/textures/street_signs_service_food_inv.pngbin0 -> 2868 bytes
-rw-r--r--street_signs/textures/street_signs_service_fuel.pngbin0 -> 9446 bytes
-rw-r--r--street_signs/textures/street_signs_service_fuel_inv.pngbin0 -> 1624 bytes
-rw-r--r--street_signs/textures/street_signs_service_handicapped.pngbin0 -> 13444 bytes
-rw-r--r--street_signs/textures/street_signs_service_handicapped_inv.pngbin0 -> 2707 bytes
-rw-r--r--street_signs/textures/street_signs_service_hospital.pngbin0 -> 5842 bytes
-rw-r--r--street_signs/textures/street_signs_service_hospital_inv.pngbin0 -> 782 bytes
-rw-r--r--street_signs/textures/street_signs_service_lodging.pngbin0 -> 6836 bytes
-rw-r--r--street_signs/textures/street_signs_service_lodging_inv.pngbin0 -> 1280 bytes
-rw-r--r--street_signs/textures/street_signs_side_road_left_ahead.pngbin0 -> 15094 bytes
-rw-r--r--street_signs/textures/street_signs_side_road_left_ahead_inv.pngbin0 -> 2221 bytes
-rw-r--r--street_signs/textures/street_signs_side_road_right_ahead.pngbin0 -> 15258 bytes
-rw-r--r--street_signs/textures/street_signs_side_road_right_ahead_inv.pngbin0 -> 1970 bytes
-rw-r--r--street_signs/textures/street_signs_stop_all_way_inv.pngbin0 -> 3946 bytes
-rw-r--r--street_signs/textures/street_signs_stop_all_way_plaque.pngbin0 -> 3811 bytes
-rw-r--r--street_signs/textures/street_signs_straight_through_only.pngbin0 -> 12522 bytes
-rw-r--r--street_signs/textures/street_signs_straight_through_only_inv.pngbin0 -> 1951 bytes
-rw-r--r--street_signs/textures/street_signs_t_junction_ahead.pngbin0 -> 15171 bytes
-rw-r--r--street_signs/textures/street_signs_t_junction_ahead_inv.pngbin0 -> 1984 bytes
-rw-r--r--street_signs/textures/street_signs_two_direction_large_arrow.pngbin0 -> 6778 bytes
-rw-r--r--street_signs/textures/street_signs_two_direction_large_arrow_inv.pngbin0 -> 1524 bytes
-rw-r--r--street_signs/textures/street_signs_u_turn_here.pngbin0 -> 19600 bytes
-rw-r--r--street_signs/textures/street_signs_u_turn_here_inv.pngbin0 -> 4314 bytes
135 files changed, 11115 insertions, 1663 deletions
diff --git a/street_signs/api.lua b/street_signs/api.lua
new file mode 100644
index 0000000..1ac4afe
--- /dev/null
+++ b/street_signs/api.lua
@@ -0,0 +1,487 @@
+-- signs api; most of this came from signs_lib but rewritten to some degree
+
+local S = street_signs.gettext
+
+local wall_dir_change = {
+ [0] = 2,
+ 2,
+ 5,
+ 4,
+ 2,
+ 3,
+}
+
+street_signs.wallmounted_rotate = function(pos, node, user, mode)
+ if mode ~= screwdriver.ROTATE_FACE then return false end
+ minetest.swap_node(pos, { name = node.name, param2 = wall_dir_change[node.param2 % 6] })
+ for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do
+ local e = v:get_luaentity()
+ if e and e.name == "street_signs:text" then
+ v:remove()
+ end
+ end
+ street_signs.update_sign(pos)
+ return true
+end
+
+street_signs.facedir_rotate = function(pos, node, user, mode)
+ if mode ~= screwdriver.ROTATE_FACE then return false end
+ newparam2 = ((node.param2 % 6 ) == 0) and 1 or 0
+ minetest.swap_node(pos, { name = node.name, param2 = newparam2 })
+ for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do
+ local e = v:get_luaentity()
+ if e and e.name == "street_signs:text" then
+ v:remove()
+ end
+ end
+ street_signs.update_sign(pos)
+ return true
+end
+
+street_signs.modpath = minetest.get_modpath("street_signs")
+
+local DEFAULT_TEXT_SCALE = {x=10, y=10}
+
+-- infinite stacks
+
+if not minetest.settings:get_bool("creative_mode") then
+ street_signs.expect_infinite_stacks = false
+else
+ street_signs.expect_infinite_stacks = true
+end
+
+-- CONSTANTS
+
+-- Path to the textures.
+local TP = street_signs.path .. "/textures"
+-- Font file formatter
+local CHAR_FILE = "%s_%02x.png"
+-- Fonts path
+local CHAR_PATH = TP .. "/" .. CHAR_FILE
+
+-- Lots of overkill here. KISS advocates, go away, shoo! ;) -- kaeza
+
+local PNG_HDR = string.char(0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A)
+
+-- check if a file does exist
+-- to avoid reopening file after checking again
+-- pass TRUE as second argument
+function file_exists(name, return_handle, mode)
+ mode = mode or "r";
+ local f = io.open(name, mode)
+ if f ~= nil then
+ if (return_handle) then
+ return f
+ end
+ io.close(f)
+ return true
+ else
+ return false
+ end
+end
+
+-- Read the image size from a PNG file.
+-- Returns image_w, image_h.
+-- Only the LSB is read from each field!
+local function read_image_size(filename)
+ local f = file_exists(filename, true, "rb")
+ -- file might not exist (don't crash the game)
+ if (not f) then
+ return 0, 0
+ end
+ f:seek("set", 0x0)
+ local hdr = f:read(string.len(PNG_HDR))
+ if hdr ~= PNG_HDR then
+ f:close()
+ return
+ end
+ f:seek("set", 0x13)
+ local ws = f:read(1)
+ f:seek("set", 0x17)
+ local hs = f:read(1)
+ f:close()
+ return ws:byte(), hs:byte()
+end
+
+-- 4 rows, max 80 chars per, plus a bit of fudge to
+-- avoid excess trimming (e.g. due to color codes)
+
+local MAX_INPUT_CHARS = 400
+
+-- helper functions to trim sign text input/output
+
+local function trim_input(text)
+ return text:sub(1, math.min(MAX_INPUT_CHARS, text:len()))
+end
+
+local function build_char_db(font_size)
+
+ local cw = {}
+
+ -- To calculate average char width.
+ local total_width = 0
+ local char_count = 0
+
+ for c = 32, 255 do
+ local w, h = read_image_size(CHAR_PATH:format("street_signs_font_"..font_size.."px", c))
+ if w and h then
+ local ch = string.char(c)
+ cw[ch] = w
+ total_width = total_width + w
+ char_count = char_count + 1
+ end
+ end
+
+ local cbw, cbh = read_image_size(TP.."/street_signs_color_"..font_size.."px_n.png")
+ assert(cbw and cbh, "error reading bg dimensions")
+ return cw, cbw, cbh, (total_width / char_count)
+end
+
+street_signs.charwidth15,
+street_signs.colorbgw15,
+street_signs.lineheight15,
+street_signs.avgwidth15 = build_char_db(15)
+
+street_signs.charwidth31,
+street_signs.colorbgw31,
+street_signs.lineheight31,
+street_signs.avgwidth31 = build_char_db(31)
+
+local sign_groups = {choppy=2, dig_immediate=2}
+local fences_with_sign = { }
+
+-- some local helper functions
+
+local function split_lines_and_words(text)
+ if not text then return end
+ local lines = { }
+ for _, line in ipairs(text:split("\n")) do
+ table.insert(lines, line:split(" "))
+ end
+ return lines
+end
+
+local math_max = math.max
+
+local function fill_line(x, y, w, c, font_size, colorbgw)
+ c = c or "0"
+ local tex = { }
+ for xx = 0, math.max(0, w), colorbgw do
+ table.insert(tex, (":%d,%d=street_signs_color_"..font_size.."px_%s.png"):format(x + xx, y, c))
+ end
+ return table.concat(tex)
+end
+
+-- make char texture file name
+-- if texture file does not exist use fallback texture instead
+local function char_tex(font_name, ch)
+ local c = ch:byte()
+ local exists, tex = file_exists(CHAR_PATH:format(font_name, c))
+ if exists and c ~= 14 then
+ tex = CHAR_FILE:format(font_name, c)
+ else
+ tex = CHAR_FILE:format(font_name, 0x0)
+ end
+ return tex, exists
+end
+
+local function make_line_texture(line, lineno, pos, line_width, line_height, cwidth_tab, font_size, colorbgw)
+ local width = 0
+ local maxw = 0
+ local font_name = "street_signs_font_"..font_size.."px"
+
+ local words = { }
+ local node = minetest.get_node(pos)
+ local def = minetest.registered_items[node.name]
+ local default_color = def.default_color or 0
+
+ local cur_color = tonumber(default_color, 16)
+
+ -- We check which chars are available here.
+ for word_i, word in ipairs(line) do
+ local chars = { }
+ local ch_offs = 0
+ local word_l = #word
+ local i = 1
+ while i <= word_l do
+ local c = word:sub(i, i)
+ if c == "#" then
+ local cc = tonumber(word:sub(i+1, i+1), 16)
+ if cc then
+ i = i + 1
+ cur_color = cc
+ end
+ else
+ local w = cwidth_tab[c]
+ if w then
+ width = width + w + 1
+ if width >= (line_width - cwidth_tab[" "]) then
+ width = 0
+ else
+ maxw = math_max(width, maxw)
+ end
+ if #chars < MAX_INPUT_CHARS then
+ table.insert(chars, {
+ off = ch_offs,
+ tex = char_tex(font_name, c),
+ col = ("%X"):format(cur_color),
+ })
+ end
+ ch_offs = ch_offs + w
+ end
+ end
+ i = i + 1
+ end
+ width = width + cwidth_tab[" "] + 1
+ maxw = math_max(width, maxw)
+ table.insert(words, { chars=chars, w=ch_offs })
+ end
+
+ -- Okay, we actually build the "line texture" here.
+
+ local texture = { }
+
+ local start_xpos = math.floor((line_width - maxw) / 2) + def.x_offset
+
+ local xpos = start_xpos
+ local ypos = (line_height + def.line_spacing)* lineno + def.y_offset
+
+ cur_color = nil
+
+ for word_i, word in ipairs(words) do
+ local xoffs = (xpos - start_xpos)
+ if (xoffs > 0) and ((xoffs + word.w) > maxw) then
+ table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
+ xpos = start_xpos
+ ypos = ypos + line_height + def.line_spacing
+ lineno = lineno + 1
+ if lineno >= def.number_of_lines then break end
+ table.insert(texture, fill_line(xpos, ypos, maxw, cur_color, font_size, colorbgw))
+ end
+ for ch_i, ch in ipairs(word.chars) do
+ if ch.col ~= cur_color then
+ cur_color = ch.col
+ table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color, font_size, colorbgw))
+ end
+ table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
+ end
+ table.insert(
+ texture,
+ (":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ")
+ )
+ xpos = xpos + word.w + cwidth_tab[" "]
+ if xpos >= (line_width + cwidth_tab[" "]) then break end
+ end
+
+ table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
+ table.insert(texture, fill_line(start_xpos, ypos + line_height, maxw, "n", font_size, colorbgw))
+
+ return table.concat(texture), lineno
+end
+
+local function make_sign_texture(lines, pos)
+ local node = minetest.get_node(pos)
+ local def = minetest.registered_items[node.name]
+
+ local font_size
+ local line_width
+ local line_height
+ local char_width
+ local colorbgw
+
+ if def.font_size and def.font_size == 31 then
+ font_size = 31
+ line_width = math.floor(street_signs.avgwidth31 * def.chars_per_line) * def.horiz_scaling
+ line_height = street_signs.lineheight31
+ char_width = street_signs.charwidth31
+ colorbgw = street_signs.colorbgw31
+ else
+ font_size = 15
+ line_width = math.floor(street_signs.avgwidth15 * def.chars_per_line) * def.horiz_scaling
+ line_height = street_signs.lineheight15
+ char_width = street_signs.charwidth15
+ colorbgw = street_signs.colorbgw15
+ end
+
+ local texture = { ("[combine:%dx%d"):format(line_width, (line_height + def.line_spacing) * def.number_of_lines * def.vert_scaling) }
+
+ local lineno = 0
+ for i = 1, #lines do
+ if lineno >= def.number_of_lines then break end
+ local linetex, ln = make_line_texture(lines[i], lineno, pos, line_width, line_height, char_width, font_size, colorbgw)
+ table.insert(texture, linetex)
+ lineno = ln + 1
+ end
+ table.insert(texture, "^[makealpha:0,0,0")
+ return table.concat(texture, "")
+end
+
+local function set_obj_text(obj, text, x, pos)
+ local split = split_lines_and_words
+ local text_ansi = Utf8ToAnsi(text)
+ local n = minetest.registered_nodes[minetest.get_node(pos).name]
+ local text_scale = (n and n.text_scale) or DEFAULT_TEXT_SCALE
+ local texture = make_sign_texture(split(text_ansi), pos)
+ obj:set_properties({
+ textures={texture},
+ visual_size = text_scale,
+ })
+end
+
+street_signs.construct_sign = function(pos)
+ local meta = minetest.get_meta(pos)
+ meta:set_string(
+ "formspec",
+ "size[5,2.25]"..
+ "textarea[0.55,0.1;4.5,1.5;text;;${text}]"..
+ "button_exit[1.5,1.65;2,1;ok;"..S("Write").."]"..
+ "background[-0.20,-0.25;5.41,2.98;street_signs_bg.png]")
+ meta:set_string("infotext", "")
+end
+
+street_signs.destruct_sign = function(pos)
+ local objects = minetest.get_objects_inside_radius(pos, 0.5)
+ for _, v in ipairs(objects) do
+ local e = v:get_luaentity()
+ if e and e.name == "street_signs:text" then
+ v:remove()
+ end
+ end
+end
+
+local function make_infotext(text)
+ text = trim_input(text)
+ local lines = split_lines_and_words(text) or {}
+ local lines2 = { }
+ for _, line in ipairs(lines) do
+ table.insert(lines2, (table.concat(line, " "):gsub("#[0-9a-fA-F]", ""):gsub("##", "#")))
+ end
+ return table.concat(lines2, "\n")
+end
+
+street_signs.update_sign = function(pos, fields)
+ local meta = minetest.get_meta(pos)
+
+ local text = fields and fields.text or meta:get_string("text")
+ text = trim_input(text)
+
+ meta:set_string("infotext", make_infotext(text).." ")
+ meta:set_string("text", text)
+
+ local objects = minetest.get_objects_inside_radius(pos, 0.5)
+ local found
+ for _, v in ipairs(objects) do
+ local e = v:get_luaentity()
+ if e and e.name == "street_signs:text" then
+ if found then
+ v:remove()
+ else
+ set_obj_text(v, text, nil, pos)
+ found = true
+ end
+ end
+ end
+ if found then
+ return
+ end
+
+ -- if there is no entity
+ local signnode = minetest.get_node(pos)
+ local signname = signnode.name
+ local def = minetest.registered_items[signname]
+ if not def.entity_info or not def.entity_info.yaw[signnode.param2 + 1] then return end
+ local obj = minetest.add_entity(pos, "street_signs:text")
+
+ obj:setyaw(def.entity_info.yaw[signnode.param2 + 1])
+ obj:set_properties({
+ mesh = def.entity_info.mesh,
+ })
+end
+
+function street_signs.receive_fields(pos, formname, fields, sender)
+ if minetest.is_protected(pos, sender:get_player_name()) then
+ minetest.record_protection_violation(pos,
+ sender:get_player_name())
+ return
+ end
+ if fields and fields.text and fields.ok then
+ minetest.log("action", S("@1 wrote \"@2\" to sign at @3",
+ (sender:get_player_name() or ""),
+ fields.text:gsub('\\', '\\\\'):gsub("\n", "\\n"),
+ minetest.pos_to_string(pos)
+ ))
+ street_signs.update_sign(pos, fields)
+ end
+end
+
+local signs_text_on_activate
+
+signs_text_on_activate = function(self)
+ local pos = self.object:getpos()
+ local meta = minetest.get_meta(pos)
+ local signnode = minetest.get_node(pos)
+ local signname = signnode.name
+ local def = minetest.registered_items[signname]
+ local text = meta:get_string("text")
+ if text and def and def.entity_info then
+ text = trim_input(text)
+ set_obj_text(self.object, text, nil, pos)
+ self.object:set_properties({
+ mesh = def.entity_info.mesh,
+ })
+ end
+end
+
+minetest.register_entity("street_signs:text", {
+ collisionbox = { 0, 0, 0, 0, 0, 0 },
+ visual = "mesh",
+ mesh = "street_signs_basic_entity.obj",
+ textures = {},
+ on_activate = signs_text_on_activate,
+})
+
+-- make selection boxes
+-- sizex/sizey specified in inches because that's what MUTCD uses.
+
+function street_signs.make_selection_boxes(sizex, sizey, onpole, xoffs, yoffs, zoffs)
+ local tx = (sizex * 0.0254 ) / 2
+ local ty = (sizey * 0.0254 ) / 2
+ local xo = xoffs and xoffs * 0.0254 or 0
+ local yo = yoffs and yoffs * 0.0254 or 0
+ local zo = zoffs and zoffs * 0.0254 or 0
+
+
+ local t = { -0.5, -ty + yo, -tx + xo, -0.4375, ty + yo, tx + xo }
+
+ if onpole == "_onpole" then
+ return {
+ type = "wallmounted",
+ wall_side = { t[1] - 0.3125 + zo, t[2], t[3], t[4] - 0.3125 + zo, t[5], t[6] },
+ wall_top = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
+ wall_bottom = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
+ }
+ else
+ return {
+ type = "wallmounted",
+ wall_side = t,
+ wall_top = { t[3] - xo, -t[1], t[2] + yo, t[6] - xo, -t[4], t[5] + yo},
+ wall_bottom = { t[3] - xo, t[1], t[2] + yo, t[6] - xo, t[4], t[5] + yo }
+ }
+ end
+end
+
+-- switch models to pole-mounted if appropriate
+
+street_signs.after_place_node = function(pos, placer, itemstack, pointed_thing)
+ local ppos = minetest.get_pointed_thing_position(pointed_thing)
+ local pnode = minetest.get_node(ppos)
+ local pdef = minetest.registered_items[pnode.name]
+ if (pdef and pdef.drawtype == "fencelike")
+ or string.find(pnode.name, "default:fence_")
+ or pnode.name == "coloredwood:fence"
+ or (pnode.name == "streets:bigpole" and pnode.param2 < 4)
+ or (pnode.name == "streets:bigpole" and pnode.param2 > 19 and pnode.param2 < 24) then
+ local node = minetest.get_node(pos)
+ minetest.swap_node(pos, {name = itemstack:get_name().."_onpole", param2 = node.param2})
+ end
+end
diff --git a/street_signs/compat_convert.lua b/street_signs/compat_convert.lua
new file mode 100644
index 0000000..76702b3
--- /dev/null
+++ b/street_signs/compat_convert.lua
@@ -0,0 +1,41 @@
+-- Convert old road/streets modpack signs to street_signs versions
+
+local S = street_signs.gettext
+
+if minetest.get_modpath("infrastructure") then
+ local signs_equiv = {
+ ["infrastructure:road_sign_stop"] = "street_signs:sign_stop",
+ ["infrastructure:road_sign_stop_on_post"] = "street_signs:sign_stop_onpole",
+ ["infrastructure:road_sign_yield"] = "street_signs:sign_yield",
+ ["infrastructure:road_sign_yield_on_post"] = "street_signs:sign_yield_onpole",
+ ["infrastructure:road_sign_crosswalk"] = "street_signs:sign_pedestrian_crossing",
+ ["infrastructure:road_sign_crosswalk_on_post"] = "street_signs:sign_pedestrian_crossing_onpole",
+ }
+
+ local old_signs = {}
+
+ for old, new in pairs(signs_equiv) do
+ minetest.unregister_item(old)
+ if not string.find(old, "on_post") then
+ minetest.clear_craft({output = old})
+ end
+ old_signs[#old_signs+1] = old
+ end
+
+ minetest.register_alias_force("infrastructure:road_sign_retroreflective_surface", "air")
+ minetest.register_alias_force("infrastructure:crosswalk_safety_sign_bottom", "street_signs:sign_stop_for_ped")
+ minetest.register_alias_force("infrastructure:crosswalk_safety_sign_top", "air")
+
+ minetest.register_lbm({
+ nodenames = old_signs,
+ name = "street_signs:convert_signs",
+ label = "Convert roads/streets modpack signs",
+ run_at_every_load = true,
+ action = function(pos, node)
+ local newname = signs_equiv[node.name]
+ local dir = minetest.facedir_to_dir(node.param2)
+ if not dir then return end
+ minetest.set_node(pos, {name = newname, param2 = minetest.dir_to_wallmounted(dir)})
+ end
+ })
+end
diff --git a/street_signs/crafting.lua b/street_signs/crafting.lua
new file mode 100644
index 0000000..b149166
--- /dev/null
+++ b/street_signs/crafting.lua
@@ -0,0 +1,138 @@
+-- sign crafts
+
+minetest.register_craft({
+ output = "street_signs:sign_basic",
+ recipe = {
+ { "dye:green", "default:sign_wall_steel", "dye:green" },
+ { "dye:white", "default:steel_ingot", "" },
+ { "", "default:steel_ingot", "" },
+ }
+})
+
+minetest.register_craft({
+ output = "street_signs:sign_basic",
+ recipe = {
+ { "dye:green", "default:sign_wall_steel", "dye:green" },
+ { "", "default:steel_ingot", "dye:white" },
+ { "", "default:steel_ingot", "" },
+ }
+})
+
+minetest.register_craft({
+ output = "street_signs:sign_basic_top_only",
+ recipe = {
+ { "dye:green", "default:sign_wall_steel", "dye:green" },
+ { "dye:white", "default:steel_ingot", "" },
+
+ }
+})
+
+minetest.register_craft({
+ output = "street_signs:sign_basic_top_only",
+ recipe = {
+ { "dye:green", "default:sign_wall_steel", "dye:green" },
+ { "", "default:steel_ingot", "dye:white" },
+ }
+})
+
+minetest.register_craft({
+ output = "street_signs:sign_basic",
+ recipe = {
+ { "street_signs:sign_basic_top_only" },
+ { "default:steel_ingot" }
+ }
+})
+
+for _, c in ipairs(street_signs.big_sign_colors) do
+
+ local color = c[1]
+ local defc = c[2]
+ local dye1 = c[3]
+ local dye2 = c[4]
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_small_"..color,
+ recipe = {
+ { dye1, dye2, dye1 },
+ { dye1, dye2, dye1 },
+ { "default:sign_wall_steel", "default:sign_wall_steel", "" }
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_small_"..color,
+ recipe = {
+ { dye1, dye2, dye1 },
+ { dye1, dye2, dye1 },
+ { "", "default:sign_wall_steel", "default:sign_wall_steel" }
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_medium_"..color,
+ recipe = {
+ { "street_signs:sign_highway_small_"..color },
+ { "street_signs:sign_highway_small_"..color }
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_large_"..color,
+ recipe = {
+ { "street_signs:sign_highway_small_"..color },
+ { "street_signs:sign_highway_small_"..color },
+ { "street_signs:sign_highway_small_"..color }
+ }
+ })
+end
+
+if minetest.get_modpath("signs_lib") then
+
+ minetest.register_craft({
+ output = "street_signs:sign_basic",
+ recipe = {
+ { "", "signs:sign_wall_green", "" },
+ { "", "default:steel_ingot", "" },
+ { "", "default:steel_ingot", "" },
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_basic_top_only",
+ recipe = {
+ { "signs:sign_wall_green" },
+ { "default:steel_ingot" },
+ }
+ })
+
+ for _, c in ipairs(street_signs.big_sign_colors) do
+
+ local color = c[1]
+ local defc = c[2]
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_small_"..color,
+ recipe = {
+ { "signs:sign_wall_"..color, "signs:sign_wall_"..color },
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_medium_"..color,
+ recipe = {
+ { "signs:sign_wall_"..color, "signs:sign_wall_"..color },
+ { "signs:sign_wall_"..color, "signs:sign_wall_"..color }
+ }
+ })
+
+ minetest.register_craft({
+ output = "street_signs:sign_highway_large_"..color,
+ recipe = {
+ { "signs:sign_wall_"..color, "signs:sign_wall_"..color, "signs:sign_wall_"..color },
+ { "signs:sign_wall_"..color, "signs:sign_wall_"..color, "signs:sign_wall_"..color }
+ }
+ })
+
+ end
+end
+
diff --git a/street_signs/init.lua b/street_signs/init.lua
index 40045c4..acd2beb 100644
--- a/street_signs/init.lua
+++ b/street_signs/init.lua
@@ -1,6 +1,8 @@
-- This mod provides your standard green street name signs
-- (that is, the two-up, 2m high ones identifying street intersections),
--- and the larger kind found above or alongside highways
+-- the larger kind found above or alongside highways,
+-- and a selection of other kinds of signs like stop, pedestrian crossing,
+-- yield, US Route, and so on (all from MUTCD 2009 R2)
--
-- forked from signs_lib by Diego Martinez et. al
@@ -12,1675 +14,19 @@ screwdriver = screwdriver or {}
local S, NS = dofile(street_signs.path .. "/intllib.lua")
street_signs.gettext = S
--- text encoding
-dofile(street_signs.path .. "/encoding.lua");
+dofile(street_signs.path .. "/encoding.lua") -- text encoding
-local wall_dir_change = {
- [0] = 2,
- 2,
- 5,
- 4,
- 2,
- 3,
-}
-
-street_signs.wallmounted_rotate = function(pos, node, user, mode)
- if mode ~= screwdriver.ROTATE_FACE then return false end
- minetest.swap_node(pos, { name = node.name, param2 = wall_dir_change[node.param2 % 6] })
- for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do
- local e = v:get_luaentity()
- if e and e.name == "street_signs:text" then
- v:remove()
- end
- end
- street_signs.update_sign(pos)
- return true
-end
-
-street_signs.facedir_rotate = function(pos, node, user, mode)
- if mode ~= screwdriver.ROTATE_FACE then return false end
- newparam2 = ((node.param2 % 6 ) == 0) and 1 or 0
- minetest.swap_node(pos, { name = node.name, param2 = newparam2 })
- for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do
- local e = v:get_luaentity()
- if e and e.name == "street_signs:text" then
- v:remove()
- end
- end
- street_signs.update_sign(pos)
- return true
-end
-
-street_signs.modpath = minetest.get_modpath("street_signs")
-
-local DEFAULT_TEXT_SCALE = {x=10, y=10}
-
--- infinite stacks
-
-if not minetest.settings:get_bool("creative_mode") then
- street_signs.expect_infinite_stacks = false
-else
- street_signs.expect_infinite_stacks = true
-end
-
--- CONSTANTS
-
--- Path to the textures.
-local TP = street_signs.path .. "/textures"
--- Font file formatter
-local CHAR_FILE = "%s_%02x.png"
--- Fonts path
-local CHAR_PATH = TP .. "/" .. CHAR_FILE
-
--- Lots of overkill here. KISS advocates, go away, shoo! ;) -- kaeza
-
-local PNG_HDR = string.char(0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A)
-
--- check if a file does exist
--- to avoid reopening file after checking again
--- pass TRUE as second argument
-function file_exists(name, return_handle, mode)
- mode = mode or "r";
- local f = io.open(name, mode)
- if f ~= nil then
- if (return_handle) then
- return f
- end
- io.close(f)
- return true
- else
- return false
- end
-end
-
--- Read the image size from a PNG file.
--- Returns image_w, image_h.
--- Only the LSB is read from each field!
-local function read_image_size(filename)
- local f = file_exists(filename, true, "rb")
- -- file might not exist (don't crash the game)
- if (not f) then
- return 0, 0
- end
- f:seek("set", 0x0)
- local hdr = f:read(string.len(PNG_HDR))
- if hdr ~= PNG_HDR then
- f:close()
- return
- end
- f:seek("set", 0x13)
- local ws = f:read(1)
- f:seek("set", 0x17)
- local hs = f:read(1)
- f:close()
- return ws:byte(), hs:byte()
-end
-
--- 4 rows, max 80 chars per, plus a bit of fudge to
--- avoid excess trimming (e.g. due to color codes)
-
-local MAX_INPUT_CHARS = 400
-
--- helper functions to trim sign text input/output
-
-local function trim_input(text)
- return text:sub(1, math.min(MAX_INPUT_CHARS, text:len()))
-end
-
-local function build_char_db(font_size)
-
- local cw = {}
-
- -- To calculate average char width.
- local total_width = 0
- local char_count = 0
-
- for c = 32, 255 do
- local w, h = read_image_size(CHAR_PATH:format("street_signs_font_"..font_size.."px", c))
- if w and h then
- local ch = string.char(c)
- cw[ch] = w
- total_width = total_width + w
- char_count = char_count + 1
- end
- end
-
- local cbw, cbh = read_image_size(TP.."/street_signs_color_"..font_size.."px_n.png")
- assert(cbw and cbh, "error reading bg dimensions")
- return cw, cbw, cbh, (total_width / char_count)
-end
-
-street_signs.charwidth15,
-street_signs.colorbgw15,
-street_signs.lineheight15,
-street_signs.avgwidth15 = build_char_db(15)
-
-street_signs.charwidth31,
-street_signs.colorbgw31,
-street_signs.lineheight31,
-street_signs.avgwidth31 = build_char_db(31)
-
-local sign_groups = {choppy=2, dig_immediate=2}
-local fences_with_sign = { }
-
--- some local helper functions
-
-local function split_lines_and_words(text)
- if not text then return end
- local lines = { }
- for _, line in ipairs(text:split("\n")) do
- table.insert(lines, line:split(" "))
- end
- return lines
-end
-
-local math_max = math.max
-
-local function fill_line(x, y, w, c, font_size, colorbgw)
- c = c or "0"
- local tex = { }
- for xx = 0, math.max(0, w), colorbgw do
- table.insert(tex, (":%d,%d=street_signs_color_"..font_size.."px_%s.png"):format(x + xx, y, c))
- end
- return table.concat(tex)
-end
-
--- make char texture file name
--- if texture file does not exist use fallback texture instead
-local function char_tex(font_name, ch)
- local c = ch:byte()
- local exists, tex = file_exists(CHAR_PATH:format(font_name, c))
- if exists and c ~= 14 then
- tex = CHAR_FILE:format(font_name, c)
- else
- tex = CHAR_FILE:format(font_name, 0x0)
- end
- return tex, exists
-end
-
-local function make_line_texture(line, lineno, pos, line_width, line_height, cwidth_tab, font_size, colorbgw)
- local width = 0
- local maxw = 0
- local font_name = "street_signs_font_"..font_size.."px"
-
- local words = { }
- local node = minetest.get_node(pos)
- local def = minetest.registered_items[node.name]
- local default_color = def.default_color or 0
-
- local cur_color = tonumber(default_color, 16)
-
- -- We check which chars are available here.
- for word_i, word in ipairs(line) do
- local chars = { }
- local ch_offs = 0
- local word_l = #word
- local i = 1
- while i <= word_l do
- local c = word:sub(i, i)
- if c == "#" then
- local cc = tonumber(word:sub(i+1, i+1), 16)
- if cc then
- i = i + 1
- cur_color = cc
- end
- else
- local w = cwidth_tab[c]
- if w then
- width = width + w + 1
- if width >= (line_width - cwidth_tab[" "]) then
- width = 0
- else
- maxw = math_max(width, maxw)
- end
- if #chars < MAX_INPUT_CHARS then
- table.insert(chars, {
- off = ch_offs,
- tex = char_tex(font_name, c),
- col = ("%X"):format(cur_color),
- })
- end
- ch_offs = ch_offs + w
- end
- end
- i = i + 1
- end
- width = width + cwidth_tab[" "] + 1
- maxw = math_max(width, maxw)
- table.insert(words, { chars=chars, w=ch_offs })
- end
-
- -- Okay, we actually build the "line texture" here.
-
- local texture = { }
-
- local start_xpos = math.floor((line_width - maxw) / 2) + def.x_offset
-
- local xpos = start_xpos
- local ypos = (line_height + def.line_spacing)* lineno + def.y_offset
-
- cur_color = nil
-
- for word_i, word in ipairs(words) do
- local xoffs = (xpos - start_xpos)
- if (xoffs > 0) and ((xoffs + word.w) > maxw) then
- table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
- xpos = start_xpos
- ypos = ypos + line_height + def.line_spacing
- lineno = lineno + 1
- if lineno >= def.number_of_lines then break end
- table.insert(texture, fill_line(xpos, ypos, maxw, cur_color, font_size, colorbgw))
- end
- for ch_i, ch in ipairs(word.chars) do
- if ch.col ~= cur_color then
- cur_color = ch.col
- table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color, font_size, colorbgw))
- end
- table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
- end
- table.insert(
- texture,
- (":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ")
- )
- xpos = xpos + word.w + cwidth_tab[" "]
- if xpos >= (line_width + cwidth_tab[" "]) then break end
- end
-
- table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
- table.insert(texture, fill_line(start_xpos, ypos + line_height, maxw, "n", font_size, colorbgw))
-
- return table.concat(texture), lineno
-end
-
-local function make_sign_texture(lines, pos)
- local node = minetest.get_node(pos)
- local def = minetest.registered_items[node.name]
-
- local font_size
- local line_width
- local line_height
- local char_width
- local colorbgw
-
- if def.font_size and def.font_size == 31 then
- font_size = 31
- line_width = math.floor(street_signs.avgwidth31 * def.chars_per_line) * def.horiz_scaling
- line_height = street_signs.lineheight31
- char_width = street_signs.charwidth31
- colorbgw = street_signs.colorbgw31
- else
- font_size = 15
- line_width = math.floor(street_signs.avgwidth15 * def.chars_per_line) * def.horiz_scaling
- line_height = street_signs.lineheight15
- char_width = street_signs.charwidth15
- colorbgw = street_signs.colorbgw15
- end
-
- local texture = { ("[combine:%dx%d"):format(line_width, (line_height + def.line_spacing) * def.number_of_lines * def.vert_scaling) }
-
- local lineno = 0
- for i = 1, #lines do
- if lineno >= def.number_of_lines then break end
- local linetex, ln = make_line_texture(lines[i], lineno, pos, line_width, line_height, char_width, font_size, colorbgw)
- table.insert(texture, linetex)
- lineno = ln + 1
- end
- table.insert(texture, "^[makealpha:0,0,0")
- return table.concat(texture, "")
-end
-
-local function set_obj_text(obj, text, x, pos)
- local split = split_lines_and_words
- local text_ansi = Utf8ToAnsi(text)
- local n = minetest.registered_nodes[minetest.get_node(pos).name]
- local text_scale = (n and n.text_scale) or DEFAULT_TEXT_SCALE
- local texture = make_sign_texture(split(text_ansi), pos)
- obj:set_properties({
- textures={texture},
- visual_size = text_scale,
- })
-end
-
-street_signs.construct_sign = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string(
- "formspec",
- "size[5,2.25]"..
- "textarea[0.55,0.1;4.5,1.5;text;;${text}]"..
- "button_exit[1.5,1.65;2,1;ok;"..S("Write").."]"..
- "background[-0.20,-0.25;5.41,2.98;street_signs_bg.png]")
- meta:set_string("infotext", "")
-end
-
-street_signs.destruct_sign = function(pos)
- local objects = minetest.get_objects_inside_radius(pos, 0.5)
- for _, v in ipairs(objects) do
- local e = v:get_luaentity()
- if e and e.name == "street_signs:text" then
- v:remove()
- end
- end
-end
-
-local function make_infotext(text)
- text = trim_input(text)
- local lines = split_lines_and_words(text) or {}
- local lines2 = { }
- for _, line in ipairs(lines) do
- table.insert(lines2, (table.concat(line, " "):gsub("#[0-9a-fA-F]", ""):gsub("##", "#")))
- end
- return table.concat(lines2, "\n")
-end
-
-street_signs.update_sign = function(pos, fields)
- local meta = minetest.get_meta(pos)
-
- local text = fields and fields.text or meta:get_string("text")
- text = trim_input(text)
-
- meta:set_string("infotext", make_infotext(text).." ")
- meta:set_string("text", text)
-
- local objects = minetest.get_objects_inside_radius(pos, 0.5)
- local found
- for _, v in ipairs(objects) do
- local e = v:get_luaentity()
- if e and e.name == "street_signs:text" then
- if found then
- v:remove()
- else
- set_obj_text(v, text, nil, pos)
- found = true
- end
- end
- end
- if found then
- return
- end
-
- -- if there is no entity
- local signnode = minetest.get_node(pos)
- local signname = signnode.name
- local def = minetest.registered_items[signname]
- if not def.entity_info or not def.entity_info.yaw[signnode.param2 + 1] then return end
- local obj = minetest.add_entity(pos, "street_signs:text")
-
- obj:setyaw(def.entity_info.yaw[signnode.param2 + 1])
- obj:set_properties({
- mesh = def.entity_info.mesh,
- })
-end
-
-function street_signs.receive_fields(pos, formname, fields, sender)
- if minetest.is_protected(pos, sender:get_player_name()) then
- minetest.record_protection_violation(pos,
- sender:get_player_name())
- return
- end
- if fields and fields.text and fields.ok then
- minetest.log("action", S("@1 wrote \"@2\" to sign at @3",
- (sender:get_player_name() or ""),
- fields.text:gsub('\\', '\\\\'):gsub("\n", "\\n"),
- minetest.pos_to_string(pos)
- ))
- street_signs.update_sign(pos, fields)
- end
-end
-
-local lbm_restore_nodes = {}
-
-local cbox = {
- type = "fixed",
- fixed = {
- { -1/32, 23/16, -1/32, 1/32, 24/16, 1/32 },
- { -1/32, 18/16, -8/16, 1/32, 23/16, 8/16 },
- { -1/32, 17/16, -1/32, 1/32, 18/16, 1/32 },
- { -8/16, 12/16, -1/32, 8/16, 17/16, 1/32 },
- { -1/16, -8/16, -1/16, 1/16, 12/16, 1/16 },
- }
-}
-
-local stdyaw = {
- 0,
- math.pi / -2,
- math.pi,
- math.pi / 2,
-}
-
-local wmyaw = {
- nil,
- nil,
- math.pi / -2,
- math.pi / 2,
- 0,
- math.pi,
-}
-
-local on_construct =function(pos)
- street_signs.construct_sign(pos)
-end
-local on_destruct = function(pos)
- street_signs.destruct_sign(pos)
-end
-local on_receive_fields = function(pos, formname, fields, sender)
- street_signs.receive_fields(pos, formname, fields, sender)
-end
-local on_punch = function(pos, node, puncher)
- street_signs.update_sign(pos)
-end
-
-table.insert(lbm_restore_nodes, "street_signs:sign_basic")
-table.insert(lbm_restore_nodes, "street_signs:sign_basic_top_only")
-
-minetest.register_node("street_signs:sign_basic", {
- description = "D3-1a: Generic intersection street name sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "facedir",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_basic.obj",
- tiles = { "street_signs_basic.png" },
- groups = {choppy=2, dig_immediate=2},
- default_color = "f",
- on_construct = on_construct,
- on_destruct = on_destruct,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = street_signs.facedir_rotate,
- number_of_lines = 2,
- horiz_scaling = 1,
- vert_scaling = 1,
- line_spacing = 6,
- font_size = 15,
- x_offset = 1,
- y_offset = 3,
- chars_per_line = 30,
- entity_info = {
- mesh = "street_signs_basic_entity.obj",
- yaw = stdyaw
- }
-})
-
-cbox = {
- type = "fixed",
- fixed = {
- { -1/32, 7/16, -1/32, 1/32, 8/16, 1/32 },
- { -1/32, 2/16, -8/16, 1/32, 7/16, 8/16 },
- { -1/32, 1/16, -1/32, 1/32, 2/16, 1/32 },
- { -8/16, -4/16, -1/32, 8/16, 1/16, 1/32 },
- { -1/16, -8/16, -1/16, 1/16, -4/16, 1/16 },
-
- }
-}
-
-minetest.register_node("street_signs:sign_basic_top_only", {
- description = "D3-1a: Generic intersection street name sign (top only)",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "facedir",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_basic_top_only.obj",
- tiles = { "street_signs_basic.png" },
- groups = {choppy=2, dig_immediate=2},
- default_color = "f",
- on_construct = on_construct,
- on_destruct = on_destruct,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = street_signs.facedir_rotate,
- number_of_lines = 2,
- horiz_scaling = 1,
- vert_scaling = 1,
- line_spacing = 6,
- font_size = 15,
- x_offset = 1,
- y_offset = 3,
- chars_per_line = 30,
- entity_info = {
- mesh = "street_signs_basic_top_only_entity.obj",
- yaw = stdyaw
- }
-})
-
-local colors = {
+street_signs.big_sign_colors = {
{ "green", "f", "dye:green", "dye:white" },
{ "blue", "f", "dye:blue", "dye:white" },
{ "yellow", "0", "dye:yellow", "dye:black" },
{ "orange", "0", "dye:orange", "dye:black" }
}
-for _, c in ipairs(colors) do
-
- cbox = {
- type = "wallmounted",
- wall_side = { -0.5, -0.4375, -0.4375, -0.375, 0.4375, 1.4375 }
- }
-
- local color = c[1]
- local defc = c[2]
-
- table.insert(lbm_restore_nodes, "street_signs:sign_highway_small_"..color)
- table.insert(lbm_restore_nodes, "street_signs:sign_highway_medium_"..color)
- table.insert(lbm_restore_nodes, "street_signs:sign_highway_large_"..color)
-
- minetest.register_node("street_signs:sign_highway_small_"..color, {
- description = "Small generic highway sign (3-line, "..color..")",
- inventory_image = "street_signs_highway_small_"..color.."_inv.png",
- wield_image = "street_signs_highway_small_"..color.."_inv.png",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_highway_small.obj",
- tiles = { "street_signs_highway_small_"..color..".png" },
- default_color = defc,
- groups = {choppy=2, dig_immediate=2},
- on_construct = on_construct,
- on_destruct = on_destruct,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = street_signs.wallmounted_rotate,
- number_of_lines = 3,
- horiz_scaling = 2,
- vert_scaling = 1.15,
- line_spacing = 2,
- font_size = 31,
- x_offset = 9,
- y_offset = 7,
- chars_per_line = 22,
- entity_info = {
- mesh = "street_signs_highway_small_entity.obj",
- yaw = wmyaw
- }
- })
- cbox = {
- type = "wallmounted",
- wall_side = { -0.5, -0.4375, -0.4375, -0.375, 1.4375, 1.4375 }
- }
-
- minetest.register_node("street_signs:sign_highway_medium_"..color, {
- description = "Medium generic highway sign (5-line, "..color..")",
- inventory_image = "street_signs_highway_medium_"..color.."_inv.png",
- wield_image = "street_signs_highway_medium_"..color.."_inv.png",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_highway_medium.obj",
- tiles = { "street_signs_highway_medium_"..color..".png" },
- default_color = defc,
- groups = {choppy=2, dig_immediate=2},
- on_construct = on_construct,
- on_destruct = on_destruct,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = street_signs.wallmounted_rotate,
- number_of_lines = 6,
- horiz_scaling = 2,
- vert_scaling = 0.915,
- line_spacing = 2,
- font_size = 31,
- x_offset = 7,
- y_offset = 10,
- chars_per_line = 22,
- entity_info = {
- mesh = "street_signs_highway_medium_entity.obj",
- yaw = wmyaw
- }
- })
-
- cbox = {
- type = "wallmounted",
- wall_side = { -0.5, -0.4375, -0.4375, -0.375, 1.4375, 2.4375 }
- }
-
- minetest.register_node("street_signs:sign_highway_large_"..color, {
- description = "Large generic highway sign (5-line, "..color..")",
- inventory_image = "street_signs_highway_large_"..color.."_inv.png",
- wield_image = "street_signs_highway_large_"..color.."_inv.png",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_highway_large.obj",
- tiles = { "street_signs_highway_large_"..color..".png" },
- default_color = defc,
- groups = {choppy=2, dig_immediate=2},
- on_construct = on_construct,
- on_destruct = on_destruct,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = street_signs.wallmounted_rotate,
- number_of_lines = 6,
- horiz_scaling = 2,
- vert_scaling = 0.915,
- line_spacing = 2,
- font_size = 31,
- x_offset = 12,
- y_offset = 11,
- chars_per_line = 25,
- entity_info = {
- mesh = "street_signs_highway_large_entity.obj",
- yaw = wmyaw
- }
- })
-end
-
-local after_place_node = function(pos, placer, itemstack, pointed_thing)
- local ppos = minetest.get_pointed_thing_position(pointed_thing)
- local pnode = minetest.get_node(ppos)
- local pdef = minetest.registered_items[pnode.name]
- if (pdef and pdef.drawtype == "fencelike")
- or string.find(pnode.name, "default:fence_")
- or pnode.name == "coloredwood:fence"
- or (pnode.name == "streets:bigpole" and pnode.param2 < 4)
- or (pnode.name == "streets:bigpole" and pnode.param2 > 19 and pnode.param2 < 24) then
- local node = minetest.get_node(pos)
- minetest.swap_node(pos, {name = itemstack:get_name().."_onpole", param2 = node.param2})
- end
-end
-
-local function shift_to_pole(t, m)
- if m ~= "" then
- return {
- type = "wallmounted",
- wall_side = { t[1] - 0.3125, t[2], t[3], t[4] - 0.3125, t[5], t[6] },
- wall_top = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
- wall_bottom = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
- }
- else
- return {
- type = "wallmounted",
- wall_side = t,
- wall_top = { t[3], -t[1], t[2], t[6], -t[4], t[5] },
- wall_bottom = { t[3], t[1], t[2], t[6], t[4], t[5] }
- }
- end
-end
-
-
-for _, m in ipairs({"", "_onpole"}) do
-
- cbox = shift_to_pole({ -0.5, -0.46, -0.46, -0.4375, 0.46, 0.46 }, m)
-
- local nci = nil
- local on_rotate = street_signs.wallmounted_rotate
- local pole_mount_tex = nil
-
- if m ~= "" then
- nci = 1
- on_rotate = nil
- pole_mount_tex = "street_signs_pole_mount.png"
- end
-
- table.insert(lbm_restore_nodes, "street_signs:sign_us_route"..m)
- table.insert(lbm_restore_nodes, "street_signs:sign_us_interstate"..m)
-
- minetest.register_node("street_signs:sign_us_route"..m, {
- description = "M1-4: Generic \"US Route\" sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x36"..m..".obj",
- tiles = { "street_signs_us_route.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_us_route_inv.png",
- wield_image = "street_signs_us_route_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 1,
- horiz_scaling = 3.5,
- vert_scaling = 1.4,
- line_spacing = 6,
- font_size = 31,
- x_offset = 8,
- y_offset = 11,
- chars_per_line = 3,
- entity_info = {
- mesh = "street_signs_regulatory_36x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_us_route"
- })
-
- minetest.register_node("street_signs:sign_us_interstate"..m, {
- description = "M1-1: Generic US Interstate sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_interstate_shield"..m..".obj",
- tiles = { "street_signs_us_interstate.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_us_interstate_inv.png",
- wield_image = "street_signs_us_interstate_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "f",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 1,
- horiz_scaling = 4.3,
- vert_scaling = 1.4,
- line_spacing = 6,
- font_size = 31,
- x_offset = 8,
- y_offset = 14,
- chars_per_line = 3,
- entity_info = {
- mesh = "street_signs_interstate_shield_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_us_interstate"
- })
-
- cbox = shift_to_pole({ -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, m)
-
- table.insert(lbm_restore_nodes, "street_signs:sign_warning_3_line"..m)
- table.insert(lbm_restore_nodes, "street_signs:sign_warning_4_line"..m)
- table.insert(lbm_restore_nodes, "street_signs:sign_warning_orange_3_line"..m)
- table.insert(lbm_restore_nodes, "street_signs:sign_warning_orange_4_line"..m)
-
- minetest.register_node("street_signs:sign_warning_3_line"..m, {
- description = "W3-4: Generic US diamond \"warning\" sign (3-line, yellow)",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_warning.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_warning_3_line_inv.png",
- wield_image = "street_signs_warning_3_line_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 3,
- horiz_scaling = 1.75,
- vert_scaling = 1.75,
- line_spacing = 1,
- font_size = 15,
- x_offset = 6,
- y_offset = 19,
- chars_per_line = 15,
- entity_info = {
- mesh = "street_signs_warning_36x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_warning_3_line"
- })
-
- minetest.register_node("street_signs:sign_warning_4_line"..m, {
- description = "W23-2: Generic US diamond \"warning\" sign (4-line, yellow)",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_warning.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_warning_4_line_inv.png",
- wield_image = "street_signs_warning_4_line_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 4,
- horiz_scaling = 1.75,
- vert_scaling = 1.75,
- line_spacing = 1,
- font_size = 15,
- x_offset = 6,
- y_offset = 25,
- chars_per_line = 15,
- entity_info = {
- mesh = "street_signs_warning_36x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_warning_4_line"
- })
-
- minetest.register_node("street_signs:sign_warning_orange_3_line"..m, {
- description = "W3-4: Generic US diamond \"warning\" sign (3-line, orange)",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_warning_orange.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_warning_orange_3_line_inv.png",
- wield_image = "street_signs_warning_orange_3_line_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 3,
- horiz_scaling = 1.75,
- vert_scaling = 1.75,
- line_spacing = 1,
- font_size = 15,
- x_offset = 6,
- y_offset = 19,
- chars_per_line = 15,
- entity_info = {
- mesh = "street_signs_warning_36x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_warning_orange_3_line"
- })
-
- minetest.register_node("street_signs:sign_warning_orange_4_line"..m, {
- description = "W23-2: Generic US diamond \"warning\" sign (4-line, orange)",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_warning_orange.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_warning_orange_4_line_inv.png",
- wield_image = "street_signs_warning_orange_4_line_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 4,
- horiz_scaling = 1.75,
- vert_scaling = 1.75,
- line_spacing = 1,
- font_size = 15,
- x_offset = 6,
- y_offset = 25,
- chars_per_line = 15,
- entity_info = {
- mesh = "street_signs_warning_36x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_warning_orange_4_line"
- })
-
- cbox = shift_to_pole({ -0.5, -0.47, -0.4, -0.4375, 0.47, 0.4 }, m)
-
- table.insert(lbm_restore_nodes, "street_signs:sign_speed_limit"..m)
-
- minetest.register_node("street_signs:sign_speed_limit"..m, {
- description = "R2-1: Generic speed limit sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_30x36"..m..".obj",
- tiles = { "street_signs_speed_limit.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_speed_limit_inv.png",
- wield_image = "street_signs_speed_limit_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- on_construct = on_construct,
- on_destruct = on_destruct,
- after_place_node = after_place_node,
- on_receive_fields = on_receive_fields,
- on_punch = on_punch,
- on_rotate = on_rotate,
- number_of_lines = 1,
- horiz_scaling = 2.65,
- vert_scaling = 2.3,
- line_spacing = 1,
- font_size = 31,
- x_offset = 8,
- y_offset = 37,
- chars_per_line = 4,
- entity_info = {
- mesh = "street_signs_regulatory_30x36_entity"..m..".obj",
- yaw = wmyaw
- },
- drop = "street_signs:sign_speed_limit"
- })
-
--- below this point are image-only signs (i.e. no user-input)
-
- cbox = shift_to_pole({ -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, m)
-
- minetest.register_node("street_signs:sign_stop"..m, {
- description = "R1-1: Stop sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_stop"..m..".obj",
- tiles = { "street_signs_stop.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_stop_inv.png",
- wield_image = "street_signs_stop_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_stop"
- })
-
- cbox = shift_to_pole({ -0.5, -0.61, -0.61, -0.4375, 0.61, 0.61 }, m)
-
- minetest.register_node("street_signs:sign_yield"..m, {
- description = "R1-2: Yield sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_yield"..m..".obj",
- tiles = { "street_signs_yield.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_yield_inv.png",
- wield_image = "street_signs_yield_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_yield"
- })
-
- cbox = shift_to_pole({ -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 }, m)
-
- minetest.register_node("street_signs:sign_pedestrian_crossing"..m, {
- description = "W11-2: Pedestrian crossing sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_pedestrian_crossing.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_pedestrian_crossing_inv.png",
- wield_image = "street_signs_pedestrian_crossing_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_pedestrian_crossing"
- })
-
- minetest.register_node("street_signs:sign_signal_ahead"..m, {
- description = "W3-3: Traffic signal ahead",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_signal_ahead.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_signal_ahead_inv.png",
- wield_image = "street_signs_signal_ahead_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_signal_ahead"
- })
-
- minetest.register_node("street_signs:sign_stop_ahead"..m, {
- description = "W3-1: Stop sign ahead",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_stop_ahead.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_stop_ahead_inv.png",
- wield_image = "street_signs_stop_ahead_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_stop_ahead"
- })
-
- minetest.register_node("street_signs:sign_yield_ahead"..m, {
- description = "W3-2: Yield sign ahead",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_yield_ahead.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_yield_ahead_inv.png",
- wield_image = "street_signs_yield_ahead_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_yield_ahead"
- })
-
- minetest.register_node("street_signs:sign_merging_traffic"..m, {
- description = "W4-1: Traffic merging from right sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_merging_traffic.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_merging_traffic_inv.png",
- wield_image = "street_signs_merging_traffic_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_merging_traffic"
- })
-
- minetest.register_node("street_signs:sign_two_way_traffic"..m, {
- description = "W6-3: Two-way traffic sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_two_way_traffic.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_two_way_traffic_inv.png",
- wield_image = "street_signs_two_way_traffic_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_two_way_traffic"
- })
-
- minetest.register_node("street_signs:sign_left_lane_ends"..m, {
- description = "W4-2: Left lane ends sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_left_lane_ends.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_left_lane_ends_inv.png",
- wield_image = "street_signs_left_lane_ends_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_left_lane_ends"
- })
-
- minetest.register_node("street_signs:sign_right_lane_ends"..m, {
- description = "W4-2: Right lane ends sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_warning_36x36"..m..".obj",
- tiles = { "street_signs_right_lane_ends.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_right_lane_ends_inv.png",
- wield_image = "street_signs_right_lane_ends_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- default_color = "0",
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_right_lane_ends"
- })
-
- cbox = shift_to_pole({ -0.5, -0.47, -0.4, -0.4375, 0.47, 0.4 }, m)
-
- minetest.register_node("street_signs:sign_left_on_green_arrow_only"..m, {
- description = "R10-5: Left on green arrow only sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_30x36"..m..".obj",
- tiles = { "street_signs_left_on_green_arrow_only.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_left_on_green_arrow_only_inv.png",
- wield_image = "street_signs_left_on_green_arrow_only_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_left_on_green_arrow_only"
- })
-
- cbox = shift_to_pole({ -0.5, -0.47, -0.32, -0.4375, 0.47, 0.32 }, m)
-
- minetest.register_node("street_signs:sign_stop_here_on_red"..m, {
- description = "R10-6: Stop here on red sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_24x36"..m..".obj",
- tiles = { "street_signs_stop_here_on_red.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_stop_here_on_red_inv.png",
- wield_image = "street_signs_stop_here_on_red_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_stop_here_on_red"
- })
-
- cbox = shift_to_pole({ -0.5, -0.625, -0.47, -0.4375, 0.625, 0.47 }, m)
-
- minetest.register_node("street_signs:sign_keep_right"..m, {
- description = "R4-7: Keep right sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x48"..m..".obj",
- tiles = { "street_signs_keep_right.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_keep_right_inv.png",
- wield_image = "street_signs_keep_right_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_keep_right"
- })
-
- minetest.register_node("street_signs:sign_keep_left"..m, {
- description = "R4-8: Keep left sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x48"..m..".obj",
- tiles = { "street_signs_keep_left.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_keep_left_inv.png",
- wield_image = "street_signs_keep_left_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_keep_left"
- })
-
- cbox = shift_to_pole({ -0.5, -0.46, -0.46, -0.4375, 0.46, 0.46 }, m)
-
- minetest.register_node("street_signs:sign_do_not_enter"..m, {
- description = "R5-1: Do not enter sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x36"..m..".obj",
- tiles = {
- "street_signs_do_not_enter.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_do_not_enter_inv.png",
- wield_image = "street_signs_do_not_enter_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_do_not_enter"
- })
-
- cbox = shift_to_pole({ -0.5, -0.4, -0.5625, -0.4375, 0.4, 0.5625 }, m)
-
- minetest.register_node("street_signs:sign_wrong_way"..m, {
- description = "R5-1a: Wrong way sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_42x30"..m..".obj",
- tiles = { "street_signs_wrong_way.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_wrong_way_inv.png",
- wield_image = "street_signs_wrong_way_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:sign_wrong_way"
- })
-
- cbox = shift_to_pole({ -0.5, -0.55, -0.5, -0.4375, 0.55, 0.5 }, m)
-
- minetest.register_node("street_signs:use_lane_with_green_arrow"..m, {
- description = "R10-8: Use lane with green arrow",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x42"..m..".obj",
- tiles = { "street_signs_use_lane_with_green_arrow.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_use_lane_with_green_arrow_inv.png",
- wield_image = "street_signs_use_lane_with_green_arrow_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:use_lane_with_green_arrow"
- })
-
- cbox = shift_to_pole({ -0.5, -0.625, -0.47, -0.4375, 0.625, 0.47 }, m)
-
- minetest.register_node("street_signs:no_turn_on_red_light"..m, {
- description = "R10-11: No turn on red light",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_regulatory_36x48"..m..".obj",
- tiles = { "street_signs_no_turn_on_red_light.png",
- "street_signs_sign_edge.png",
- pole_mount_tex
- },
- inventory_image = "street_signs_no_turn_on_red_light_inv.png",
- wield_image = "street_signs_no_turn_on_red_light_inv.png",
- groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
- after_place_node = after_place_node,
- on_rotate = on_rotate,
- drop = "street_signs:no_turn_on_red_light"
- })
-
-end
-
-cbox = {
- type = "fixed",
- fixed = { -0.1875, -0.5, -0.25, 0.1875, 0.6125, 0.25 }
-}
-
-minetest.register_node("street_signs:sign_stop_for_ped", {
- description = "R1-6a: Stop for pedestrian in crosswalk sign",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "facedir",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_stop_for_ped.obj",
- tiles = { "street_signs_stop_for_ped.png" },
- inventory_image = "street_signs_stop_for_ped_inv.png",
- groups = {choppy=2, dig_immediate=2},
-})
-
-for _, d in ipairs({"l", "c", "r"}) do
-
- cbox = {
- type = "wallmounted",
- wall_side = { -0.5, -0.5, -0.1875, -0.4375, 0.5, 0.1875 }
- }
-
- minetest.register_node("street_signs:sign_object_marker_type3_"..d, {
- description = "OM3-"..string.upper(d)..": Type 3 object marker",
- paramtype = "light",
- sunlight_propagates = true,
- paramtype2 = "wallmounted",
- drawtype = "mesh",
- node_box = cbox,
- selection_box = cbox,
- mesh = "street_signs_object_marker_type_3.obj",
- tiles = { "street_signs_object_marker_type3_"..d..".png",
- "street_signs_sign_edge.png"
- },
- inventory_image = "street_signs_object_marker_type3_"..d.."_inv.png",
- groups = {choppy=2, dig_immediate=2},
- })
-end
-
-local signs_text_on_activate
-
-signs_text_on_activate = function(self)
- local pos = self.object:getpos()
- local meta = minetest.get_meta(pos)
- local signnode = minetest.get_node(pos)
- local signname = signnode.name
- local def = minetest.registered_items[signname]
- local text = meta:get_string("text")
- if text and def and def.entity_info then
- text = trim_input(text)
- set_obj_text(self.object, text, nil, pos)
- self.object:set_properties({
- mesh = def.entity_info.mesh,
- })
- end
-end
-
-minetest.register_entity("street_signs:text", {
- collisionbox = { 0, 0, 0, 0, 0, 0 },
- visual = "mesh",
- mesh = "street_signs_basic_entity.obj",
- textures = {},
- on_activate = signs_text_on_activate,
-})
-
--- crafts
-
-minetest.register_craft({
- output = "street_signs:sign_basic",
- recipe = {
- { "dye:green", "default:sign_wall_steel", "dye:green" },
- { "dye:white", "default:steel_ingot", "" },
- { "", "default:steel_ingot", "" },
- }
-})
-
-minetest.register_craft({
- output = "street_signs:sign_basic",
- recipe = {
- { "dye:green", "default:sign_wall_steel", "dye:green" },
- { "", "default:steel_ingot", "dye:white" },
- { "", "default:steel_ingot", "" },
- }
-})
-
-minetest.register_craft({
- output = "street_signs:sign_basic_top_only",
- recipe = {
- { "dye:green", "default:sign_wall_steel", "dye:green" },
- { "dye:white", "default:steel_ingot", "" },
-
- }
-})
-
-minetest.register_craft({
- output = "street_signs:sign_basic_top_only",
- recipe = {
- { "dye:green", "default:sign_wall_steel", "dye:green" },
- { "", "default:steel_ingot", "dye:white" },
- }
-})
-
-minetest.register_craft({
- output = "street_signs:sign_basic",
- recipe = {
- { "street_signs:sign_basic_top_only" },
- { "default:steel_ingot" }
- }
-})
-
-for _, c in ipairs(colors) do
-
- local color = c[1]
- local defc = c[2]
- local dye1 = c[3]
- local dye2 = c[4]
-
- minetest.register_craft({
- output = "street_signs:sign_highway_small_"..color,
- recipe = {
- { dye1, dye2, dye1 },
- { dye1, dye2, dye1 },
- { "default:sign_wall_steel", "default:sign_wall_steel", "" }
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_highway_small_"..color,
- recipe = {
- { dye1, dye2, dye1 },
- { dye1, dye2, dye1 },
- { "", "default:sign_wall_steel", "default:sign_wall_steel" }
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_highway_medium_"..color,
- recipe = {
- { "street_signs:sign_highway_small_"..color },
- { "street_signs:sign_highway_small_"..color }
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_highway_large_"..color,
- recipe = {
- { "street_signs:sign_highway_small_"..color },
- { "street_signs:sign_highway_small_"..color },
- { "street_signs:sign_highway_small_"..color }
- }
- })
-end
-
-if minetest.get_modpath("signs_lib") then
-
- minetest.register_craft({
- output = "street_signs:sign_basic",
- recipe = {
- { "", "signs:sign_wall_green", "" },
- { "", "default:steel_ingot", "" },
- { "", "default:steel_ingot", "" },
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_basic_top_only",
- recipe = {
- { "signs:sign_wall_green" },
- { "default:steel_ingot" },
- }
- })
-
- for _, c in ipairs(colors) do
-
- local color = c[1]
- local defc = c[2]
-
- minetest.register_craft({
- output = "street_signs:sign_highway_small_"..color,
- recipe = {
- { "signs:sign_wall_"..color, "signs:sign_wall_"..color },
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_highway_medium_"..color,
- recipe = {
- { "signs:sign_wall_"..color, "signs:sign_wall_"..color },
- { "signs:sign_wall_"..color, "signs:sign_wall_"..color }
- }
- })
-
- minetest.register_craft({
- output = "street_signs:sign_highway_large_"..color,
- recipe = {
- { "signs:sign_wall_"..color, "signs:sign_wall_"..color, "signs:sign_wall_"..color },
- { "signs:sign_wall_"..color, "signs:sign_wall_"..color, "signs:sign_wall_"..color }
- }
- })
-
- end
-end
-
--- restore signs' text after /clearobjects and the like, the next time
--- a block is reloaded by the server.
-
-minetest.register_lbm({
- nodenames = lbm_restore_nodes,
- name = "street_signs:restore_sign_text",
- label = "Restore sign text",
- run_at_every_load = true,
- action = function(pos, node)
- street_signs.update_sign(pos)
- end
-})
-
--- Convert old road/streets modpack signs to street_signs versions
-
-if minetest.get_modpath("infrastructure") then
- local old_signs = {
- "infrastructure:road_sign_stop",
- "infrastructure:road_sign_stop_on_post",
- "infrastructure:road_sign_yield",
- "infrastructure:road_sign_yield_on_post",
- "infrastructure:road_sign_crosswalk",
- "infrastructure:road_sign_crosswalk_on_post"
- }
-
- local signs_equiv = {
- ["infrastructure:road_sign_stop"] = "street_signs:sign_stop",
- ["infrastructure:road_sign_stop_on_post"] = "street_signs:sign_stop_onpole",
- ["infrastructure:road_sign_yield"] = "street_signs:sign_yield",
- ["infrastructure:road_sign_yield_on_post"] = "street_signs:sign_yield_onpole",
- ["infrastructure:road_sign_crosswalk"] = "street_signs:sign_pedestrian_crossing",
- ["infrastructure:road_sign_crosswalk_on_post"] = "street_signs:sign_pedestrian_crossing_onpole",
- }
-
- for _, name in ipairs(old_signs) do
- minetest.unregister_item(name)
- if not string.find(name, "on_post") then
- minetest.clear_craft({output = name})
- end
- end
-
- minetest.register_alias_force("infrastructure:road_sign_retroreflective_surface", "air")
- minetest.register_alias_force("infrastructure:crosswalk_safety_sign_bottom", "street_signs:sign_stop_for_ped")
- minetest.register_alias_force("infrastructure:crosswalk_safety_sign_top", "air")
-
- minetest.register_lbm({
- nodenames = old_signs,
- name = "street_signs:convert_signs",
- label = "Convert roads/streets modpack signs",
- run_at_every_load = true,
- action = function(pos, node)
- local newname = signs_equiv[node.name]
- local dir = minetest.facedir_to_dir(node.param2)
- if not dir then return end
- minetest.set_node(pos, {name = newname, param2 = minetest.dir_to_wallmounted(dir)})
- end
- })
-end
+dofile(street_signs.path.."/api.lua")
+dofile(street_signs.path.."/signs.lua")
+dofile(street_signs.path.."/crafting.lua")
+dofile(street_signs.path.."/compat_convert.lua")
if minetest.settings:get("log_mods") then
minetest.log("action", S("[MOD] Street signs loaded"))
diff --git a/street_signs/models/street_signs_generic_sign_24x24.obj b/street_signs/models/street_signs_generic_sign_24x24.obj
new file mode 100644
index 0000000..bef2984
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_24x24.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.254800 -0.500000 -0.304800
+v 0.304800 -0.500000 -0.254800
+v 0.270251 -0.500000 -0.302353
+v 0.284189 -0.500000 -0.295251
+v 0.295251 -0.500000 -0.284189
+v 0.302353 -0.500000 -0.270251
+v 0.304800 -0.450000 -0.254800
+v 0.254800 -0.450000 -0.304800
+v 0.302353 -0.450000 -0.270251
+v 0.295251 -0.450000 -0.284189
+v 0.284189 -0.450000 -0.295251
+v 0.270251 -0.450000 -0.302353
+v 0.304800 -0.500000 0.254800
+v 0.254800 -0.500000 0.304800
+v 0.302353 -0.500000 0.270251
+v 0.295251 -0.500000 0.284189
+v 0.284189 -0.500000 0.295251
+v 0.270251 -0.500000 0.302353
+v 0.254800 -0.450000 0.304800
+v 0.304800 -0.450000 0.254800
+v 0.270251 -0.450000 0.302353
+v 0.284189 -0.450000 0.295251
+v 0.295251 -0.450000 0.284189
+v 0.302353 -0.450000 0.270251
+v -0.304800 -0.500000 -0.254800
+v -0.254800 -0.500000 -0.304800
+v -0.302353 -0.500000 -0.270251
+v -0.295251 -0.500000 -0.284189
+v -0.284189 -0.500000 -0.295251
+v -0.270251 -0.500000 -0.302353
+v -0.254800 -0.450000 -0.304800
+v -0.304800 -0.450000 -0.254800
+v -0.270251 -0.450000 -0.302353
+v -0.284189 -0.450000 -0.295251
+v -0.295251 -0.450000 -0.284189
+v -0.302353 -0.450000 -0.270251
+v -0.254800 -0.500000 0.304800
+v -0.304800 -0.500000 0.254800
+v -0.270251 -0.500000 0.302353
+v -0.284189 -0.500000 0.295251
+v -0.295251 -0.500000 0.284189
+v -0.302353 -0.500000 0.270251
+v -0.304800 -0.450000 0.254800
+v -0.254800 -0.450000 0.304800
+v -0.302353 -0.450000 0.270251
+v -0.295251 -0.450000 0.284189
+v -0.284189 -0.450000 0.295251
+v -0.270251 -0.450000 0.302353
+v 0.254800 -0.500000 -0.304800
+v 0.304800 -0.500000 -0.254800
+v 0.270251 -0.500000 -0.302353
+v 0.284189 -0.500000 -0.295251
+v 0.295251 -0.500000 -0.284189
+v 0.302353 -0.500000 -0.270251
+v 0.254800 -0.450000 -0.304800
+v 0.304800 -0.450000 -0.254800
+v 0.270251 -0.450000 -0.302353
+v 0.284189 -0.450000 -0.295251
+v 0.295251 -0.450000 -0.284189
+v 0.302353 -0.450000 -0.270251
+v 0.254800 -0.500000 0.304800
+v 0.304800 -0.500000 0.254800
+v 0.270251 -0.500000 0.302353
+v 0.284189 -0.500000 0.295251
+v 0.295251 -0.500000 0.284189
+v 0.302353 -0.500000 0.270251
+v 0.254800 -0.450000 0.304800
+v 0.304800 -0.450000 0.254800
+v 0.270251 -0.450000 0.302353
+v 0.284189 -0.450000 0.295251
+v 0.295251 -0.450000 0.284189
+v 0.302353 -0.450000 0.270251
+v -0.254800 -0.500000 -0.304800
+v -0.304800 -0.500000 -0.254800
+v -0.270251 -0.500000 -0.302353
+v -0.284189 -0.500000 -0.295251
+v -0.295251 -0.500000 -0.284189
+v -0.302353 -0.500000 -0.270251
+v -0.304800 -0.450000 -0.254800
+v -0.254800 -0.450000 -0.304800
+v -0.302353 -0.450000 -0.270251
+v -0.295251 -0.450000 -0.284189
+v -0.284189 -0.450000 -0.295251
+v -0.270251 -0.450000 -0.302353
+v -0.254800 -0.500000 0.304800
+v -0.304800 -0.500000 0.254800
+v -0.270251 -0.500000 0.302353
+v -0.284189 -0.500000 0.295251
+v -0.295251 -0.500000 0.284189
+v -0.302353 -0.500000 0.270251
+v -0.254800 -0.450000 0.304800
+v -0.304800 -0.450000 0.254800
+v -0.270251 -0.450000 0.302353
+v -0.284189 -0.450000 0.295251
+v -0.295251 -0.450000 0.284189
+v -0.302353 -0.450000 0.270251
+vt 0.500000 0.917979
+vt 0.497993 0.943325
+vt 0.492168 0.966190
+vt 0.483095 0.984335
+vt 0.471662 0.995986
+vt 0.458990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.995986
+vt 0.016905 0.984335
+vt 0.007832 0.966190
+vt 0.002007 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.082021
+vt 0.002007 0.056675
+vt 0.007832 0.033810
+vt 0.016905 0.015665
+vt 0.028338 0.004014
+vt 0.041011 0.000000
+vt 0.458990 0.000000
+vt 0.471662 0.004014
+vt 0.483095 0.015665
+vt 0.492168 0.033810
+vt 0.497993 0.056675
+vt 0.500000 0.082021
+vt 0.500000 0.917979
+vt 0.502007 0.943325
+vt 0.507832 0.966190
+vt 0.516905 0.984335
+vt 0.528338 0.995986
+vt 0.541010 1.000000
+vt 0.958990 1.000000
+vt 0.971662 0.995986
+vt 0.983095 0.984335
+vt 0.992168 0.966190
+vt 0.997993 0.943325
+vt 1.000000 0.917979
+vt 1.000000 0.082021
+vt 0.997993 0.056675
+vt 0.992168 0.033810
+vt 0.983095 0.015665
+vt 0.971662 0.004014
+vt 0.958990 0.000000
+vt 0.541010 0.000000
+vt 0.528338 0.004014
+vt 0.516905 0.015665
+vt 0.507832 0.033810
+vt 0.502007 0.056675
+vt 0.500000 0.082021
+vt 0.082021 0.000000
+vt 0.082021 0.999996
+vt 0.917979 0.999996
+vt 0.917979 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.917979 0.000003
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000003
+vt 0.056675 1.000000
+vt 0.056675 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.056675 0.000000
+vt 0.056675 0.999996
+vt 0.033810 0.000000
+vt 0.033810 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.943325 0.999996
+vt 0.943325 0.000000
+vt 0.966190 0.999996
+vt 0.966190 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.943325 0.000003
+vt 0.943325 1.000000
+vt 0.966190 0.000003
+vt 0.966190 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_24x24_onpole.obj b/street_signs/models/street_signs_generic_sign_24x24_onpole.obj
new file mode 100644
index 0000000..76bef79
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_24x24_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.254800 -0.812500 -0.304800
+v 0.304800 -0.812500 -0.254800
+v 0.270251 -0.812500 -0.302353
+v 0.284189 -0.812500 -0.295251
+v 0.295251 -0.812500 -0.284189
+v 0.302353 -0.812500 -0.270251
+v 0.304800 -0.762500 -0.254800
+v 0.254800 -0.762500 -0.304800
+v 0.302353 -0.762500 -0.270251
+v 0.295251 -0.762500 -0.284189
+v 0.284189 -0.762500 -0.295251
+v 0.270251 -0.762500 -0.302353
+v 0.304800 -0.812500 0.254800
+v 0.254800 -0.812500 0.304800
+v 0.302353 -0.812500 0.270251
+v 0.295251 -0.812500 0.284189
+v 0.284189 -0.812500 0.295251
+v 0.270251 -0.812500 0.302353
+v 0.254800 -0.762500 0.304800
+v 0.304800 -0.762500 0.254800
+v 0.270251 -0.762500 0.302353
+v 0.284189 -0.762500 0.295251
+v 0.295251 -0.762500 0.284189
+v 0.302353 -0.762500 0.270251
+v -0.304800 -0.812500 -0.254800
+v -0.254800 -0.812500 -0.304800
+v -0.302353 -0.812500 -0.270251
+v -0.295251 -0.812500 -0.284189
+v -0.284189 -0.812500 -0.295251
+v -0.270251 -0.812500 -0.302353
+v -0.254800 -0.762500 -0.304800
+v -0.304800 -0.762500 -0.254800
+v -0.270251 -0.762500 -0.302353
+v -0.284189 -0.762500 -0.295251
+v -0.295251 -0.762500 -0.284189
+v -0.302353 -0.762500 -0.270251
+v -0.254800 -0.812500 0.304800
+v -0.304800 -0.812500 0.254800
+v -0.270251 -0.812500 0.302353
+v -0.284189 -0.812500 0.295251
+v -0.295251 -0.812500 0.284189
+v -0.302353 -0.812500 0.270251
+v -0.304800 -0.762500 0.254800
+v -0.254800 -0.762500 0.304800
+v -0.302353 -0.762500 0.270251
+v -0.295251 -0.762500 0.284189
+v -0.284189 -0.762500 0.295251
+v -0.270251 -0.762500 0.302353
+v 0.254800 -0.812500 -0.304800
+v 0.304800 -0.812500 -0.254800
+v 0.270251 -0.812500 -0.302353
+v 0.284189 -0.812500 -0.295251
+v 0.295251 -0.812500 -0.284189
+v 0.302353 -0.812500 -0.270251
+v 0.254800 -0.762500 -0.304800
+v 0.304800 -0.762500 -0.254800
+v 0.270251 -0.762500 -0.302353
+v 0.284189 -0.762500 -0.295251
+v 0.295251 -0.762500 -0.284189
+v 0.302353 -0.762500 -0.270251
+v 0.254800 -0.812500 0.304800
+v 0.304800 -0.812500 0.254800
+v 0.270251 -0.812500 0.302353
+v 0.284189 -0.812500 0.295251
+v 0.295251 -0.812500 0.284189
+v 0.302353 -0.812500 0.270251
+v 0.254800 -0.762500 0.304800
+v 0.304800 -0.762500 0.254800
+v 0.270251 -0.762500 0.302353
+v 0.284189 -0.762500 0.295251
+v 0.295251 -0.762500 0.284189
+v 0.302353 -0.762500 0.270251
+v -0.254800 -0.812500 -0.304800
+v -0.304800 -0.812500 -0.254800
+v -0.270251 -0.812500 -0.302353
+v -0.284189 -0.812500 -0.295251
+v -0.295251 -0.812500 -0.284189
+v -0.302353 -0.812500 -0.270251
+v -0.304800 -0.762500 -0.254800
+v -0.254800 -0.762500 -0.304800
+v -0.302353 -0.762500 -0.270251
+v -0.295251 -0.762500 -0.284189
+v -0.284189 -0.762500 -0.295251
+v -0.270251 -0.762500 -0.302353
+v -0.254800 -0.812500 0.304800
+v -0.304800 -0.812500 0.254800
+v -0.270251 -0.812500 0.302353
+v -0.284189 -0.812500 0.295251
+v -0.295251 -0.812500 0.284189
+v -0.302353 -0.812500 0.270251
+v -0.254800 -0.762500 0.304800
+v -0.304800 -0.762500 0.254800
+v -0.270251 -0.762500 0.302353
+v -0.284189 -0.762500 0.295251
+v -0.295251 -0.762500 0.284189
+v -0.302353 -0.762500 0.270251
+vt 0.500000 0.917979
+vt 0.497993 0.943325
+vt 0.492168 0.966190
+vt 0.483095 0.984335
+vt 0.471662 0.995986
+vt 0.458990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.995986
+vt 0.016905 0.984335
+vt 0.007832 0.966190
+vt 0.002007 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.082021
+vt 0.002007 0.056675
+vt 0.007832 0.033810
+vt 0.016905 0.015665
+vt 0.028338 0.004014
+vt 0.041011 0.000000
+vt 0.458990 0.000000
+vt 0.471662 0.004014
+vt 0.483095 0.015665
+vt 0.492168 0.033810
+vt 0.497993 0.056675
+vt 0.500000 0.082021
+vt 0.500000 0.917979
+vt 0.502007 0.943325
+vt 0.507832 0.966190
+vt 0.516905 0.984335
+vt 0.528338 0.995986
+vt 0.541010 1.000000
+vt 0.958990 1.000000
+vt 0.971662 0.995986
+vt 0.983095 0.984335
+vt 0.992168 0.966190
+vt 0.997993 0.943325
+vt 1.000000 0.917979
+vt 1.000000 0.082021
+vt 0.997993 0.056675
+vt 0.992168 0.033810
+vt 0.983095 0.015665
+vt 0.971662 0.004014
+vt 0.958990 0.000000
+vt 0.541010 0.000000
+vt 0.528338 0.004014
+vt 0.516905 0.015665
+vt 0.507832 0.033810
+vt 0.502007 0.056675
+vt 0.500000 0.082021
+vt 0.082021 0.000000
+vt 0.082021 0.999996
+vt 0.917979 0.999996
+vt 0.917979 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.917979 0.000003
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000003
+vt 0.056675 1.000000
+vt 0.056675 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.056675 0.000000
+vt 0.056675 0.999996
+vt 0.033810 0.000000
+vt 0.033810 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.943325 0.999996
+vt 0.943325 0.000000
+vt 0.966190 0.999996
+vt 0.966190 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.943325 0.000003
+vt 0.943325 1.000000
+vt 0.966190 0.000003
+vt 0.966190 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_generic_sign_24x30.obj b/street_signs/models/street_signs_generic_sign_24x30.obj
new file mode 100644
index 0000000..d105dbe
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_24x30.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.254800 -0.500000 -0.381000
+v 0.304800 -0.500000 -0.331000
+v 0.270251 -0.500000 -0.378553
+v 0.284189 -0.500000 -0.371451
+v 0.295251 -0.500000 -0.360389
+v 0.302353 -0.500000 -0.346451
+v 0.304800 -0.450000 -0.331000
+v 0.254800 -0.450000 -0.381000
+v 0.302353 -0.450000 -0.346451
+v 0.295251 -0.450000 -0.360389
+v 0.284189 -0.450000 -0.371451
+v 0.270251 -0.450000 -0.378553
+v 0.304800 -0.500000 0.331000
+v 0.254800 -0.500000 0.381000
+v 0.302353 -0.500000 0.346451
+v 0.295251 -0.500000 0.360389
+v 0.284189 -0.500000 0.371451
+v 0.270251 -0.500000 0.378553
+v 0.254800 -0.450000 0.381000
+v 0.304800 -0.450000 0.331000
+v 0.270251 -0.450000 0.378553
+v 0.284189 -0.450000 0.371451
+v 0.295251 -0.450000 0.360389
+v 0.302353 -0.450000 0.346451
+v -0.304800 -0.500000 -0.331000
+v -0.254800 -0.500000 -0.381000
+v -0.302353 -0.500000 -0.346451
+v -0.295251 -0.500000 -0.360389
+v -0.284189 -0.500000 -0.371451
+v -0.270251 -0.500000 -0.378553
+v -0.254800 -0.450000 -0.381000
+v -0.304800 -0.450000 -0.331000
+v -0.270251 -0.450000 -0.378553
+v -0.284189 -0.450000 -0.371451
+v -0.295251 -0.450000 -0.360389
+v -0.302353 -0.450000 -0.346451
+v -0.254800 -0.500000 0.381000
+v -0.304800 -0.500000 0.331000
+v -0.270251 -0.500000 0.378553
+v -0.284189 -0.500000 0.371451
+v -0.295251 -0.500000 0.360389
+v -0.302353 -0.500000 0.346451
+v -0.304800 -0.450000 0.331000
+v -0.254800 -0.450000 0.381000
+v -0.302353 -0.450000 0.346451
+v -0.295251 -0.450000 0.360389
+v -0.284189 -0.450000 0.371451
+v -0.270251 -0.450000 0.378553
+v 0.254800 -0.500000 -0.381000
+v 0.304800 -0.500000 -0.331000
+v 0.270251 -0.500000 -0.378553
+v 0.284189 -0.500000 -0.371451
+v 0.295251 -0.500000 -0.360389
+v 0.302353 -0.500000 -0.346451
+v 0.254800 -0.450000 -0.381000
+v 0.304800 -0.450000 -0.331000
+v 0.270251 -0.450000 -0.378553
+v 0.284189 -0.450000 -0.371451
+v 0.295251 -0.450000 -0.360389
+v 0.302353 -0.450000 -0.346451
+v 0.254800 -0.500000 0.381000
+v 0.304800 -0.500000 0.331000
+v 0.270251 -0.500000 0.378553
+v 0.284189 -0.500000 0.371451
+v 0.295251 -0.500000 0.360389
+v 0.302353 -0.500000 0.346451
+v 0.254800 -0.450000 0.381000
+v 0.304800 -0.450000 0.331000
+v 0.270251 -0.450000 0.378553
+v 0.284189 -0.450000 0.371451
+v 0.295251 -0.450000 0.360389
+v 0.302353 -0.450000 0.346451
+v -0.254800 -0.500000 -0.381000
+v -0.304800 -0.500000 -0.331000
+v -0.270251 -0.500000 -0.378553
+v -0.284189 -0.500000 -0.371451
+v -0.295251 -0.500000 -0.360389
+v -0.302353 -0.500000 -0.346451
+v -0.304800 -0.450000 -0.331000
+v -0.254800 -0.450000 -0.381000
+v -0.302353 -0.450000 -0.346451
+v -0.295251 -0.450000 -0.360389
+v -0.284189 -0.450000 -0.371451
+v -0.270251 -0.450000 -0.378553
+v -0.254800 -0.500000 0.381000
+v -0.304800 -0.500000 0.331000
+v -0.270251 -0.500000 0.378553
+v -0.284189 -0.500000 0.371451
+v -0.295251 -0.500000 0.360389
+v -0.302353 -0.500000 0.346451
+v -0.254800 -0.450000 0.381000
+v -0.304800 -0.450000 0.331000
+v -0.270251 -0.450000 0.378553
+v -0.284189 -0.450000 0.371451
+v -0.295251 -0.450000 0.360389
+v -0.302353 -0.450000 0.346451
+vt 0.500000 0.934383
+vt 0.497993 0.954660
+vt 0.492168 0.972952
+vt 0.483095 0.987468
+vt 0.471662 0.996788
+vt 0.458990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.996788
+vt 0.016905 0.987468
+vt 0.007832 0.972952
+vt 0.002007 0.954660
+vt 0.000000 0.934383
+vt 0.000000 0.065617
+vt 0.002007 0.045340
+vt 0.007832 0.027048
+vt 0.016905 0.012532
+vt 0.028338 0.003212
+vt 0.041011 0.000000
+vt 0.458990 0.000000
+vt 0.471662 0.003212
+vt 0.483095 0.012532
+vt 0.492168 0.027048
+vt 0.497993 0.045340
+vt 0.500000 0.065617
+vt 0.500000 0.934383
+vt 0.502007 0.954660
+vt 0.507832 0.972952
+vt 0.516905 0.987468
+vt 0.528338 0.996788
+vt 0.541010 1.000000
+vt 0.958990 1.000000
+vt 0.971662 0.996788
+vt 0.983095 0.987468
+vt 0.992168 0.972952
+vt 0.997993 0.954660
+vt 1.000000 0.934383
+vt 1.000000 0.065617
+vt 0.997993 0.045340
+vt 0.992168 0.027048
+vt 0.983095 0.012532
+vt 0.971662 0.003212
+vt 0.958990 0.000000
+vt 0.541010 0.000000
+vt 0.528338 0.003212
+vt 0.516905 0.012532
+vt 0.507832 0.027048
+vt 0.502007 0.045340
+vt 0.500000 0.065617
+vt 0.082021 0.000000
+vt 0.082021 0.999996
+vt 0.917979 0.999996
+vt 0.917979 0.000000
+vt 0.065617 0.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.917979 0.000003
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000003
+vt 0.056675 1.000000
+vt 0.056675 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 1.000000
+vt 0.045340 0.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000000
+vt 0.056675 0.000000
+vt 0.056675 0.999996
+vt 0.033810 0.000000
+vt 0.033810 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 0.000000
+vt 0.954660 1.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.943325 0.999996
+vt 0.943325 0.000000
+vt 0.966190 0.999996
+vt 0.966190 0.000000
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 1.000000
+vt 0.954660 0.000000
+vt 0.943325 0.000003
+vt 0.943325 1.000000
+vt 0.966190 0.000003
+vt 0.966190 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 0.000000
+vt 0.045340 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_24x30_onpole.obj b/street_signs/models/street_signs_generic_sign_24x30_onpole.obj
new file mode 100644
index 0000000..37fd5ab
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_24x30_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign, offset with post mount.blend'
+# www.blender.org
+o Cube
+v 0.254800 -0.812500 -0.381000
+v 0.304800 -0.812500 -0.331000
+v 0.270251 -0.812500 -0.378553
+v 0.284189 -0.812500 -0.371451
+v 0.295251 -0.812500 -0.360389
+v 0.302353 -0.812500 -0.346451
+v 0.304800 -0.762500 -0.331000
+v 0.254800 -0.762500 -0.381000
+v 0.302353 -0.762500 -0.346451
+v 0.295251 -0.762500 -0.360389
+v 0.284189 -0.762500 -0.371451
+v 0.270251 -0.762500 -0.378553
+v 0.304800 -0.812500 0.331000
+v 0.254800 -0.812500 0.381000
+v 0.302353 -0.812500 0.346451
+v 0.295251 -0.812500 0.360389
+v 0.284189 -0.812500 0.371451
+v 0.270251 -0.812500 0.378553
+v 0.254800 -0.762500 0.381000
+v 0.304800 -0.762500 0.331000
+v 0.270251 -0.762500 0.378553
+v 0.284189 -0.762500 0.371451
+v 0.295251 -0.762500 0.360389
+v 0.302353 -0.762500 0.346451
+v -0.304800 -0.812500 -0.331000
+v -0.254800 -0.812500 -0.381000
+v -0.302353 -0.812500 -0.346451
+v -0.295251 -0.812500 -0.360389
+v -0.284189 -0.812500 -0.371451
+v -0.270251 -0.812500 -0.378553
+v -0.254800 -0.762500 -0.381000
+v -0.304800 -0.762500 -0.331000
+v -0.270251 -0.762500 -0.378553
+v -0.284189 -0.762500 -0.371451
+v -0.295251 -0.762500 -0.360389
+v -0.302353 -0.762500 -0.346451
+v -0.254800 -0.812500 0.381000
+v -0.304800 -0.812500 0.331000
+v -0.270251 -0.812500 0.378553
+v -0.284189 -0.812500 0.371451
+v -0.295251 -0.812500 0.360389
+v -0.302353 -0.812500 0.346451
+v -0.304800 -0.762500 0.331000
+v -0.254800 -0.762500 0.381000
+v -0.302353 -0.762500 0.346451
+v -0.295251 -0.762500 0.360389
+v -0.284189 -0.762500 0.371451
+v -0.270251 -0.762500 0.378553
+v 0.254800 -0.812500 -0.381000
+v 0.304800 -0.812500 -0.331000
+v 0.270251 -0.812500 -0.378553
+v 0.284189 -0.812500 -0.371451
+v 0.295251 -0.812500 -0.360389
+v 0.302353 -0.812500 -0.346451
+v 0.254800 -0.762500 -0.381000
+v 0.304800 -0.762500 -0.331000
+v 0.270251 -0.762500 -0.378553
+v 0.284189 -0.762500 -0.371451
+v 0.295251 -0.762500 -0.360389
+v 0.302353 -0.762500 -0.346451
+v 0.254800 -0.812500 0.381000
+v 0.304800 -0.812500 0.331000
+v 0.270251 -0.812500 0.378553
+v 0.284189 -0.812500 0.371451
+v 0.295251 -0.812500 0.360389
+v 0.302353 -0.812500 0.346451
+v 0.254800 -0.762500 0.381000
+v 0.304800 -0.762500 0.331000
+v 0.270251 -0.762500 0.378553
+v 0.284189 -0.762500 0.371451
+v 0.295251 -0.762500 0.360389
+v 0.302353 -0.762500 0.346451
+v -0.254800 -0.812500 -0.381000
+v -0.304800 -0.812500 -0.331000
+v -0.270251 -0.812500 -0.378553
+v -0.284189 -0.812500 -0.371451
+v -0.295251 -0.812500 -0.360389
+v -0.302353 -0.812500 -0.346451
+v -0.304800 -0.762500 -0.331000
+v -0.254800 -0.762500 -0.381000
+v -0.302353 -0.762500 -0.346451
+v -0.295251 -0.762500 -0.360389
+v -0.284189 -0.762500 -0.371451
+v -0.270251 -0.762500 -0.378553
+v -0.254800 -0.812500 0.381000
+v -0.304800 -0.812500 0.331000
+v -0.270251 -0.812500 0.378553
+v -0.284189 -0.812500 0.371451
+v -0.295251 -0.812500 0.360389
+v -0.302353 -0.812500 0.346451
+v -0.254800 -0.762500 0.381000
+v -0.304800 -0.762500 0.331000
+v -0.270251 -0.762500 0.378553
+v -0.284189 -0.762500 0.371451
+v -0.295251 -0.762500 0.360389
+v -0.302353 -0.762500 0.346451
+vt 0.500000 0.934383
+vt 0.497993 0.954660
+vt 0.492168 0.972952
+vt 0.483095 0.987468
+vt 0.471662 0.996788
+vt 0.458990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.996788
+vt 0.016905 0.987468
+vt 0.007832 0.972952
+vt 0.002007 0.954660
+vt 0.000000 0.934383
+vt 0.000000 0.065617
+vt 0.002007 0.045340
+vt 0.007832 0.027048
+vt 0.016905 0.012532
+vt 0.028338 0.003212
+vt 0.041011 0.000000
+vt 0.458990 0.000000
+vt 0.471662 0.003212
+vt 0.483095 0.012532
+vt 0.492168 0.027048
+vt 0.497993 0.045340
+vt 0.500000 0.065617
+vt 0.500000 0.934383
+vt 0.502007 0.954660
+vt 0.507832 0.972952
+vt 0.516905 0.987468
+vt 0.528338 0.996788
+vt 0.541010 1.000000
+vt 0.958990 1.000000
+vt 0.971662 0.996788
+vt 0.983095 0.987468
+vt 0.992168 0.972952
+vt 0.997993 0.954660
+vt 1.000000 0.934383
+vt 1.000000 0.065617
+vt 0.997993 0.045340
+vt 0.992168 0.027048
+vt 0.983095 0.012532
+vt 0.971662 0.003212
+vt 0.958990 0.000000
+vt 0.541010 0.000000
+vt 0.528338 0.003212
+vt 0.516905 0.012532
+vt 0.507832 0.027048
+vt 0.502007 0.045340
+vt 0.500000 0.065617
+vt 0.082021 0.000000
+vt 0.082021 0.999997
+vt 0.917979 0.999997
+vt 0.917979 0.000000
+vt 0.065617 0.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.917979 0.000003
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000003
+vt 0.056675 1.000000
+vt 0.056675 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 1.000000
+vt 0.045340 0.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000000
+vt 0.056675 0.000000
+vt 0.056675 0.999997
+vt 0.033810 0.000000
+vt 0.033810 0.999997
+vt 0.000000 0.000000
+vt 0.000000 0.999997
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 0.000000
+vt 0.954660 1.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.943325 0.999997
+vt 0.943325 0.000000
+vt 0.966190 0.999997
+vt 0.966190 0.000000
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 1.000000
+vt 0.954660 0.000000
+vt 0.943325 0.000003
+vt 0.943325 1.000000
+vt 0.966190 0.000003
+vt 0.966190 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 0.000000
+vt 0.045340 1.000000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_regulatory_24x36.obj b/street_signs/models/street_signs_generic_sign_24x36.obj
index 0d906a7..0d906a7 100644
--- a/street_signs/models/street_signs_regulatory_24x36.obj
+++ b/street_signs/models/street_signs_generic_sign_24x36.obj
diff --git a/street_signs/models/street_signs_regulatory_24x36_onpole.obj b/street_signs/models/street_signs_generic_sign_24x36_onpole.obj
index 76c6923..76c6923 100644
--- a/street_signs/models/street_signs_regulatory_24x36_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_24x36_onpole.obj
diff --git a/street_signs/models/street_signs_generic_sign_30x24.obj b/street_signs/models/street_signs_generic_sign_30x24.obj
new file mode 100644
index 0000000..eeef586
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_30x24.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.331000 -0.500000 -0.304800
+v 0.381000 -0.500000 -0.254800
+v 0.346451 -0.500000 -0.302353
+v 0.360389 -0.500000 -0.295251
+v 0.371451 -0.500000 -0.284189
+v 0.378553 -0.500000 -0.270251
+v 0.381000 -0.450000 -0.254800
+v 0.331000 -0.450000 -0.304800
+v 0.378553 -0.450000 -0.270251
+v 0.371451 -0.450000 -0.284189
+v 0.360389 -0.450000 -0.295251
+v 0.346451 -0.450000 -0.302353
+v 0.381000 -0.500000 0.254800
+v 0.331000 -0.500000 0.304800
+v 0.378553 -0.500000 0.270251
+v 0.371451 -0.500000 0.284189
+v 0.360389 -0.500000 0.295251
+v 0.346451 -0.500000 0.302353
+v 0.331000 -0.450000 0.304800
+v 0.381000 -0.450000 0.254800
+v 0.346451 -0.450000 0.302353
+v 0.360389 -0.450000 0.295251
+v 0.371451 -0.450000 0.284189
+v 0.378553 -0.450000 0.270251
+v -0.381000 -0.500000 -0.254800
+v -0.331000 -0.500000 -0.304800
+v -0.378553 -0.500000 -0.270251
+v -0.371451 -0.500000 -0.284189
+v -0.360389 -0.500000 -0.295251
+v -0.346451 -0.500000 -0.302353
+v -0.331000 -0.450000 -0.304800
+v -0.381000 -0.450000 -0.254800
+v -0.346451 -0.450000 -0.302353
+v -0.360389 -0.450000 -0.295251
+v -0.371451 -0.450000 -0.284189
+v -0.378553 -0.450000 -0.270251
+v -0.331000 -0.500000 0.304800
+v -0.381000 -0.500000 0.254800
+v -0.346451 -0.500000 0.302353
+v -0.360389 -0.500000 0.295251
+v -0.371451 -0.500000 0.284189
+v -0.378553 -0.500000 0.270251
+v -0.381000 -0.450000 0.254800
+v -0.331000 -0.450000 0.304800
+v -0.378553 -0.450000 0.270251
+v -0.371451 -0.450000 0.284189
+v -0.360389 -0.450000 0.295251
+v -0.346451 -0.450000 0.302353
+v 0.331000 -0.500000 -0.304800
+v 0.381000 -0.500000 -0.254800
+v 0.346451 -0.500000 -0.302353
+v 0.360389 -0.500000 -0.295251
+v 0.371451 -0.500000 -0.284189
+v 0.378553 -0.500000 -0.270251
+v 0.331000 -0.450000 -0.304800
+v 0.381000 -0.450000 -0.254800
+v 0.346451 -0.450000 -0.302353
+v 0.360389 -0.450000 -0.295251
+v 0.371451 -0.450000 -0.284189
+v 0.378553 -0.450000 -0.270251
+v 0.331000 -0.500000 0.304800
+v 0.381000 -0.500000 0.254800
+v 0.346451 -0.500000 0.302353
+v 0.360389 -0.500000 0.295251
+v 0.371451 -0.500000 0.284189
+v 0.378553 -0.500000 0.270251
+v 0.331000 -0.450000 0.304800
+v 0.381000 -0.450000 0.254800
+v 0.346451 -0.450000 0.302353
+v 0.360389 -0.450000 0.295251
+v 0.371451 -0.450000 0.284189
+v 0.378553 -0.450000 0.270251
+v -0.331000 -0.500000 -0.304800
+v -0.381000 -0.500000 -0.254800
+v -0.346451 -0.500000 -0.302353
+v -0.360389 -0.500000 -0.295251
+v -0.371451 -0.500000 -0.284189
+v -0.378553 -0.500000 -0.270251
+v -0.381000 -0.450000 -0.254800
+v -0.331000 -0.450000 -0.304800
+v -0.378553 -0.450000 -0.270251
+v -0.371451 -0.450000 -0.284189
+v -0.360389 -0.450000 -0.295251
+v -0.346451 -0.450000 -0.302353
+v -0.331000 -0.500000 0.304800
+v -0.381000 -0.500000 0.254800
+v -0.346451 -0.500000 0.302353
+v -0.360389 -0.500000 0.295251
+v -0.371451 -0.500000 0.284189
+v -0.378553 -0.500000 0.270251
+v -0.331000 -0.450000 0.304800
+v -0.381000 -0.450000 0.254800
+v -0.346451 -0.450000 0.302353
+v -0.360389 -0.450000 0.295251
+v -0.371451 -0.450000 0.284189
+v -0.378553 -0.450000 0.270251
+vt 1.000000 0.958990
+vt 0.996789 0.971663
+vt 0.987468 0.983095
+vt 0.972952 0.992168
+vt 0.954660 0.997993
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.045340 0.997993
+vt 0.027048 0.992168
+vt 0.012532 0.983095
+vt 0.003211 0.971663
+vt 0.000000 0.958990
+vt 0.000000 0.541011
+vt 0.003211 0.528338
+vt 0.012532 0.516905
+vt 0.027048 0.507832
+vt 0.045340 0.502007
+vt 0.065617 0.500000
+vt 0.934383 0.500000
+vt 0.954660 0.502007
+vt 0.972952 0.507832
+vt 0.987468 0.516905
+vt 0.996789 0.528338
+vt 1.000000 0.541011
+vt -0.000000 0.458990
+vt 0.003211 0.471662
+vt 0.012532 0.483095
+vt 0.027048 0.492168
+vt 0.045340 0.497993
+vt 0.065617 0.500000
+vt 0.934383 0.500000
+vt 0.954660 0.497993
+vt 0.972952 0.492168
+vt 0.987468 0.483095
+vt 0.996789 0.471662
+vt 1.000000 0.458990
+vt 1.000000 0.041011
+vt 0.996789 0.028338
+vt 0.987468 0.016905
+vt 0.972952 0.007832
+vt 0.954660 0.002007
+vt 0.934383 0.000000
+vt 0.065617 0.000000
+vt 0.045340 0.002007
+vt 0.027048 0.007832
+vt 0.012532 0.016905
+vt 0.003211 0.028338
+vt -0.000000 0.041011
+vt 0.065617 0.000000
+vt 0.065617 0.999996
+vt 0.934383 0.999996
+vt 0.934383 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.934383 0.000003
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000003
+vt 0.045340 1.000000
+vt 0.045340 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.045340 0.000000
+vt 0.045340 0.999996
+vt 0.027048 0.000000
+vt 0.027048 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.954660 0.999996
+vt 0.954660 0.000000
+vt 0.972952 0.999996
+vt 0.972952 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.954660 0.000003
+vt 0.954660 1.000000
+vt 0.972952 0.000003
+vt 0.972952 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_30x24_onpole.obj b/street_signs/models/street_signs_generic_sign_30x24_onpole.obj
new file mode 100644
index 0000000..9111868
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_30x24_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.331000 -0.812500 -0.304800
+v 0.381000 -0.812500 -0.254800
+v 0.346451 -0.812500 -0.302353
+v 0.360389 -0.812500 -0.295251
+v 0.371451 -0.812500 -0.284189
+v 0.378553 -0.812500 -0.270251
+v 0.381000 -0.762500 -0.254800
+v 0.331000 -0.762500 -0.304800
+v 0.378553 -0.762500 -0.270251
+v 0.371451 -0.762500 -0.284189
+v 0.360389 -0.762500 -0.295251
+v 0.346451 -0.762500 -0.302353
+v 0.381000 -0.812500 0.254800
+v 0.331000 -0.812500 0.304800
+v 0.378553 -0.812500 0.270251
+v 0.371451 -0.812500 0.284189
+v 0.360389 -0.812500 0.295251
+v 0.346451 -0.812500 0.302353
+v 0.331000 -0.762500 0.304800
+v 0.381000 -0.762500 0.254800
+v 0.346451 -0.762500 0.302353
+v 0.360389 -0.762500 0.295251
+v 0.371451 -0.762500 0.284189
+v 0.378553 -0.762500 0.270251
+v -0.381000 -0.812500 -0.254800
+v -0.331000 -0.812500 -0.304800
+v -0.378553 -0.812500 -0.270251
+v -0.371451 -0.812500 -0.284189
+v -0.360389 -0.812500 -0.295251
+v -0.346451 -0.812500 -0.302353
+v -0.331000 -0.762500 -0.304800
+v -0.381000 -0.762500 -0.254800
+v -0.346451 -0.762500 -0.302353
+v -0.360389 -0.762500 -0.295251
+v -0.371451 -0.762500 -0.284189
+v -0.378553 -0.762500 -0.270251
+v -0.331000 -0.812500 0.304800
+v -0.381000 -0.812500 0.254800
+v -0.346451 -0.812500 0.302353
+v -0.360389 -0.812500 0.295251
+v -0.371451 -0.812500 0.284189
+v -0.378553 -0.812500 0.270251
+v -0.381000 -0.762500 0.254800
+v -0.331000 -0.762500 0.304800
+v -0.378553 -0.762500 0.270251
+v -0.371451 -0.762500 0.284189
+v -0.360389 -0.762500 0.295251
+v -0.346451 -0.762500 0.302353
+v 0.331000 -0.812500 -0.304800
+v 0.381000 -0.812500 -0.254800
+v 0.346451 -0.812500 -0.302353
+v 0.360389 -0.812500 -0.295251
+v 0.371451 -0.812500 -0.284189
+v 0.378553 -0.812500 -0.270251
+v 0.331000 -0.762500 -0.304800
+v 0.381000 -0.762500 -0.254800
+v 0.346451 -0.762500 -0.302353
+v 0.360389 -0.762500 -0.295251
+v 0.371451 -0.762500 -0.284189
+v 0.378553 -0.762500 -0.270251
+v 0.331000 -0.812500 0.304800
+v 0.381000 -0.812500 0.254800
+v 0.346451 -0.812500 0.302353
+v 0.360389 -0.812500 0.295251
+v 0.371451 -0.812500 0.284189
+v 0.378553 -0.812500 0.270251
+v 0.331000 -0.762500 0.304800
+v 0.381000 -0.762500 0.254800
+v 0.346451 -0.762500 0.302353
+v 0.360389 -0.762500 0.295251
+v 0.371451 -0.762500 0.284189
+v 0.378553 -0.762500 0.270251
+v -0.331000 -0.812500 -0.304800
+v -0.381000 -0.812500 -0.254800
+v -0.346451 -0.812500 -0.302353
+v -0.360389 -0.812500 -0.295251
+v -0.371451 -0.812500 -0.284189
+v -0.378553 -0.812500 -0.270251
+v -0.381000 -0.762500 -0.254800
+v -0.331000 -0.762500 -0.304800
+v -0.378553 -0.762500 -0.270251
+v -0.371451 -0.762500 -0.284189
+v -0.360389 -0.762500 -0.295251
+v -0.346451 -0.762500 -0.302353
+v -0.331000 -0.812500 0.304800
+v -0.381000 -0.812500 0.254800
+v -0.346451 -0.812500 0.302353
+v -0.360389 -0.812500 0.295251
+v -0.371451 -0.812500 0.284189
+v -0.378553 -0.812500 0.270251
+v -0.331000 -0.762500 0.304800
+v -0.381000 -0.762500 0.254800
+v -0.346451 -0.762500 0.302353
+v -0.360389 -0.762500 0.295251
+v -0.371451 -0.762500 0.284189
+v -0.378553 -0.762500 0.270251
+vt 1.000000 0.958990
+vt 0.996789 0.971663
+vt 0.987468 0.983095
+vt 0.972952 0.992168
+vt 0.954660 0.997993
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.045340 0.997993
+vt 0.027048 0.992168
+vt 0.012532 0.983095
+vt 0.003211 0.971663
+vt 0.000000 0.958990
+vt 0.000000 0.541011
+vt 0.003211 0.528338
+vt 0.012532 0.516905
+vt 0.027048 0.507832
+vt 0.045340 0.502007
+vt 0.065617 0.500000
+vt 0.934383 0.500000
+vt 0.954660 0.502007
+vt 0.972952 0.507832
+vt 0.987468 0.516905
+vt 0.996789 0.528338
+vt 1.000000 0.541011
+vt -0.000000 0.458990
+vt 0.003211 0.471662
+vt 0.012532 0.483095
+vt 0.027048 0.492168
+vt 0.045340 0.497993
+vt 0.065617 0.500000
+vt 0.934383 0.500000
+vt 0.954660 0.497993
+vt 0.972952 0.492168
+vt 0.987468 0.483095
+vt 0.996789 0.471662
+vt 1.000000 0.458990
+vt 1.000000 0.041011
+vt 0.996789 0.028338
+vt 0.987468 0.016905
+vt 0.972952 0.007832
+vt 0.954660 0.002007
+vt 0.934383 0.000000
+vt 0.065617 0.000000
+vt 0.045340 0.002007
+vt 0.027048 0.007832
+vt 0.012532 0.016905
+vt 0.003211 0.028338
+vt -0.000000 0.041011
+vt 0.065617 0.000000
+vt 0.065617 0.999996
+vt 0.934383 0.999996
+vt 0.934383 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.934383 0.000003
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000003
+vt 0.045340 1.000000
+vt 0.045340 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.045340 0.000000
+vt 0.045340 0.999996
+vt 0.027048 0.000000
+vt 0.027048 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.954660 0.999996
+vt 0.954660 0.000000
+vt 0.972952 0.999996
+vt 0.972952 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.954660 0.000003
+vt 0.954660 1.000000
+vt 0.972952 0.000003
+vt 0.972952 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_regulatory_30x36.obj b/street_signs/models/street_signs_generic_sign_30x36.obj
index 4642f97..4642f97 100644
--- a/street_signs/models/street_signs_regulatory_30x36.obj
+++ b/street_signs/models/street_signs_generic_sign_30x36.obj
diff --git a/street_signs/models/street_signs_regulatory_30x36_entity.obj b/street_signs/models/street_signs_generic_sign_30x36_entity.obj
index 91a7be4..91a7be4 100644
--- a/street_signs/models/street_signs_regulatory_30x36_entity.obj
+++ b/street_signs/models/street_signs_generic_sign_30x36_entity.obj
diff --git a/street_signs/models/street_signs_regulatory_30x36_entity_onpole.obj b/street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj
index da0bca9..da0bca9 100644
--- a/street_signs/models/street_signs_regulatory_30x36_entity_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_30x36_onpole.obj b/street_signs/models/street_signs_generic_sign_30x36_onpole.obj
index 0e91740..0e91740 100644
--- a/street_signs/models/street_signs_regulatory_30x36_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_30x36_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_36x36.obj b/street_signs/models/street_signs_generic_sign_36x36.obj
index b74164e..b74164e 100644
--- a/street_signs/models/street_signs_regulatory_36x36.obj
+++ b/street_signs/models/street_signs_generic_sign_36x36.obj
diff --git a/street_signs/models/street_signs_regulatory_36x36_entity.obj b/street_signs/models/street_signs_generic_sign_36x36_entity.obj
index b20b38d..b20b38d 100644
--- a/street_signs/models/street_signs_regulatory_36x36_entity.obj
+++ b/street_signs/models/street_signs_generic_sign_36x36_entity.obj
diff --git a/street_signs/models/street_signs_regulatory_36x36_entity_onpole.obj b/street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj
index dadca34..dadca34 100644
--- a/street_signs/models/street_signs_regulatory_36x36_entity_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_36x36_onpole.obj b/street_signs/models/street_signs_generic_sign_36x36_onpole.obj
index 1903b83..1903b83 100644
--- a/street_signs/models/street_signs_regulatory_36x36_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_36x36_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_36x42.obj b/street_signs/models/street_signs_generic_sign_36x42.obj
index bace43e..bace43e 100644
--- a/street_signs/models/street_signs_regulatory_36x42.obj
+++ b/street_signs/models/street_signs_generic_sign_36x42.obj
diff --git a/street_signs/models/street_signs_regulatory_36x42_onpole.obj b/street_signs/models/street_signs_generic_sign_36x42_onpole.obj
index 4f10113..4f10113 100644
--- a/street_signs/models/street_signs_regulatory_36x42_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_36x42_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_36x48.obj b/street_signs/models/street_signs_generic_sign_36x48.obj
index 6ba3159..6ba3159 100644
--- a/street_signs/models/street_signs_regulatory_36x48.obj
+++ b/street_signs/models/street_signs_generic_sign_36x48.obj
diff --git a/street_signs/models/street_signs_regulatory_36x48_onpole.obj b/street_signs/models/street_signs_generic_sign_36x48_onpole.obj
index a4c1732..a4c1732 100644
--- a/street_signs/models/street_signs_regulatory_36x48_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_36x48_onpole.obj
diff --git a/street_signs/models/street_signs_regulatory_42x30.obj b/street_signs/models/street_signs_generic_sign_42x30.obj
index f3ce882..f3ce882 100644
--- a/street_signs/models/street_signs_regulatory_42x30.obj
+++ b/street_signs/models/street_signs_generic_sign_42x30.obj
diff --git a/street_signs/models/street_signs_regulatory_42x30_onpole.obj b/street_signs/models/street_signs_generic_sign_42x30_onpole.obj
index cb75689..cb75689 100644
--- a/street_signs/models/street_signs_regulatory_42x30_onpole.obj
+++ b/street_signs/models/street_signs_generic_sign_42x30_onpole.obj
diff --git a/street_signs/models/street_signs_generic_sign_48x24.obj b/street_signs/models/street_signs_generic_sign_48x24.obj
new file mode 100644
index 0000000..4f27c74
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_48x24.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.559600 -0.500000 -0.304800
+v 0.609600 -0.500000 -0.254800
+v 0.575051 -0.500000 -0.302353
+v 0.588989 -0.500000 -0.295251
+v 0.600051 -0.500000 -0.284189
+v 0.607153 -0.500000 -0.270251
+v 0.609600 -0.450000 -0.254800
+v 0.559600 -0.450000 -0.304800
+v 0.607153 -0.450000 -0.270251
+v 0.600051 -0.450000 -0.284189
+v 0.588989 -0.450000 -0.295251
+v 0.575051 -0.450000 -0.302353
+v 0.609600 -0.500000 0.254800
+v 0.559600 -0.500000 0.304800
+v 0.607153 -0.500000 0.270251
+v 0.600051 -0.500000 0.284189
+v 0.588989 -0.500000 0.295251
+v 0.575051 -0.500000 0.302353
+v 0.559600 -0.450000 0.304800
+v 0.609600 -0.450000 0.254800
+v 0.575051 -0.450000 0.302353
+v 0.588989 -0.450000 0.295251
+v 0.600051 -0.450000 0.284189
+v 0.607153 -0.450000 0.270251
+v -0.609600 -0.500000 -0.254800
+v -0.559600 -0.500000 -0.304800
+v -0.607153 -0.500000 -0.270251
+v -0.600051 -0.500000 -0.284189
+v -0.588989 -0.500000 -0.295251
+v -0.575051 -0.500000 -0.302353
+v -0.559600 -0.450000 -0.304800
+v -0.609600 -0.450000 -0.254800
+v -0.575051 -0.450000 -0.302353
+v -0.588989 -0.450000 -0.295251
+v -0.600051 -0.450000 -0.284189
+v -0.607153 -0.450000 -0.270251
+v -0.559600 -0.500000 0.304800
+v -0.609600 -0.500000 0.254800
+v -0.575051 -0.500000 0.302353
+v -0.588989 -0.500000 0.295251
+v -0.600051 -0.500000 0.284189
+v -0.607153 -0.500000 0.270251
+v -0.609600 -0.450000 0.254800
+v -0.559600 -0.450000 0.304800
+v -0.607153 -0.450000 0.270251
+v -0.600051 -0.450000 0.284189
+v -0.588989 -0.450000 0.295251
+v -0.575051 -0.450000 0.302353
+v 0.559600 -0.500000 -0.304800
+v 0.609600 -0.500000 -0.254800
+v 0.575051 -0.500000 -0.302353
+v 0.588989 -0.500000 -0.295251
+v 0.600051 -0.500000 -0.284189
+v 0.607153 -0.500000 -0.270251
+v 0.559600 -0.450000 -0.304800
+v 0.609600 -0.450000 -0.254800
+v 0.575051 -0.450000 -0.302353
+v 0.588989 -0.450000 -0.295251
+v 0.600051 -0.450000 -0.284189
+v 0.607153 -0.450000 -0.270251
+v 0.559600 -0.500000 0.304800
+v 0.609600 -0.500000 0.254800
+v 0.575051 -0.500000 0.302353
+v 0.588989 -0.500000 0.295251
+v 0.600051 -0.500000 0.284189
+v 0.607153 -0.500000 0.270251
+v 0.559600 -0.450000 0.304800
+v 0.609600 -0.450000 0.254800
+v 0.575051 -0.450000 0.302353
+v 0.588989 -0.450000 0.295251
+v 0.600051 -0.450000 0.284189
+v 0.607153 -0.450000 0.270251
+v -0.559600 -0.500000 -0.304800
+v -0.609600 -0.500000 -0.254800
+v -0.575051 -0.500000 -0.302353
+v -0.588989 -0.500000 -0.295251
+v -0.600051 -0.500000 -0.284189
+v -0.607153 -0.500000 -0.270251
+v -0.609600 -0.450000 -0.254800
+v -0.559600 -0.450000 -0.304800
+v -0.607153 -0.450000 -0.270251
+v -0.600051 -0.450000 -0.284189
+v -0.588989 -0.450000 -0.295251
+v -0.575051 -0.450000 -0.302353
+v -0.559600 -0.500000 0.304800
+v -0.609600 -0.500000 0.254800
+v -0.575051 -0.500000 0.302353
+v -0.588989 -0.500000 0.295251
+v -0.600051 -0.500000 0.284189
+v -0.607153 -0.500000 0.270251
+v -0.559600 -0.450000 0.304800
+v -0.609600 -0.450000 0.254800
+v -0.575051 -0.450000 0.302353
+v -0.588989 -0.450000 0.295251
+v -0.600051 -0.450000 0.284189
+v -0.607153 -0.450000 0.270251
+vt 1.000000 0.958989
+vt 0.997993 0.971662
+vt 0.992168 0.983095
+vt 0.983095 0.992168
+vt 0.971662 0.997993
+vt 0.958990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.997993
+vt 0.016905 0.992168
+vt 0.007832 0.983095
+vt 0.002007 0.971662
+vt 0.000000 0.958989
+vt 0.000000 0.541011
+vt 0.002007 0.528338
+vt 0.007832 0.516905
+vt 0.016905 0.507832
+vt 0.028338 0.502007
+vt 0.041010 0.500000
+vt 0.958990 0.500000
+vt 0.971662 0.502007
+vt 0.983095 0.507832
+vt 0.992168 0.516905
+vt 0.997993 0.528338
+vt 1.000000 0.541011
+vt 0.000000 0.458989
+vt 0.002007 0.471662
+vt 0.007832 0.483095
+vt 0.016905 0.492168
+vt 0.028338 0.497993
+vt 0.041010 0.500000
+vt 0.958990 0.500000
+vt 0.971662 0.497993
+vt 0.983095 0.492168
+vt 0.992168 0.483095
+vt 0.997993 0.471662
+vt 1.000000 0.458989
+vt 1.000000 0.041011
+vt 0.997993 0.028338
+vt 0.992168 0.016905
+vt 0.983095 0.007832
+vt 0.971662 0.002007
+vt 0.958990 0.000000
+vt 0.041010 0.000000
+vt 0.028338 0.002007
+vt 0.016905 0.007832
+vt 0.007832 0.016905
+vt 0.002007 0.028338
+vt 0.000000 0.041011
+vt 0.041010 0.000000
+vt 0.041011 0.999996
+vt 0.958990 0.999996
+vt 0.958990 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.958990 0.000003
+vt 0.958990 1.000000
+vt 0.041010 1.000000
+vt 0.041011 0.000003
+vt 0.028338 1.000000
+vt 0.028338 0.000003
+vt 0.016905 1.000000
+vt 0.016905 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.028338 0.000000
+vt 0.028338 0.999996
+vt 0.016905 0.000000
+vt 0.016905 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.971662 0.999996
+vt 0.971662 0.000000
+vt 0.983095 0.999996
+vt 0.983095 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.971662 0.000003
+vt 0.971662 1.000000
+vt 0.983095 0.000003
+vt 0.983095 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_48x24_onpole.obj b/street_signs/models/street_signs_generic_sign_48x24_onpole.obj
new file mode 100644
index 0000000..aca34cc
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_48x24_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.559600 -0.812500 -0.304800
+v 0.609600 -0.812500 -0.254800
+v 0.575051 -0.812500 -0.302353
+v 0.588989 -0.812500 -0.295251
+v 0.600051 -0.812500 -0.284189
+v 0.607153 -0.812500 -0.270251
+v 0.609600 -0.762500 -0.254800
+v 0.559600 -0.762500 -0.304800
+v 0.607153 -0.762500 -0.270251
+v 0.600051 -0.762500 -0.284189
+v 0.588989 -0.762500 -0.295251
+v 0.575051 -0.762500 -0.302353
+v 0.609600 -0.812500 0.254800
+v 0.559600 -0.812500 0.304800
+v 0.607153 -0.812500 0.270251
+v 0.600051 -0.812500 0.284189
+v 0.588989 -0.812500 0.295251
+v 0.575051 -0.812500 0.302353
+v 0.559600 -0.762500 0.304800
+v 0.609600 -0.762500 0.254800
+v 0.575051 -0.762500 0.302353
+v 0.588989 -0.762500 0.295251
+v 0.600051 -0.762500 0.284189
+v 0.607153 -0.762500 0.270251
+v -0.609600 -0.812500 -0.254800
+v -0.559600 -0.812500 -0.304800
+v -0.607153 -0.812500 -0.270251
+v -0.600051 -0.812500 -0.284189
+v -0.588989 -0.812500 -0.295251
+v -0.575051 -0.812500 -0.302353
+v -0.559600 -0.762500 -0.304800
+v -0.609600 -0.762500 -0.254800
+v -0.575051 -0.762500 -0.302353
+v -0.588989 -0.762500 -0.295251
+v -0.600051 -0.762500 -0.284189
+v -0.607153 -0.762500 -0.270251
+v -0.559600 -0.812500 0.304800
+v -0.609600 -0.812500 0.254800
+v -0.575051 -0.812500 0.302353
+v -0.588989 -0.812500 0.295251
+v -0.600051 -0.812500 0.284189
+v -0.607153 -0.812500 0.270251
+v -0.609600 -0.762500 0.254800
+v -0.559600 -0.762500 0.304800
+v -0.607153 -0.762500 0.270251
+v -0.600051 -0.762500 0.284189
+v -0.588989 -0.762500 0.295251
+v -0.575051 -0.762500 0.302353
+v 0.559600 -0.812500 -0.304800
+v 0.609600 -0.812500 -0.254800
+v 0.575051 -0.812500 -0.302353
+v 0.588989 -0.812500 -0.295251
+v 0.600051 -0.812500 -0.284189
+v 0.607153 -0.812500 -0.270251
+v 0.559600 -0.762500 -0.304800
+v 0.609600 -0.762500 -0.254800
+v 0.575051 -0.762500 -0.302353
+v 0.588989 -0.762500 -0.295251
+v 0.600051 -0.762500 -0.284189
+v 0.607153 -0.762500 -0.270251
+v 0.559600 -0.812500 0.304800
+v 0.609600 -0.812500 0.254800
+v 0.575051 -0.812500 0.302353
+v 0.588989 -0.812500 0.295251
+v 0.600051 -0.812500 0.284189
+v 0.607153 -0.812500 0.270251
+v 0.559600 -0.762500 0.304800
+v 0.609600 -0.762500 0.254800
+v 0.575051 -0.762500 0.302353
+v 0.588989 -0.762500 0.295251
+v 0.600051 -0.762500 0.284189
+v 0.607153 -0.762500 0.270251
+v -0.559600 -0.812500 -0.304800
+v -0.609600 -0.812500 -0.254800
+v -0.575051 -0.812500 -0.302353
+v -0.588989 -0.812500 -0.295251
+v -0.600051 -0.812500 -0.284189
+v -0.607153 -0.812500 -0.270251
+v -0.609600 -0.762500 -0.254800
+v -0.559600 -0.762500 -0.304800
+v -0.607153 -0.762500 -0.270251
+v -0.600051 -0.762500 -0.284189
+v -0.588989 -0.762500 -0.295251
+v -0.575051 -0.762500 -0.302353
+v -0.559600 -0.812500 0.304800
+v -0.609600 -0.812500 0.254800
+v -0.575051 -0.812500 0.302353
+v -0.588989 -0.812500 0.295251
+v -0.600051 -0.812500 0.284189
+v -0.607153 -0.812500 0.270251
+v -0.559600 -0.762500 0.304800
+v -0.609600 -0.762500 0.254800
+v -0.575051 -0.762500 0.302353
+v -0.588989 -0.762500 0.295251
+v -0.600051 -0.762500 0.284189
+v -0.607153 -0.762500 0.270251
+vt 1.000000 0.958989
+vt 0.997993 0.971662
+vt 0.992168 0.983095
+vt 0.983095 0.992168
+vt 0.971662 0.997993
+vt 0.958990 1.000000
+vt 0.041010 1.000000
+vt 0.028338 0.997993
+vt 0.016905 0.992168
+vt 0.007832 0.983095
+vt 0.002007 0.971662
+vt 0.000000 0.958989
+vt 0.000000 0.541011
+vt 0.002007 0.528338
+vt 0.007832 0.516905
+vt 0.016905 0.507832
+vt 0.028338 0.502007
+vt 0.041010 0.500000
+vt 0.958990 0.500000
+vt 0.971662 0.502007
+vt 0.983095 0.507832
+vt 0.992168 0.516905
+vt 0.997993 0.528338
+vt 1.000000 0.541011
+vt 0.000000 0.458989
+vt 0.002007 0.471662
+vt 0.007832 0.483095
+vt 0.016905 0.492168
+vt 0.028338 0.497993
+vt 0.041010 0.500000
+vt 0.958990 0.500000
+vt 0.971662 0.497993
+vt 0.983095 0.492168
+vt 0.992168 0.483095
+vt 0.997993 0.471662
+vt 1.000000 0.458989
+vt 1.000000 0.041011
+vt 0.997993 0.028338
+vt 0.992168 0.016905
+vt 0.983095 0.007832
+vt 0.971662 0.002007
+vt 0.958990 0.000000
+vt 0.041010 0.000000
+vt 0.028338 0.002007
+vt 0.016905 0.007832
+vt 0.007832 0.016905
+vt 0.002007 0.028338
+vt 0.000000 0.041011
+vt 0.041010 0.000000
+vt 0.041011 0.999996
+vt 0.958990 0.999996
+vt 0.958990 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.958990 0.000003
+vt 0.958990 1.000000
+vt 0.041010 1.000000
+vt 0.041011 0.000003
+vt 0.028338 1.000000
+vt 0.028338 0.000003
+vt 0.016905 1.000000
+vt 0.016905 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.028338 0.000000
+vt 0.028338 0.999996
+vt 0.016905 0.000000
+vt 0.016905 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.971662 0.999996
+vt 0.971662 0.000000
+vt 0.983095 0.999996
+vt 0.983095 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.971662 0.000003
+vt 0.971662 1.000000
+vt 0.983095 0.000003
+vt 0.983095 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_generic_sign_54x18.obj b/street_signs/models/street_signs_generic_sign_54x18.obj
new file mode 100644
index 0000000..c72d98a
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_54x18.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.635800 -0.500000 -0.228600
+v 0.685800 -0.500000 -0.178600
+v 0.651251 -0.500000 -0.226153
+v 0.665190 -0.500000 -0.219051
+v 0.676251 -0.500000 -0.207989
+v 0.683353 -0.500000 -0.194051
+v 0.685800 -0.450000 -0.178600
+v 0.635800 -0.450000 -0.228600
+v 0.683353 -0.450000 -0.194051
+v 0.676251 -0.450000 -0.207989
+v 0.665190 -0.450000 -0.219051
+v 0.651251 -0.450000 -0.226153
+v 0.685800 -0.500000 0.178600
+v 0.635800 -0.500000 0.228600
+v 0.683353 -0.500000 0.194051
+v 0.676251 -0.500000 0.207989
+v 0.665190 -0.500000 0.219051
+v 0.651251 -0.500000 0.226153
+v 0.635800 -0.450000 0.228600
+v 0.685800 -0.450000 0.178600
+v 0.651251 -0.450000 0.226153
+v 0.665190 -0.450000 0.219051
+v 0.676251 -0.450000 0.207989
+v 0.683353 -0.450000 0.194051
+v -0.685800 -0.500000 -0.178600
+v -0.635800 -0.500000 -0.228600
+v -0.683353 -0.500000 -0.194051
+v -0.676251 -0.500000 -0.207989
+v -0.665190 -0.500000 -0.219051
+v -0.651251 -0.500000 -0.226153
+v -0.635800 -0.450000 -0.228600
+v -0.685800 -0.450000 -0.178600
+v -0.651251 -0.450000 -0.226153
+v -0.665190 -0.450000 -0.219051
+v -0.676251 -0.450000 -0.207989
+v -0.683353 -0.450000 -0.194051
+v -0.635800 -0.500000 0.228600
+v -0.685800 -0.500000 0.178600
+v -0.651251 -0.500000 0.226153
+v -0.665190 -0.500000 0.219051
+v -0.676251 -0.500000 0.207989
+v -0.683353 -0.500000 0.194051
+v -0.685800 -0.450000 0.178600
+v -0.635800 -0.450000 0.228600
+v -0.683353 -0.450000 0.194051
+v -0.676251 -0.450000 0.207989
+v -0.665190 -0.450000 0.219051
+v -0.651251 -0.450000 0.226153
+v 0.635800 -0.500000 -0.228600
+v 0.685800 -0.500000 -0.178600
+v 0.651251 -0.500000 -0.226153
+v 0.665190 -0.500000 -0.219051
+v 0.676251 -0.500000 -0.207989
+v 0.683353 -0.500000 -0.194051
+v 0.635800 -0.450000 -0.228600
+v 0.685800 -0.450000 -0.178600
+v 0.651251 -0.450000 -0.226153
+v 0.665190 -0.450000 -0.219051
+v 0.676251 -0.450000 -0.207989
+v 0.683353 -0.450000 -0.194051
+v 0.635800 -0.500000 0.228600
+v 0.685800 -0.500000 0.178600
+v 0.651251 -0.500000 0.226153
+v 0.665190 -0.500000 0.219051
+v 0.676251 -0.500000 0.207989
+v 0.683353 -0.500000 0.194051
+v 0.635800 -0.450000 0.228600
+v 0.685800 -0.450000 0.178600
+v 0.651251 -0.450000 0.226153
+v 0.665190 -0.450000 0.219051
+v 0.676251 -0.450000 0.207989
+v 0.683353 -0.450000 0.194051
+v -0.635800 -0.500000 -0.228600
+v -0.685800 -0.500000 -0.178600
+v -0.651251 -0.500000 -0.226153
+v -0.665190 -0.500000 -0.219051
+v -0.676251 -0.500000 -0.207989
+v -0.683353 -0.500000 -0.194051
+v -0.685800 -0.450000 -0.178600
+v -0.635800 -0.450000 -0.228600
+v -0.683353 -0.450000 -0.194051
+v -0.676251 -0.450000 -0.207989
+v -0.665190 -0.450000 -0.219051
+v -0.651251 -0.450000 -0.226153
+v -0.635800 -0.500000 0.228600
+v -0.685800 -0.500000 0.178600
+v -0.651251 -0.500000 0.226153
+v -0.665190 -0.500000 0.219051
+v -0.676251 -0.500000 0.207989
+v -0.683353 -0.500000 0.194051
+v -0.635800 -0.450000 0.228600
+v -0.685800 -0.450000 0.178600
+v -0.651251 -0.450000 0.226153
+v -0.665190 -0.450000 0.219051
+v -0.676251 -0.450000 0.207989
+v -0.683353 -0.450000 0.194051
+vt 1.000000 0.945319
+vt 0.998216 0.962217
+vt 0.993038 0.977460
+vt 0.984973 0.989557
+vt 0.974811 0.997324
+vt 0.963546 1.000000
+vt 0.036454 1.000000
+vt 0.025189 0.997324
+vt 0.015027 0.989557
+vt 0.006962 0.977460
+vt 0.001784 0.962217
+vt 0.000000 0.945319
+vt 0.000000 0.554681
+vt 0.001784 0.537783
+vt 0.006962 0.522540
+vt 0.015027 0.510443
+vt 0.025189 0.502676
+vt 0.036454 0.500000
+vt 0.963546 0.500000
+vt 0.974811 0.502676
+vt 0.984973 0.510443
+vt 0.993038 0.522540
+vt 0.998216 0.537783
+vt 1.000000 0.554681
+vt 0.000000 0.445319
+vt 0.001784 0.462217
+vt 0.006962 0.477460
+vt 0.015027 0.489557
+vt 0.025189 0.497324
+vt 0.036454 0.500000
+vt 0.963546 0.500000
+vt 0.974811 0.497324
+vt 0.984973 0.489557
+vt 0.993038 0.477460
+vt 0.998216 0.462217
+vt 1.000000 0.445319
+vt 1.000000 0.054681
+vt 0.998216 0.037783
+vt 0.993038 0.022540
+vt 0.984973 0.010443
+vt 0.974811 0.002676
+vt 0.963546 0.000000
+vt 0.036454 0.000000
+vt 0.025189 0.002676
+vt 0.015027 0.010443
+vt 0.006962 0.022540
+vt 0.001784 0.037783
+vt 0.000000 0.054681
+vt 0.036454 0.000000
+vt 0.036454 0.999996
+vt 0.963546 0.999996
+vt 0.963546 0.000000
+vt 0.109361 0.000000
+vt 0.890639 0.000000
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.963546 0.000003
+vt 0.963546 1.000000
+vt 0.036454 1.000000
+vt 0.036454 0.000003
+vt 0.025189 1.000000
+vt 0.025189 0.000003
+vt 0.015027 1.000000
+vt 0.015027 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000000
+vt 0.075567 1.000000
+vt 0.075567 0.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000000
+vt 0.025189 0.000000
+vt 0.025189 0.999996
+vt 0.015027 0.000000
+vt 0.015027 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.954920 1.000000
+vt 0.954920 0.000000
+vt 0.924433 0.000000
+vt 0.924433 1.000000
+vt 0.890639 0.000000
+vt 0.890639 1.000000
+vt 0.974811 0.999996
+vt 0.974811 0.000000
+vt 0.984973 0.999996
+vt 0.984973 0.000000
+vt 0.954920 1.000000
+vt 0.954920 0.000000
+vt 0.924433 1.000000
+vt 0.924433 0.000000
+vt 0.974811 0.000003
+vt 0.974811 1.000000
+vt 0.984973 0.000003
+vt 0.984973 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.045080 1.000000
+vt 0.045080 0.000000
+vt 0.075567 0.000000
+vt 0.075567 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 -0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 -0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_54x18_onpole.obj b/street_signs/models/street_signs_generic_sign_54x18_onpole.obj
new file mode 100644
index 0000000..fc04d24
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_54x18_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.635800 -0.812500 -0.228600
+v 0.685800 -0.812500 -0.178600
+v 0.651251 -0.812500 -0.226153
+v 0.665190 -0.812500 -0.219051
+v 0.676251 -0.812500 -0.207989
+v 0.683353 -0.812500 -0.194051
+v 0.685800 -0.762500 -0.178600
+v 0.635800 -0.762500 -0.228600
+v 0.683353 -0.762500 -0.194051
+v 0.676251 -0.762500 -0.207989
+v 0.665190 -0.762500 -0.219051
+v 0.651251 -0.762500 -0.226153
+v 0.685800 -0.812500 0.178600
+v 0.635800 -0.812500 0.228600
+v 0.683353 -0.812500 0.194051
+v 0.676251 -0.812500 0.207989
+v 0.665190 -0.812500 0.219051
+v 0.651251 -0.812500 0.226153
+v 0.635800 -0.762500 0.228600
+v 0.685800 -0.762500 0.178600
+v 0.651251 -0.762500 0.226153
+v 0.665190 -0.762500 0.219051
+v 0.676251 -0.762500 0.207989
+v 0.683353 -0.762500 0.194051
+v -0.685800 -0.812500 -0.178600
+v -0.635800 -0.812500 -0.228600
+v -0.683353 -0.812500 -0.194051
+v -0.676251 -0.812500 -0.207989
+v -0.665190 -0.812500 -0.219051
+v -0.651251 -0.812500 -0.226153
+v -0.635800 -0.762500 -0.228600
+v -0.685800 -0.762500 -0.178600
+v -0.651251 -0.762500 -0.226153
+v -0.665190 -0.762500 -0.219051
+v -0.676251 -0.762500 -0.207989
+v -0.683353 -0.762500 -0.194051
+v -0.635800 -0.812500 0.228600
+v -0.685800 -0.812500 0.178600
+v -0.651251 -0.812500 0.226153
+v -0.665190 -0.812500 0.219051
+v -0.676251 -0.812500 0.207989
+v -0.683353 -0.812500 0.194051
+v -0.685800 -0.762500 0.178600
+v -0.635800 -0.762500 0.228600
+v -0.683353 -0.762500 0.194051
+v -0.676251 -0.762500 0.207989
+v -0.665190 -0.762500 0.219051
+v -0.651251 -0.762500 0.226153
+v 0.635800 -0.812500 -0.228600
+v 0.685800 -0.812500 -0.178600
+v 0.651251 -0.812500 -0.226153
+v 0.665190 -0.812500 -0.219051
+v 0.676251 -0.812500 -0.207989
+v 0.683353 -0.812500 -0.194051
+v 0.635800 -0.762500 -0.228600
+v 0.685800 -0.762500 -0.178600
+v 0.651251 -0.762500 -0.226153
+v 0.665190 -0.762500 -0.219051
+v 0.676251 -0.762500 -0.207989
+v 0.683353 -0.762500 -0.194051
+v 0.635800 -0.812500 0.228600
+v 0.685800 -0.812500 0.178600
+v 0.651251 -0.812500 0.226153
+v 0.665190 -0.812500 0.219051
+v 0.676251 -0.812500 0.207989
+v 0.683353 -0.812500 0.194051
+v 0.635800 -0.762500 0.228600
+v 0.685800 -0.762500 0.178600
+v 0.651251 -0.762500 0.226153
+v 0.665190 -0.762500 0.219051
+v 0.676251 -0.762500 0.207989
+v 0.683353 -0.762500 0.194051
+v -0.635800 -0.812500 -0.228600
+v -0.685800 -0.812500 -0.178600
+v -0.651251 -0.812500 -0.226153
+v -0.665190 -0.812500 -0.219051
+v -0.676251 -0.812500 -0.207989
+v -0.683353 -0.812500 -0.194051
+v -0.685800 -0.762500 -0.178600
+v -0.635800 -0.762500 -0.228600
+v -0.683353 -0.762500 -0.194051
+v -0.676251 -0.762500 -0.207989
+v -0.665190 -0.762500 -0.219051
+v -0.651251 -0.762500 -0.226153
+v -0.635800 -0.812500 0.228600
+v -0.685800 -0.812500 0.178600
+v -0.651251 -0.812500 0.226153
+v -0.665190 -0.812500 0.219051
+v -0.676251 -0.812500 0.207989
+v -0.683353 -0.812500 0.194051
+v -0.635800 -0.762500 0.228600
+v -0.685800 -0.762500 0.178600
+v -0.651251 -0.762500 0.226153
+v -0.665190 -0.762500 0.219051
+v -0.676251 -0.762500 0.207989
+v -0.683353 -0.762500 0.194051
+vt 1.000000 0.945319
+vt 0.998216 0.962217
+vt 0.993038 0.977460
+vt 0.984973 0.989557
+vt 0.974811 0.997324
+vt 0.963546 1.000000
+vt 0.036454 1.000000
+vt 0.025189 0.997324
+vt 0.015027 0.989557
+vt 0.006962 0.977460
+vt 0.001784 0.962217
+vt 0.000000 0.945319
+vt 0.000000 0.554681
+vt 0.001784 0.537783
+vt 0.006962 0.522540
+vt 0.015027 0.510443
+vt 0.025189 0.502676
+vt 0.036454 0.500000
+vt 0.963546 0.500000
+vt 0.974811 0.502676
+vt 0.984973 0.510443
+vt 0.993038 0.522540
+vt 0.998216 0.537783
+vt 1.000000 0.554681
+vt 0.000000 0.445319
+vt 0.001784 0.462217
+vt 0.006962 0.477460
+vt 0.015027 0.489557
+vt 0.025189 0.497324
+vt 0.036454 0.500000
+vt 0.963546 0.500000
+vt 0.974811 0.497324
+vt 0.984973 0.489557
+vt 0.993038 0.477460
+vt 0.998216 0.462217
+vt 1.000000 0.445319
+vt 1.000000 0.054681
+vt 0.998216 0.037783
+vt 0.993038 0.022540
+vt 0.984973 0.010443
+vt 0.974811 0.002676
+vt 0.963546 0.000000
+vt 0.036454 0.000000
+vt 0.025189 0.002676
+vt 0.015027 0.010443
+vt 0.006962 0.022540
+vt 0.001784 0.037783
+vt 0.000000 0.054681
+vt 0.036454 0.000000
+vt 0.036454 0.999996
+vt 0.963546 0.999996
+vt 0.963546 0.000000
+vt 0.109361 0.000000
+vt 0.890639 0.000000
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.963546 0.000003
+vt 0.963546 1.000000
+vt 0.036454 1.000000
+vt 0.036454 0.000003
+vt 0.025189 1.000000
+vt 0.025189 0.000003
+vt 0.015027 1.000000
+vt 0.015027 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000000
+vt 0.075567 1.000000
+vt 0.075567 0.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000000
+vt 0.025189 0.000000
+vt 0.025189 0.999996
+vt 0.015027 0.000000
+vt 0.015027 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.954920 1.000000
+vt 0.954920 0.000000
+vt 0.924433 0.000000
+vt 0.924433 1.000000
+vt 0.890639 0.000000
+vt 0.890639 1.000000
+vt 0.974811 0.999996
+vt 0.974811 0.000000
+vt 0.984973 0.999996
+vt 0.984973 0.000000
+vt 0.954920 1.000000
+vt 0.954920 0.000000
+vt 0.924433 1.000000
+vt 0.924433 0.000000
+vt 0.974811 0.000003
+vt 0.974811 1.000000
+vt 0.984973 0.000003
+vt 0.984973 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.045080 1.000000
+vt 0.045080 0.000000
+vt 0.075567 0.000000
+vt 0.075567 1.000000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 -0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 -0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_generic_sign_60x24.obj b/street_signs/models/street_signs_generic_sign_60x24.obj
new file mode 100644
index 0000000..37900e9
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_60x24.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.712000 -0.500000 -0.304800
+v 0.762000 -0.500000 -0.254800
+v 0.727451 -0.500000 -0.302353
+v 0.741390 -0.500000 -0.295251
+v 0.752451 -0.500000 -0.284189
+v 0.759553 -0.500000 -0.270251
+v 0.762000 -0.450000 -0.254800
+v 0.712000 -0.450000 -0.304800
+v 0.759553 -0.450000 -0.270251
+v 0.752451 -0.450000 -0.284189
+v 0.741390 -0.450000 -0.295251
+v 0.727451 -0.450000 -0.302353
+v 0.762000 -0.500000 0.254800
+v 0.712000 -0.500000 0.304800
+v 0.759553 -0.500000 0.270251
+v 0.752451 -0.500000 0.284189
+v 0.741390 -0.500000 0.295251
+v 0.727451 -0.500000 0.302353
+v 0.712000 -0.450000 0.304800
+v 0.762000 -0.450000 0.254800
+v 0.727451 -0.450000 0.302353
+v 0.741390 -0.450000 0.295251
+v 0.752451 -0.450000 0.284189
+v 0.759553 -0.450000 0.270251
+v -0.762000 -0.500000 -0.254800
+v -0.712000 -0.500000 -0.304800
+v -0.759553 -0.500000 -0.270251
+v -0.752451 -0.500000 -0.284189
+v -0.741390 -0.500000 -0.295251
+v -0.727451 -0.500000 -0.302353
+v -0.712000 -0.450000 -0.304800
+v -0.762000 -0.450000 -0.254800
+v -0.727451 -0.450000 -0.302353
+v -0.741390 -0.450000 -0.295251
+v -0.752451 -0.450000 -0.284189
+v -0.759553 -0.450000 -0.270251
+v -0.712000 -0.500000 0.304800
+v -0.762000 -0.500000 0.254800
+v -0.727451 -0.500000 0.302353
+v -0.741390 -0.500000 0.295251
+v -0.752451 -0.500000 0.284189
+v -0.759553 -0.500000 0.270251
+v -0.762000 -0.450000 0.254800
+v -0.712000 -0.450000 0.304800
+v -0.759553 -0.450000 0.270251
+v -0.752451 -0.450000 0.284189
+v -0.741390 -0.450000 0.295251
+v -0.727451 -0.450000 0.302353
+v 0.712000 -0.500000 -0.304800
+v 0.762000 -0.500000 -0.254800
+v 0.727451 -0.500000 -0.302353
+v 0.741390 -0.500000 -0.295251
+v 0.752451 -0.500000 -0.284189
+v 0.759553 -0.500000 -0.270251
+v 0.712000 -0.450000 -0.304800
+v 0.762000 -0.450000 -0.254800
+v 0.727451 -0.450000 -0.302353
+v 0.741390 -0.450000 -0.295251
+v 0.752451 -0.450000 -0.284189
+v 0.759553 -0.450000 -0.270251
+v 0.712000 -0.500000 0.304800
+v 0.762000 -0.500000 0.254800
+v 0.727451 -0.500000 0.302353
+v 0.741390 -0.500000 0.295251
+v 0.752451 -0.500000 0.284189
+v 0.759553 -0.500000 0.270251
+v 0.712000 -0.450000 0.304800
+v 0.762000 -0.450000 0.254800
+v 0.727451 -0.450000 0.302353
+v 0.741390 -0.450000 0.295251
+v 0.752451 -0.450000 0.284189
+v 0.759553 -0.450000 0.270251
+v -0.712000 -0.500000 -0.304800
+v -0.762000 -0.500000 -0.254800
+v -0.727451 -0.500000 -0.302353
+v -0.741390 -0.500000 -0.295251
+v -0.752451 -0.500000 -0.284189
+v -0.759553 -0.500000 -0.270251
+v -0.762000 -0.450000 -0.254800
+v -0.712000 -0.450000 -0.304800
+v -0.759553 -0.450000 -0.270251
+v -0.752451 -0.450000 -0.284189
+v -0.741390 -0.450000 -0.295251
+v -0.727451 -0.450000 -0.302353
+v -0.712000 -0.500000 0.304800
+v -0.762000 -0.500000 0.254800
+v -0.727451 -0.500000 0.302353
+v -0.741390 -0.500000 0.295251
+v -0.752451 -0.500000 0.284189
+v -0.759553 -0.500000 0.270251
+v -0.712000 -0.450000 0.304800
+v -0.762000 -0.450000 0.254800
+v -0.727451 -0.450000 0.302353
+v -0.741390 -0.450000 0.295251
+v -0.752451 -0.450000 0.284189
+v -0.759553 -0.450000 0.270251
+vt 1.000000 0.958989
+vt 0.998394 0.971662
+vt 0.993734 0.983095
+vt 0.986476 0.992168
+vt 0.977330 0.997993
+vt 0.967192 1.000000
+vt 0.032808 1.000000
+vt 0.022670 0.997993
+vt 0.013524 0.992168
+vt 0.006266 0.983095
+vt 0.001606 0.971662
+vt 0.000000 0.958989
+vt 0.000000 0.541010
+vt 0.001606 0.528338
+vt 0.006266 0.516905
+vt 0.013524 0.507832
+vt 0.022670 0.502007
+vt 0.032808 0.500000
+vt 0.967192 0.500000
+vt 0.977330 0.502007
+vt 0.986476 0.507832
+vt 0.993734 0.516905
+vt 0.998394 0.528338
+vt 1.000000 0.541010
+vt 0.000000 0.458989
+vt 0.001606 0.471662
+vt 0.006266 0.483095
+vt 0.013524 0.492168
+vt 0.022670 0.497993
+vt 0.032808 0.500000
+vt 0.967192 0.500000
+vt 0.977330 0.497993
+vt 0.986476 0.492168
+vt 0.993734 0.483095
+vt 0.998394 0.471662
+vt 1.000000 0.458989
+vt 1.000000 0.041010
+vt 0.998394 0.028338
+vt 0.993734 0.016905
+vt 0.986476 0.007832
+vt 0.977330 0.002007
+vt 0.967192 0.000000
+vt 0.032808 0.000000
+vt 0.022670 0.002007
+vt 0.013524 0.007832
+vt 0.006266 0.016905
+vt 0.001606 0.028338
+vt 0.000000 0.041010
+vt 0.032808 0.000000
+vt 0.032808 0.999996
+vt 0.967192 0.999996
+vt 0.967192 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.967192 0.000003
+vt 0.967192 1.000000
+vt 0.032808 1.000000
+vt 0.032808 0.000003
+vt 0.022670 1.000000
+vt 0.022670 0.000003
+vt 0.013524 1.000000
+vt 0.013524 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.022670 0.000000
+vt 0.022670 0.999996
+vt 0.013524 0.000000
+vt 0.013524 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.977330 0.999996
+vt 0.977330 0.000000
+vt 0.986476 0.999996
+vt 0.986476 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.977330 0.000003
+vt 0.977330 1.000000
+vt 0.986476 0.000003
+vt 0.986476 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_60x24_onpole.obj b/street_signs/models/street_signs_generic_sign_60x24_onpole.obj
new file mode 100644
index 0000000..cdcc479
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_60x24_onpole.obj
@@ -0,0 +1,456 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.712000 -0.812500 -0.304800
+v 0.762000 -0.812500 -0.254800
+v 0.727451 -0.812500 -0.302353
+v 0.741390 -0.812500 -0.295251
+v 0.752451 -0.812500 -0.284189
+v 0.759553 -0.812500 -0.270251
+v 0.762000 -0.762500 -0.254800
+v 0.712000 -0.762500 -0.304800
+v 0.759553 -0.762500 -0.270251
+v 0.752451 -0.762500 -0.284189
+v 0.741390 -0.762500 -0.295251
+v 0.727451 -0.762500 -0.302353
+v 0.762000 -0.812500 0.254800
+v 0.712000 -0.812500 0.304800
+v 0.759553 -0.812500 0.270251
+v 0.752451 -0.812500 0.284189
+v 0.741390 -0.812500 0.295251
+v 0.727451 -0.812500 0.302353
+v 0.712000 -0.762500 0.304800
+v 0.762000 -0.762500 0.254800
+v 0.727451 -0.762500 0.302353
+v 0.741390 -0.762500 0.295251
+v 0.752451 -0.762500 0.284189
+v 0.759553 -0.762500 0.270251
+v -0.762000 -0.812500 -0.254800
+v -0.712000 -0.812500 -0.304800
+v -0.759553 -0.812500 -0.270251
+v -0.752451 -0.812500 -0.284189
+v -0.741390 -0.812500 -0.295251
+v -0.727451 -0.812500 -0.302353
+v -0.712000 -0.762500 -0.304800
+v -0.762000 -0.762500 -0.254800
+v -0.727451 -0.762500 -0.302353
+v -0.741390 -0.762500 -0.295251
+v -0.752451 -0.762500 -0.284189
+v -0.759553 -0.762500 -0.270251
+v -0.712000 -0.812500 0.304800
+v -0.762000 -0.812500 0.254800
+v -0.727451 -0.812500 0.302353
+v -0.741390 -0.812500 0.295251
+v -0.752451 -0.812500 0.284189
+v -0.759553 -0.812500 0.270251
+v -0.762000 -0.762500 0.254800
+v -0.712000 -0.762500 0.304800
+v -0.759553 -0.762500 0.270251
+v -0.752451 -0.762500 0.284189
+v -0.741390 -0.762500 0.295251
+v -0.727451 -0.762500 0.302353
+v 0.712000 -0.812500 -0.304800
+v 0.762000 -0.812500 -0.254800
+v 0.727451 -0.812500 -0.302353
+v 0.741390 -0.812500 -0.295251
+v 0.752451 -0.812500 -0.284189
+v 0.759553 -0.812500 -0.270251
+v 0.712000 -0.762500 -0.304800
+v 0.762000 -0.762500 -0.254800
+v 0.727451 -0.762500 -0.302353
+v 0.741390 -0.762500 -0.295251
+v 0.752451 -0.762500 -0.284189
+v 0.759553 -0.762500 -0.270251
+v 0.712000 -0.812500 0.304800
+v 0.762000 -0.812500 0.254800
+v 0.727451 -0.812500 0.302353
+v 0.741390 -0.812500 0.295251
+v 0.752451 -0.812500 0.284189
+v 0.759553 -0.812500 0.270251
+v 0.712000 -0.762500 0.304800
+v 0.762000 -0.762500 0.254800
+v 0.727451 -0.762500 0.302353
+v 0.741390 -0.762500 0.295251
+v 0.752451 -0.762500 0.284189
+v 0.759553 -0.762500 0.270251
+v -0.712000 -0.812500 -0.304800
+v -0.762000 -0.812500 -0.254800
+v -0.727451 -0.812500 -0.302353
+v -0.741390 -0.812500 -0.295251
+v -0.752451 -0.812500 -0.284189
+v -0.759553 -0.812500 -0.270251
+v -0.762000 -0.762500 -0.254800
+v -0.712000 -0.762500 -0.304800
+v -0.759553 -0.762500 -0.270251
+v -0.752451 -0.762500 -0.284189
+v -0.741390 -0.762500 -0.295251
+v -0.727451 -0.762500 -0.302353
+v -0.712000 -0.812500 0.304800
+v -0.762000 -0.812500 0.254800
+v -0.727451 -0.812500 0.302353
+v -0.741390 -0.812500 0.295251
+v -0.752451 -0.812500 0.284189
+v -0.759553 -0.812500 0.270251
+v -0.712000 -0.762500 0.304800
+v -0.762000 -0.762500 0.254800
+v -0.727451 -0.762500 0.302353
+v -0.741390 -0.762500 0.295251
+v -0.752451 -0.762500 0.284189
+v -0.759553 -0.762500 0.270251
+vt 1.000000 0.958989
+vt 0.998394 0.971662
+vt 0.993734 0.983095
+vt 0.986476 0.992168
+vt 0.977330 0.997993
+vt 0.967192 1.000000
+vt 0.032808 1.000000
+vt 0.022670 0.997993
+vt 0.013524 0.992168
+vt 0.006266 0.983095
+vt 0.001606 0.971662
+vt 0.000000 0.958989
+vt 0.000000 0.541010
+vt 0.001606 0.528338
+vt 0.006266 0.516905
+vt 0.013524 0.507832
+vt 0.022670 0.502007
+vt 0.032808 0.500000
+vt 0.967192 0.500000
+vt 0.977330 0.502007
+vt 0.986476 0.507832
+vt 0.993734 0.516905
+vt 0.998394 0.528338
+vt 1.000000 0.541010
+vt 0.000000 0.458989
+vt 0.001606 0.471662
+vt 0.006266 0.483095
+vt 0.013524 0.492168
+vt 0.022670 0.497993
+vt 0.032808 0.500000
+vt 0.967192 0.500000
+vt 0.977330 0.497993
+vt 0.986476 0.492168
+vt 0.993734 0.483095
+vt 0.998394 0.471662
+vt 1.000000 0.458989
+vt 1.000000 0.041010
+vt 0.998394 0.028338
+vt 0.993734 0.016905
+vt 0.986476 0.007832
+vt 0.977330 0.002007
+vt 0.967192 0.000000
+vt 0.032808 0.000000
+vt 0.022670 0.002007
+vt 0.013524 0.007832
+vt 0.006266 0.016905
+vt 0.001606 0.028338
+vt 0.000000 0.041010
+vt 0.032808 0.000000
+vt 0.032808 0.999996
+vt 0.967192 0.999996
+vt 0.967192 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.967192 0.000003
+vt 0.967192 1.000000
+vt 0.032808 1.000000
+vt 0.032808 0.000003
+vt 0.022670 1.000000
+vt 0.022670 0.000003
+vt 0.013524 1.000000
+vt 0.013524 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.022670 0.000000
+vt 0.022670 0.999996
+vt 0.013524 0.000000
+vt 0.013524 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.977330 0.999996
+vt 0.977330 0.000000
+vt 0.986476 0.999996
+vt 0.986476 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.977330 0.000003
+vt 0.977330 1.000000
+vt 0.986476 0.000003
+vt 0.986476 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 97/101/27 98/102/27 100/103/27 99/104/27
+f 102/105/28 101/106/28 104/107/28 103/108/28
+f 100/103/29 104/107/29 101/109/29 99/110/29
+f 97/111/30 102/112/30 103/108/30 98/102/30
+f 98/102/31 103/108/31 104/107/31 100/103/31
+f 105/113/28 106/114/28 108/115/28 107/116/28
+f 107/117/29 108/118/29 112/119/29 111/120/29
+f 111/121/27 112/122/27 110/123/27 109/124/27
+f 109/124/30 110/123/30 106/125/30 105/126/30
+f 113/127/28 114/128/28 116/129/28 115/130/28
+f 115/131/29 116/132/29 120/133/29 119/134/29
+f 119/135/27 120/136/27 118/137/27 117/138/27
+f 117/138/30 118/137/30 114/139/30 113/140/30
+f 121/141/28 122/142/28 124/143/28 123/144/28
+f 123/145/29 124/146/29 128/147/29 127/148/29
+f 127/149/27 128/150/27 126/151/27 125/152/27
+f 125/152/30 126/151/30 122/153/30 121/154/30
+f 129/155/28 130/156/28 132/157/28 131/158/28
+f 131/159/29 132/160/29 136/161/29 135/162/29
+f 135/163/27 136/164/27 134/165/27 133/166/27
+f 133/166/30 134/165/30 130/167/30 129/168/30
+f 137/169/31 138/170/31 140/171/31 139/172/31
+f 139/173/29 140/174/29 144/175/29 143/176/29
+f 143/176/32 144/175/32 142/177/32 141/178/32
+f 141/178/30 142/177/30 138/170/30 137/169/30
+f 139/179/27 143/180/27 141/181/27 137/182/27
+f 144/183/28 140/184/28 138/185/28 142/186/28
+f 145/187/31 146/188/31 148/189/31 147/190/31
+f 147/191/29 148/192/29 152/193/29 151/194/29
+f 151/194/32 152/193/32 150/195/32 149/196/32
+f 149/196/30 150/195/30 146/188/30 145/187/30
+f 147/197/27 151/198/27 149/199/27 145/200/27
+f 152/201/28 148/202/28 146/203/28 150/204/28
diff --git a/street_signs/models/street_signs_generic_sign_9x12.obj b/street_signs/models/street_signs_generic_sign_9x12.obj
new file mode 100644
index 0000000..ae41314
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x12.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.500000 -0.152400
+v 0.114300 -0.500000 -0.127400
+v 0.097025 -0.500000 -0.151176
+v 0.103995 -0.500000 -0.147625
+v 0.109525 -0.500000 -0.142095
+v 0.113076 -0.500000 -0.135125
+v 0.114300 -0.450000 -0.127400
+v 0.089300 -0.450000 -0.152400
+v 0.113076 -0.450000 -0.135125
+v 0.109525 -0.450000 -0.142095
+v 0.103995 -0.450000 -0.147625
+v 0.097025 -0.450000 -0.151176
+v 0.114300 -0.500000 0.127400
+v 0.089300 -0.500000 0.152400
+v 0.113076 -0.500000 0.135125
+v 0.109525 -0.500000 0.142095
+v 0.103995 -0.500000 0.147625
+v 0.097025 -0.500000 0.151176
+v 0.089300 -0.450000 0.152400
+v 0.114300 -0.450000 0.127400
+v 0.097025 -0.450000 0.151176
+v 0.103995 -0.450000 0.147625
+v 0.109525 -0.450000 0.142095
+v 0.113076 -0.450000 0.135125
+v -0.114300 -0.500000 -0.127400
+v -0.089300 -0.500000 -0.152400
+v -0.113076 -0.500000 -0.135125
+v -0.109525 -0.500000 -0.142095
+v -0.103995 -0.500000 -0.147625
+v -0.097025 -0.500000 -0.151176
+v -0.089300 -0.450000 -0.152400
+v -0.114300 -0.450000 -0.127400
+v -0.097025 -0.450000 -0.151176
+v -0.103995 -0.450000 -0.147625
+v -0.109525 -0.450000 -0.142095
+v -0.113076 -0.450000 -0.135125
+v -0.089300 -0.500000 0.152400
+v -0.114300 -0.500000 0.127400
+v -0.097025 -0.500000 0.151176
+v -0.103995 -0.500000 0.147625
+v -0.109525 -0.500000 0.142095
+v -0.113076 -0.500000 0.135125
+v -0.114300 -0.450000 0.127400
+v -0.089300 -0.450000 0.152400
+v -0.113076 -0.450000 0.135125
+v -0.109525 -0.450000 0.142095
+v -0.103995 -0.450000 0.147625
+v -0.097025 -0.450000 0.151176
+v 0.089300 -0.500000 -0.152400
+v 0.114300 -0.500000 -0.127400
+v 0.097025 -0.500000 -0.151176
+v 0.103995 -0.500000 -0.147625
+v 0.109525 -0.500000 -0.142095
+v 0.113076 -0.500000 -0.135125
+v 0.089300 -0.450000 -0.152400
+v 0.114300 -0.450000 -0.127400
+v 0.097025 -0.450000 -0.151176
+v 0.103995 -0.450000 -0.147625
+v 0.109525 -0.450000 -0.142095
+v 0.113076 -0.450000 -0.135125
+v 0.089300 -0.500000 0.152400
+v 0.114300 -0.500000 0.127400
+v 0.097025 -0.500000 0.151176
+v 0.103995 -0.500000 0.147625
+v 0.109525 -0.500000 0.142095
+v 0.113076 -0.500000 0.135125
+v 0.089300 -0.450000 0.152400
+v 0.114300 -0.450000 0.127400
+v 0.097025 -0.450000 0.151176
+v 0.103995 -0.450000 0.147625
+v 0.109525 -0.450000 0.142095
+v 0.113076 -0.450000 0.135125
+v -0.089300 -0.500000 -0.152400
+v -0.114300 -0.500000 -0.127400
+v -0.097025 -0.500000 -0.151176
+v -0.103995 -0.500000 -0.147625
+v -0.109525 -0.500000 -0.142095
+v -0.113076 -0.500000 -0.135125
+v -0.114300 -0.450000 -0.127400
+v -0.089300 -0.450000 -0.152400
+v -0.113076 -0.450000 -0.135125
+v -0.109525 -0.450000 -0.142095
+v -0.103995 -0.450000 -0.147625
+v -0.097025 -0.450000 -0.151176
+v -0.089300 -0.500000 0.152400
+v -0.114300 -0.500000 0.127400
+v -0.097025 -0.500000 0.151176
+v -0.103995 -0.500000 0.147625
+v -0.109525 -0.500000 0.142095
+v -0.113076 -0.500000 0.135125
+v -0.089300 -0.450000 0.152400
+v -0.114300 -0.450000 0.127400
+v -0.097025 -0.450000 0.151176
+v -0.103995 -0.450000 0.147625
+v -0.109525 -0.450000 0.142095
+v -0.113076 -0.450000 0.135125
+vt 0.500000 0.917979
+vt 0.497324 0.943325
+vt 0.489557 0.966190
+vt 0.477460 0.984335
+vt 0.462217 0.995986
+vt 0.445319 1.000000
+vt 0.054681 1.000000
+vt 0.037783 0.995986
+vt 0.022540 0.984335
+vt 0.010443 0.966190
+vt 0.002676 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.082021
+vt 0.002676 0.056675
+vt 0.010443 0.033810
+vt 0.022540 0.015665
+vt 0.037783 0.004014
+vt 0.054681 0.000000
+vt 0.445319 0.000000
+vt 0.462217 0.004014
+vt 0.477460 0.015665
+vt 0.489557 0.033810
+vt 0.497324 0.056675
+vt 0.500000 0.082021
+vt 0.500000 0.917979
+vt 0.502676 0.943325
+vt 0.510443 0.966190
+vt 0.522540 0.984335
+vt 0.537783 0.995986
+vt 0.554681 1.000000
+vt 0.945319 1.000000
+vt 0.962217 0.995986
+vt 0.977460 0.984335
+vt 0.989557 0.966190
+vt 0.997324 0.943325
+vt 1.000000 0.917979
+vt 1.000000 0.082021
+vt 0.997324 0.056675
+vt 0.989557 0.033810
+vt 0.977460 0.015665
+vt 0.962217 0.004014
+vt 0.945319 0.000000
+vt 0.554681 0.000000
+vt 0.537783 0.004014
+vt 0.522540 0.015665
+vt 0.510443 0.033810
+vt 0.502676 0.056675
+vt 0.500000 0.082021
+vt 0.109361 0.000000
+vt 0.109361 0.999996
+vt 0.890639 0.999996
+vt 0.890639 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.890639 0.000003
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000003
+vt 0.075567 1.000000
+vt 0.075567 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.075567 0.000000
+vt 0.075567 0.999996
+vt 0.045080 0.000000
+vt 0.045080 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.924433 0.999996
+vt 0.924433 0.000000
+vt 0.954920 0.999996
+vt 0.954920 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.924433 0.000003
+vt 0.924433 1.000000
+vt 0.954920 0.000003
+vt 0.954920 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_9x12_onpole.obj b/street_signs/models/street_signs_generic_sign_9x12_onpole.obj
new file mode 100644
index 0000000..8292bd0
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x12_onpole.obj
@@ -0,0 +1,487 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.843750 -0.152400
+v 0.114300 -0.843750 -0.127400
+v 0.097025 -0.843750 -0.151176
+v 0.103995 -0.843750 -0.147625
+v 0.109525 -0.843750 -0.142095
+v 0.113076 -0.843750 -0.135125
+v 0.114300 -0.793750 -0.127400
+v 0.089300 -0.793750 -0.152400
+v 0.113076 -0.793750 -0.135125
+v 0.109525 -0.793750 -0.142095
+v 0.103995 -0.793750 -0.147625
+v 0.097025 -0.793750 -0.151176
+v 0.114300 -0.843750 0.127400
+v 0.089300 -0.843750 0.152400
+v 0.113076 -0.843750 0.135125
+v 0.109525 -0.843750 0.142095
+v 0.103995 -0.843750 0.147625
+v 0.097025 -0.843750 0.151176
+v 0.089300 -0.793750 0.152400
+v 0.114300 -0.793750 0.127400
+v 0.097025 -0.793750 0.151176
+v 0.103995 -0.793750 0.147625
+v 0.109525 -0.793750 0.142095
+v 0.113076 -0.793750 0.135125
+v -0.114300 -0.843750 -0.127400
+v -0.089300 -0.843750 -0.152400
+v -0.113076 -0.843750 -0.135125
+v -0.109525 -0.843750 -0.142095
+v -0.103995 -0.843750 -0.147625
+v -0.097025 -0.843750 -0.151176
+v -0.089300 -0.793750 -0.152400
+v -0.114300 -0.793750 -0.127400
+v -0.097025 -0.793750 -0.151176
+v -0.103995 -0.793750 -0.147625
+v -0.109525 -0.793750 -0.142095
+v -0.113076 -0.793750 -0.135125
+v -0.089300 -0.843750 0.152400
+v -0.114300 -0.843750 0.127400
+v -0.097025 -0.843750 0.151176
+v -0.103995 -0.843750 0.147625
+v -0.109525 -0.843750 0.142095
+v -0.113076 -0.843750 0.135125
+v -0.114300 -0.793750 0.127400
+v -0.089300 -0.793750 0.152400
+v -0.113076 -0.793750 0.135125
+v -0.109525 -0.793750 0.142095
+v -0.103995 -0.793750 0.147625
+v -0.097025 -0.793750 0.151176
+v 0.089300 -0.843750 -0.152400
+v 0.114300 -0.843750 -0.127400
+v 0.097025 -0.843750 -0.151176
+v 0.103995 -0.843750 -0.147625
+v 0.109525 -0.843750 -0.142095
+v 0.113076 -0.843750 -0.135125
+v 0.089300 -0.793750 -0.152400
+v 0.114300 -0.793750 -0.127400
+v 0.097025 -0.793750 -0.151176
+v 0.103995 -0.793750 -0.147625
+v 0.109525 -0.793750 -0.142095
+v 0.113076 -0.793750 -0.135125
+v 0.089300 -0.843750 0.152400
+v 0.114300 -0.843750 0.127400
+v 0.097025 -0.843750 0.151176
+v 0.103995 -0.843750 0.147625
+v 0.109525 -0.843750 0.142095
+v 0.113076 -0.843750 0.135125
+v 0.089300 -0.793750 0.152400
+v 0.114300 -0.793750 0.127400
+v 0.097025 -0.793750 0.151176
+v 0.103995 -0.793750 0.147625
+v 0.109525 -0.793750 0.142095
+v 0.113076 -0.793750 0.135125
+v -0.089300 -0.843750 -0.152400
+v -0.114300 -0.843750 -0.127400
+v -0.097025 -0.843750 -0.151176
+v -0.103995 -0.843750 -0.147625
+v -0.109525 -0.843750 -0.142095
+v -0.113076 -0.843750 -0.135125
+v -0.114300 -0.793750 -0.127400
+v -0.089300 -0.793750 -0.152400
+v -0.113076 -0.793750 -0.135125
+v -0.109525 -0.793750 -0.142095
+v -0.103995 -0.793750 -0.147625
+v -0.097025 -0.793750 -0.151176
+v -0.089300 -0.843750 0.152400
+v -0.114300 -0.843750 0.127400
+v -0.097025 -0.843750 0.151176
+v -0.103995 -0.843750 0.147625
+v -0.109525 -0.843750 0.142095
+v -0.113076 -0.843750 0.135125
+v -0.089300 -0.793750 0.152400
+v -0.114300 -0.793750 0.127400
+v -0.097025 -0.793750 0.151176
+v -0.103995 -0.793750 0.147625
+v -0.109525 -0.793750 0.142095
+v -0.113076 -0.793750 0.135125
+vt 0.500000 0.917979
+vt 0.497324 0.943325
+vt 0.489557 0.966190
+vt 0.477460 0.984335
+vt 0.462217 0.995986
+vt 0.445319 1.000000
+vt 0.054681 1.000000
+vt 0.037783 0.995986
+vt 0.022540 0.984335
+vt 0.010443 0.966190
+vt 0.002676 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.082021
+vt 0.002676 0.056675
+vt 0.010443 0.033810
+vt 0.022540 0.015665
+vt 0.037783 0.004014
+vt 0.054681 0.000000
+vt 0.445319 0.000000
+vt 0.462217 0.004014
+vt 0.477460 0.015665
+vt 0.489557 0.033810
+vt 0.497324 0.056675
+vt 0.500000 0.082021
+vt 0.500000 0.917979
+vt 0.502676 0.943325
+vt 0.510443 0.966190
+vt 0.522540 0.984335
+vt 0.537783 0.995986
+vt 0.554681 1.000000
+vt 0.945319 1.000000
+vt 0.962217 0.995986
+vt 0.977460 0.984335
+vt 0.989557 0.966190
+vt 0.997324 0.943325
+vt 1.000000 0.917979
+vt 1.000000 0.082021
+vt 0.997324 0.056675
+vt 0.989557 0.033810
+vt 0.977460 0.015665
+vt 0.962217 0.004014
+vt 0.945319 0.000000
+vt 0.554681 0.000000
+vt 0.537783 0.004014
+vt 0.522540 0.015665
+vt 0.510443 0.033810
+vt 0.502676 0.056675
+vt 0.500000 0.082021
+vt 0.109361 0.000000
+vt 0.109361 0.999996
+vt 0.890639 0.999996
+vt 0.890639 0.000000
+vt 0.082021 0.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.082021 1.000000
+vt 0.890639 0.000003
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000003
+vt 0.075567 1.000000
+vt 0.075567 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000003
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 1.000000
+vt 0.056675 0.000000
+vt 0.082021 1.000000
+vt 0.082021 0.000000
+vt 0.075567 0.000000
+vt 0.075567 0.999996
+vt 0.045080 0.000000
+vt 0.045080 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 0.000000
+vt 0.943325 1.000000
+vt 0.917979 0.000000
+vt 0.917979 1.000000
+vt 0.924433 0.999996
+vt 0.924433 0.000000
+vt 0.954920 0.999996
+vt 0.954920 0.000000
+vt 0.966190 1.000000
+vt 0.966190 0.000000
+vt 0.943325 1.000000
+vt 0.943325 0.000000
+vt 0.924433 0.000003
+vt 0.924433 1.000000
+vt 0.954920 0.000003
+vt 0.954920 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.033810 1.000000
+vt 0.033810 0.000000
+vt 0.056675 0.000000
+vt 0.056675 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.119048 -0.843750 -0.117188
+v -0.119048 -0.875000 -0.117188
+v -0.119048 -0.843750 -0.085938
+v -0.119048 -0.875000 -0.085938
+v 0.119048 -0.843750 -0.085938
+v 0.119048 -0.843750 -0.117188
+v 0.119048 -0.875000 -0.117188
+v 0.119048 -0.875000 -0.085938
+v -0.119048 -1.117188 -0.117188
+v -0.119048 -0.843750 -0.117188
+v -0.119048 -1.117188 -0.085938
+v -0.119048 -0.843750 -0.085938
+v -0.156250 -1.117188 -0.117188
+v -0.156250 -0.843750 -0.117188
+v -0.156250 -1.117188 -0.085938
+v -0.156250 -0.843750 -0.085938
+v 0.156250 -1.117188 -0.117188
+v 0.156250 -0.843750 -0.117188
+v 0.156250 -1.117188 -0.085938
+v 0.156250 -0.843750 -0.085938
+v 0.119048 -1.117188 -0.117188
+v 0.119048 -0.843750 -0.117188
+v 0.119048 -1.117188 -0.085938
+v 0.119048 -0.843750 -0.085938
+v -0.156250 -1.156250 -0.117188
+v 0.156250 -1.156250 -0.117188
+v -0.156250 -1.156250 -0.085938
+v 0.156250 -1.156250 -0.085938
+v -0.156250 -1.117188 -0.117188
+v 0.156250 -1.117188 -0.117188
+v -0.156250 -1.117188 -0.085938
+v 0.156250 -1.117188 -0.085938
+v 0.156250 -0.843750 -0.085938
+v -0.156250 -0.843750 -0.085938
+v 0.156250 -0.843750 -0.117188
+v -0.156250 -0.843750 -0.117188
+v -0.119048 -0.843750 0.085937
+v -0.119048 -0.875000 0.085937
+v -0.119048 -0.843750 0.117187
+v -0.119048 -0.875000 0.117187
+v 0.119048 -0.843750 0.117187
+v 0.119048 -0.843750 0.085937
+v 0.119048 -0.875000 0.085937
+v 0.119048 -0.875000 0.117187
+v -0.119048 -1.117188 0.085937
+v -0.119048 -0.843750 0.085938
+v -0.119048 -1.117188 0.117187
+v -0.119048 -0.843750 0.117187
+v -0.156250 -1.117188 0.085937
+v -0.156250 -0.843750 0.085938
+v -0.156250 -1.117188 0.117187
+v -0.156250 -0.843750 0.117187
+v 0.156250 -1.117188 0.085937
+v 0.156250 -0.843750 0.085938
+v 0.156250 -1.117188 0.117187
+v 0.156250 -0.843750 0.117187
+v 0.119048 -1.117188 0.085937
+v 0.119048 -0.843750 0.085938
+v 0.119048 -1.117188 0.117187
+v 0.119048 -0.843750 0.117187
+v -0.156250 -1.156250 0.085937
+v 0.156250 -1.156250 0.085937
+v -0.156250 -1.156250 0.117187
+v 0.156250 -1.156250 0.117187
+v -0.156250 -1.117188 0.085937
+v 0.156250 -1.117188 0.085937
+v -0.156250 -1.117188 0.117187
+v 0.156250 -1.117188 0.117187
+v 0.156250 -0.843750 0.117187
+v -0.156250 -0.843750 0.117187
+v 0.156250 -0.843750 0.085937
+v -0.156250 -0.843750 0.085937
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.703125 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.156250 0.507812
+vt 0.703125 0.507812
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.703125 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.156250 0.507812
+vt 0.703125 0.507812
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 1.0000 0.0000 0.0000
+vn -1.0000 -0.0000 0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 132/101/27 131/102/27 129/103/27 130/104/27
+f 100/105/28 104/106/28 101/107/28 99/108/28
+f 97/109/29 102/110/29 103/111/29 98/112/29
+f 98/112/27 103/111/27 104/106/27 100/105/27
+f 105/113/30 106/114/30 108/115/30 107/116/30
+f 107/117/28 108/118/28 112/119/28 111/120/28
+f 111/121/31 112/122/31 110/123/31 109/124/31
+f 109/124/29 110/123/29 106/125/29 105/126/29
+f 113/127/30 114/128/30 116/129/30 115/130/30
+f 115/131/28 116/132/28 120/133/28 119/134/28
+f 119/135/31 120/136/31 118/137/31 117/138/31
+f 117/138/29 118/137/29 114/139/29 113/140/29
+f 121/141/27 122/142/27 124/143/27 123/144/27
+f 123/145/28 124/146/28 128/147/28 127/148/28
+f 127/148/32 128/147/32 126/149/32 125/150/32
+f 125/150/29 126/149/29 122/142/29 121/141/29
+f 123/151/31 127/152/31 125/153/31 121/154/31
+f 128/155/30 124/156/30 122/157/30 126/158/30
+f 168/159/27 167/160/27 165/161/27 166/162/27
+f 136/163/28 140/164/28 137/165/28 135/166/28
+f 133/167/29 138/168/29 139/169/29 134/170/29
+f 134/170/27 139/169/27 140/164/27 136/163/27
+f 141/171/30 142/172/30 144/173/30 143/174/30
+f 143/175/28 144/176/28 148/177/28 147/178/28
+f 147/179/31 148/180/31 146/181/31 145/182/31
+f 145/182/29 146/181/29 142/183/29 141/184/29
+f 149/185/30 150/186/30 152/187/30 151/188/30
+f 151/189/28 152/190/28 156/191/28 155/192/28
+f 155/193/31 156/194/31 154/195/31 153/196/31
+f 153/196/29 154/195/29 150/197/29 149/198/29
+f 157/199/27 158/200/27 160/201/27 159/202/27
+f 159/203/28 160/204/28 164/205/28 163/206/28
+f 163/206/32 164/205/32 162/207/32 161/208/32
+f 161/208/29 162/207/29 158/200/29 157/199/29
+f 159/209/31 163/210/31 161/211/31 157/212/31
+f 164/213/30 160/214/30 158/215/30 162/216/30
diff --git a/street_signs/models/street_signs_generic_sign_9x15.obj b/street_signs/models/street_signs_generic_sign_9x15.obj
new file mode 100644
index 0000000..bf5db3e
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x15.obj
@@ -0,0 +1,254 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.500000 -0.190500
+v 0.114300 -0.500000 -0.165500
+v 0.097025 -0.500000 -0.189276
+v 0.103995 -0.500000 -0.185725
+v 0.109525 -0.500000 -0.180195
+v 0.113076 -0.500000 -0.173225
+v 0.114300 -0.450000 -0.165500
+v 0.089300 -0.450000 -0.190500
+v 0.113076 -0.450000 -0.173225
+v 0.109525 -0.450000 -0.180195
+v 0.103995 -0.450000 -0.185725
+v 0.097025 -0.450000 -0.189276
+v 0.114300 -0.500000 0.165500
+v 0.089300 -0.500000 0.190500
+v 0.113076 -0.500000 0.173225
+v 0.109525 -0.500000 0.180195
+v 0.103995 -0.500000 0.185725
+v 0.097025 -0.500000 0.189276
+v 0.089300 -0.450000 0.190500
+v 0.114300 -0.450000 0.165500
+v 0.097025 -0.450000 0.189276
+v 0.103995 -0.450000 0.185725
+v 0.109525 -0.450000 0.180195
+v 0.113076 -0.450000 0.173225
+v -0.114300 -0.500000 -0.165500
+v -0.089300 -0.500000 -0.190500
+v -0.113076 -0.500000 -0.173225
+v -0.109525 -0.500000 -0.180195
+v -0.103995 -0.500000 -0.185725
+v -0.097025 -0.500000 -0.189276
+v -0.089300 -0.450000 -0.190500
+v -0.114300 -0.450000 -0.165500
+v -0.097025 -0.450000 -0.189276
+v -0.103995 -0.450000 -0.185725
+v -0.109525 -0.450000 -0.180195
+v -0.113076 -0.450000 -0.173225
+v -0.089300 -0.500000 0.190500
+v -0.114300 -0.500000 0.165500
+v -0.097025 -0.500000 0.189276
+v -0.103995 -0.500000 0.185725
+v -0.109525 -0.500000 0.180195
+v -0.113076 -0.500000 0.173225
+v -0.114300 -0.450000 0.165500
+v -0.089300 -0.450000 0.190500
+v -0.113076 -0.450000 0.173225
+v -0.109525 -0.450000 0.180195
+v -0.103995 -0.450000 0.185725
+v -0.097025 -0.450000 0.189276
+v 0.089300 -0.500000 -0.190500
+v 0.114300 -0.500000 -0.165500
+v 0.097025 -0.500000 -0.189276
+v 0.103995 -0.500000 -0.185725
+v 0.109525 -0.500000 -0.180195
+v 0.113076 -0.500000 -0.173225
+v 0.089300 -0.450000 -0.190500
+v 0.114300 -0.450000 -0.165500
+v 0.097025 -0.450000 -0.189276
+v 0.103995 -0.450000 -0.185725
+v 0.109525 -0.450000 -0.180195
+v 0.113076 -0.450000 -0.173225
+v 0.089300 -0.500000 0.190500
+v 0.114300 -0.500000 0.165500
+v 0.097025 -0.500000 0.189276
+v 0.103995 -0.500000 0.185725
+v 0.109525 -0.500000 0.180195
+v 0.113076 -0.500000 0.173225
+v 0.089300 -0.450000 0.190500
+v 0.114300 -0.450000 0.165500
+v 0.097025 -0.450000 0.189276
+v 0.103995 -0.450000 0.185725
+v 0.109525 -0.450000 0.180195
+v 0.113076 -0.450000 0.173225
+v -0.089300 -0.500000 -0.190500
+v -0.114300 -0.500000 -0.165500
+v -0.097025 -0.500000 -0.189276
+v -0.103995 -0.500000 -0.185725
+v -0.109525 -0.500000 -0.180195
+v -0.113076 -0.500000 -0.173225
+v -0.114300 -0.450000 -0.165500
+v -0.089300 -0.450000 -0.190500
+v -0.113076 -0.450000 -0.173225
+v -0.109525 -0.450000 -0.180195
+v -0.103995 -0.450000 -0.185725
+v -0.097025 -0.450000 -0.189276
+v -0.089300 -0.500000 0.190500
+v -0.114300 -0.500000 0.165500
+v -0.097025 -0.500000 0.189276
+v -0.103995 -0.500000 0.185725
+v -0.109525 -0.500000 0.180195
+v -0.113076 -0.500000 0.173225
+v -0.089300 -0.450000 0.190500
+v -0.114300 -0.450000 0.165500
+v -0.097025 -0.450000 0.189276
+v -0.103995 -0.450000 0.185725
+v -0.109525 -0.450000 0.180195
+v -0.113076 -0.450000 0.173225
+vt 0.500000 0.934383
+vt 0.497324 0.954660
+vt 0.489557 0.972952
+vt 0.477460 0.987468
+vt 0.462217 0.996788
+vt 0.445319 1.000000
+vt 0.054681 1.000000
+vt 0.037783 0.996788
+vt 0.022540 0.987468
+vt 0.010443 0.972952
+vt 0.002676 0.954660
+vt 0.000000 0.934383
+vt 0.000000 0.065617
+vt 0.002676 0.045340
+vt 0.010443 0.027048
+vt 0.022540 0.012532
+vt 0.037783 0.003212
+vt 0.054681 0.000000
+vt 0.445319 0.000000
+vt 0.462217 0.003212
+vt 0.477460 0.012532
+vt 0.489557 0.027048
+vt 0.497324 0.045340
+vt 0.500000 0.065617
+vt 0.500000 0.934383
+vt 0.502676 0.954660
+vt 0.510443 0.972952
+vt 0.522540 0.987468
+vt 0.537783 0.996788
+vt 0.554681 1.000000
+vt 0.945319 1.000000
+vt 0.962216 0.996788
+vt 0.977460 0.987468
+vt 0.989557 0.972952
+vt 0.997324 0.954660
+vt 1.000000 0.934383
+vt 1.000000 0.065617
+vt 0.997324 0.045340
+vt 0.989557 0.027048
+vt 0.977460 0.012532
+vt 0.962216 0.003212
+vt 0.945319 0.000000
+vt 0.554681 0.000000
+vt 0.537783 0.003212
+vt 0.522540 0.012532
+vt 0.510443 0.027048
+vt 0.502676 0.045340
+vt 0.500000 0.065617
+vt 0.109361 0.000000
+vt 0.109361 0.999996
+vt 0.890639 0.999996
+vt 0.890639 0.000000
+vt 0.065617 0.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.890639 0.000003
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000003
+vt 0.075567 1.000000
+vt 0.075567 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 1.000000
+vt 0.045340 0.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000000
+vt 0.075567 0.000000
+vt 0.075567 0.999996
+vt 0.045080 0.000000
+vt 0.045080 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 0.000000
+vt 0.954660 1.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.924433 0.999996
+vt 0.924433 0.000000
+vt 0.954920 0.999996
+vt 0.954920 0.000000
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 1.000000
+vt 0.954660 0.000000
+vt 0.924433 0.000003
+vt 0.924433 1.000000
+vt 0.954920 0.000003
+vt 0.954920 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 0.000000
+vt 0.045340 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
diff --git a/street_signs/models/street_signs_generic_sign_9x15_entity.obj b/street_signs/models/street_signs_generic_sign_9x15_entity.obj
new file mode 100644
index 0000000..ebc3826
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x15_entity.obj
@@ -0,0 +1,55 @@
+# Blender v2.79 (sub 0) OBJ File: 'street_signs small sign pole mount already positioned.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.190500 0.442187
+v 0.114300 -0.165500 0.442187
+v 0.097025 -0.189277 0.442187
+v 0.103995 -0.185726 0.442187
+v 0.109525 -0.180195 0.442187
+v 0.113076 -0.173226 0.442187
+v 0.089300 0.190500 0.442187
+v 0.114300 0.165500 0.442187
+v 0.097025 0.189276 0.442187
+v 0.103995 0.185725 0.442187
+v 0.109525 0.180195 0.442187
+v 0.113076 0.173225 0.442187
+v -0.114300 -0.165500 0.442187
+v -0.089300 -0.190500 0.442187
+v -0.113076 -0.173226 0.442187
+v -0.109525 -0.180195 0.442187
+v -0.103995 -0.185726 0.442187
+v -0.097025 -0.189277 0.442187
+v -0.089300 0.190500 0.442187
+v -0.114300 0.165500 0.442187
+v -0.097025 0.189276 0.442187
+v -0.103995 0.185725 0.442187
+v -0.109525 0.180195 0.442187
+v -0.113076 0.173225 0.442187
+vt 1.000000 0.934383
+vt 0.994647 0.954660
+vt 0.979114 0.972952
+vt 0.954920 0.987468
+vt 0.924433 0.996788
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.075567 0.996788
+vt 0.045080 0.987468
+vt 0.020886 0.972952
+vt 0.005352 0.954660
+vt -0.000000 0.934383
+vt -0.000000 0.065617
+vt 0.005352 0.045340
+vt 0.020886 0.027048
+vt 0.045080 0.012532
+vt 0.075567 0.003212
+vt 0.109361 -0.000000
+vt 0.890639 -0.000000
+vt 0.924433 0.003212
+vt 0.954920 0.012532
+vt 0.979114 0.027048
+vt 0.994647 0.045340
+vt 1.000000 0.065617
+vn -0.0000 0.0000 -1.0000
+g Cube_Cube_None
+s off
+f 20/1/1 24/2/1 23/3/1 22/4/1 21/5/1 19/6/1 7/7/1 9/8/1 10/9/1 11/10/1 12/11/1 8/12/1 2/13/1 6/14/1 5/15/1 4/16/1 3/17/1 1/18/1 14/19/1 18/20/1 17/21/1 16/22/1 15/23/1 13/24/1
diff --git a/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj b/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj
new file mode 100644
index 0000000..d7a2062
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj
@@ -0,0 +1,55 @@
+# Blender v2.79 (sub 0) OBJ File: 'street_signs small sign pole mount already positioned.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.190500 0.778125
+v 0.114300 -0.165500 0.778125
+v 0.097025 -0.189277 0.778125
+v 0.103995 -0.185726 0.778125
+v 0.109525 -0.180195 0.778125
+v 0.113076 -0.173226 0.778125
+v 0.089300 0.190500 0.778125
+v 0.114300 0.165500 0.778125
+v 0.097025 0.189276 0.778125
+v 0.103995 0.185725 0.778125
+v 0.109525 0.180195 0.778125
+v 0.113076 0.173225 0.778125
+v -0.114300 -0.165500 0.778125
+v -0.089300 -0.190500 0.778125
+v -0.113076 -0.173226 0.778125
+v -0.109525 -0.180195 0.778125
+v -0.103995 -0.185726 0.778125
+v -0.097025 -0.189277 0.778125
+v -0.089300 0.190500 0.778125
+v -0.114300 0.165500 0.778125
+v -0.097025 0.189276 0.778125
+v -0.103995 0.185725 0.778125
+v -0.109525 0.180195 0.778125
+v -0.113076 0.173225 0.778125
+vt 1.000000 0.934383
+vt 0.994647 0.954660
+vt 0.979114 0.972952
+vt 0.954920 0.987468
+vt 0.924433 0.996788
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.075567 0.996788
+vt 0.045080 0.987468
+vt 0.020886 0.972952
+vt 0.005352 0.954660
+vt -0.000000 0.934383
+vt -0.000000 0.065617
+vt 0.005352 0.045340
+vt 0.020886 0.027048
+vt 0.045080 0.012532
+vt 0.075567 0.003212
+vt 0.109361 -0.000000
+vt 0.890639 -0.000000
+vt 0.924433 0.003212
+vt 0.954920 0.012532
+vt 0.979114 0.027048
+vt 0.994647 0.045340
+vt 1.000000 0.065617
+vn 0.0000 0.0000 -1.0000
+g Cube_Cube_None
+s off
+f 20/1/1 24/2/1 23/3/1 22/4/1 21/5/1 19/6/1 7/7/1 9/8/1 10/9/1 11/10/1 12/11/1 8/12/1 2/13/1 6/14/1 5/15/1 4/16/1 3/17/1 1/18/1 14/19/1 18/20/1 17/21/1 16/22/1 15/23/1 13/24/1
diff --git a/street_signs/models/street_signs_generic_sign_9x15_onpole.obj b/street_signs/models/street_signs_generic_sign_9x15_onpole.obj
new file mode 100644
index 0000000..f19b244
--- /dev/null
+++ b/street_signs/models/street_signs_generic_sign_9x15_onpole.obj
@@ -0,0 +1,487 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.089300 -0.843750 -0.190500
+v 0.114300 -0.843750 -0.165500
+v 0.097025 -0.843750 -0.189276
+v 0.103995 -0.843750 -0.185725
+v 0.109525 -0.843750 -0.180195
+v 0.113076 -0.843750 -0.173225
+v 0.114300 -0.793750 -0.165500
+v 0.089300 -0.793750 -0.190500
+v 0.113076 -0.793750 -0.173225
+v 0.109525 -0.793750 -0.180195
+v 0.103995 -0.793750 -0.185725
+v 0.097025 -0.793750 -0.189276
+v 0.114300 -0.843750 0.165500
+v 0.089300 -0.843750 0.190500
+v 0.113076 -0.843750 0.173225
+v 0.109525 -0.843750 0.180195
+v 0.103995 -0.843750 0.185725
+v 0.097025 -0.843750 0.189276
+v 0.089300 -0.793750 0.190500
+v 0.114300 -0.793750 0.165500
+v 0.097025 -0.793750 0.189276
+v 0.103995 -0.793750 0.185725
+v 0.109525 -0.793750 0.180195
+v 0.113076 -0.793750 0.173225
+v -0.114300 -0.843750 -0.165500
+v -0.089300 -0.843750 -0.190500
+v -0.113076 -0.843750 -0.173225
+v -0.109525 -0.843750 -0.180195
+v -0.103995 -0.843750 -0.185725
+v -0.097025 -0.843750 -0.189276
+v -0.089300 -0.793750 -0.190500
+v -0.114300 -0.793750 -0.165500
+v -0.097025 -0.793750 -0.189276
+v -0.103995 -0.793750 -0.185725
+v -0.109525 -0.793750 -0.180195
+v -0.113076 -0.793750 -0.173225
+v -0.089300 -0.843750 0.190500
+v -0.114300 -0.843750 0.165500
+v -0.097025 -0.843750 0.189276
+v -0.103995 -0.843750 0.185725
+v -0.109525 -0.843750 0.180195
+v -0.113076 -0.843750 0.173225
+v -0.114300 -0.793750 0.165500
+v -0.089300 -0.793750 0.190500
+v -0.113076 -0.793750 0.173225
+v -0.109525 -0.793750 0.180195
+v -0.103995 -0.793750 0.185725
+v -0.097025 -0.793750 0.189276
+v 0.089300 -0.843750 -0.190500
+v 0.114300 -0.843750 -0.165500
+v 0.097025 -0.843750 -0.189276
+v 0.103995 -0.843750 -0.185725
+v 0.109525 -0.843750 -0.180195
+v 0.113076 -0.843750 -0.173225
+v 0.089300 -0.793750 -0.190500
+v 0.114300 -0.793750 -0.165500
+v 0.097025 -0.793750 -0.189276
+v 0.103995 -0.793750 -0.185725
+v 0.109525 -0.793750 -0.180195
+v 0.113076 -0.793750 -0.173225
+v 0.089300 -0.843750 0.190500
+v 0.114300 -0.843750 0.165500
+v 0.097025 -0.843750 0.189276
+v 0.103995 -0.843750 0.185725
+v 0.109525 -0.843750 0.180195
+v 0.113076 -0.843750 0.173225
+v 0.089300 -0.793750 0.190500
+v 0.114300 -0.793750 0.165500
+v 0.097025 -0.793750 0.189276
+v 0.103995 -0.793750 0.185725
+v 0.109525 -0.793750 0.180195
+v 0.113076 -0.793750 0.173225
+v -0.089300 -0.843750 -0.190500
+v -0.114300 -0.843750 -0.165500
+v -0.097025 -0.843750 -0.189276
+v -0.103995 -0.843750 -0.185725
+v -0.109525 -0.843750 -0.180195
+v -0.113076 -0.843750 -0.173225
+v -0.114300 -0.793750 -0.165500
+v -0.089300 -0.793750 -0.190500
+v -0.113076 -0.793750 -0.173225
+v -0.109525 -0.793750 -0.180195
+v -0.103995 -0.793750 -0.185725
+v -0.097025 -0.793750 -0.189276
+v -0.089300 -0.843750 0.190500
+v -0.114300 -0.843750 0.165500
+v -0.097025 -0.843750 0.189276
+v -0.103995 -0.843750 0.185725
+v -0.109525 -0.843750 0.180195
+v -0.113076 -0.843750 0.173225
+v -0.089300 -0.793750 0.190500
+v -0.114300 -0.793750 0.165500
+v -0.097025 -0.793750 0.189276
+v -0.103995 -0.793750 0.185725
+v -0.109525 -0.793750 0.180195
+v -0.113076 -0.793750 0.173225
+vt 0.500000 0.934383
+vt 0.497324 0.954660
+vt 0.489557 0.972952
+vt 0.477460 0.987468
+vt 0.462217 0.996788
+vt 0.445319 1.000000
+vt 0.054681 1.000000
+vt 0.037783 0.996788
+vt 0.022540 0.987468
+vt 0.010443 0.972952
+vt 0.002676 0.954660
+vt 0.000000 0.934383
+vt 0.000000 0.065617
+vt 0.002676 0.045340
+vt 0.010443 0.027048
+vt 0.022540 0.012532
+vt 0.037783 0.003212
+vt 0.054681 0.000000
+vt 0.445319 0.000000
+vt 0.462217 0.003212
+vt 0.477460 0.012532
+vt 0.489557 0.027048
+vt 0.497324 0.045340
+vt 0.500000 0.065617
+vt 0.500000 0.934383
+vt 0.502676 0.954660
+vt 0.510443 0.972952
+vt 0.522540 0.987468
+vt 0.537783 0.996788
+vt 0.554681 1.000000
+vt 0.945319 1.000000
+vt 0.962216 0.996788
+vt 0.977460 0.987468
+vt 0.989557 0.972952
+vt 0.997324 0.954660
+vt 1.000000 0.934383
+vt 1.000000 0.065617
+vt 0.997324 0.045340
+vt 0.989557 0.027048
+vt 0.977460 0.012532
+vt 0.962216 0.003212
+vt 0.945319 0.000000
+vt 0.554681 0.000000
+vt 0.537783 0.003212
+vt 0.522540 0.012532
+vt 0.510443 0.027048
+vt 0.502676 0.045340
+vt 0.500000 0.065617
+vt 0.109361 0.000000
+vt 0.109361 0.999996
+vt 0.890639 0.999996
+vt 0.890639 0.000000
+vt 0.065617 0.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.065617 1.000000
+vt 0.890639 0.000003
+vt 0.890639 1.000000
+vt 0.109361 1.000000
+vt 0.109361 0.000003
+vt 0.075567 1.000000
+vt 0.075567 0.000003
+vt 0.045080 1.000000
+vt 0.045080 0.000003
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 1.000000
+vt 0.045340 0.000000
+vt 0.065617 1.000000
+vt 0.065617 0.000000
+vt 0.075567 0.000000
+vt 0.075567 0.999996
+vt 0.045080 0.000000
+vt 0.045080 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 0.000000
+vt 0.954660 1.000000
+vt 0.934383 0.000000
+vt 0.934383 1.000000
+vt 0.924433 0.999996
+vt 0.924433 0.000000
+vt 0.954920 0.999996
+vt 0.954920 0.000000
+vt 0.972952 1.000000
+vt 0.972952 0.000000
+vt 0.954660 1.000000
+vt 0.954660 0.000000
+vt 0.924433 0.000003
+vt 0.924433 1.000000
+vt 0.954920 0.000003
+vt 0.954920 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.027048 1.000000
+vt 0.027048 0.000000
+vt 0.045340 0.000000
+vt 0.045340 1.000000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 0.0000
+g Cube_Cube_front-back
+s off
+f 92/1/1 96/2/1 95/3/1 94/4/1 93/5/1 91/6/1 67/7/1 69/8/1 70/9/1 71/10/1 72/11/1 68/12/1 56/13/1 60/14/1 59/15/1 58/16/1 57/17/1 55/18/1 80/19/1 84/20/1 83/21/1 82/22/1 81/23/1 79/24/1
+f 62/25/2 66/26/2 65/27/2 64/28/2 63/29/2 61/30/2 85/31/2 87/32/2 88/33/2 89/34/2 90/35/2 86/36/2 74/37/2 78/38/2 77/39/2 76/40/2 75/41/2 73/42/2 49/43/2 51/44/2 52/45/2 53/46/2 54/47/2 50/48/2
+g Cube_Cube_edges
+f 14/49/3 19/50/3 44/51/3 37/52/3
+f 25/53/4 38/54/4 43/55/4 32/56/4
+f 26/57/5 31/58/5 8/59/5 1/60/5
+f 1/60/6 8/59/6 12/61/6 3/62/6
+f 3/62/7 12/61/7 11/63/7 4/64/7
+f 4/64/8 11/63/8 10/65/8 5/66/8
+f 5/66/9 10/65/9 9/67/9 6/68/9
+f 6/68/10 9/67/10 7/69/10 2/70/10
+f 19/50/11 14/49/11 18/71/11 21/72/11
+f 21/72/12 18/71/12 17/73/12 22/74/12
+f 22/74/13 17/73/13 16/75/13 23/76/13
+f 23/77/14 16/78/14 15/79/14 24/80/14
+f 24/80/15 15/79/15 13/81/15 20/82/15
+f 37/52/16 44/51/16 48/83/16 39/84/16
+f 39/84/17 48/83/17 47/85/17 40/86/17
+f 40/86/18 47/85/18 46/87/18 41/88/18
+f 41/88/19 46/87/19 45/89/19 42/90/19
+f 42/90/20 45/89/20 43/55/20 38/54/20
+f 31/58/21 26/57/21 30/91/21 33/92/21
+f 33/92/22 30/91/22 29/93/22 34/94/22
+f 34/94/23 29/93/23 28/95/23 35/96/23
+f 35/97/24 28/98/24 27/99/24 36/100/24
+f 36/100/25 27/99/25 25/53/25 32/56/25
+f 13/81/26 2/70/26 7/69/26 20/82/26
+o Cube.001
+v -0.119048 -0.843750 -0.156250
+v -0.119048 -0.875000 -0.156250
+v -0.119048 -0.843750 -0.125000
+v -0.119048 -0.875000 -0.125000
+v 0.119048 -0.843750 -0.125000
+v 0.119048 -0.843750 -0.156250
+v 0.119048 -0.875000 -0.156250
+v 0.119048 -0.875000 -0.125000
+v -0.119048 -1.117188 -0.156250
+v -0.119048 -0.843750 -0.156250
+v -0.119048 -1.117188 -0.125000
+v -0.119048 -0.843750 -0.125000
+v -0.156250 -1.117188 -0.156250
+v -0.156250 -0.843750 -0.156250
+v -0.156250 -1.117188 -0.125000
+v -0.156250 -0.843750 -0.125000
+v 0.156250 -1.117188 -0.156250
+v 0.156250 -0.843750 -0.156250
+v 0.156250 -1.117188 -0.125000
+v 0.156250 -0.843750 -0.125000
+v 0.119048 -1.117188 -0.156250
+v 0.119048 -0.843750 -0.156250
+v 0.119048 -1.117188 -0.125000
+v 0.119048 -0.843750 -0.125000
+v -0.156250 -1.156250 -0.156250
+v 0.156250 -1.156250 -0.156250
+v -0.156250 -1.156250 -0.125000
+v 0.156250 -1.156250 -0.125000
+v -0.156250 -1.117188 -0.156250
+v 0.156250 -1.117188 -0.156250
+v -0.156250 -1.117188 -0.125000
+v 0.156250 -1.117188 -0.125000
+v 0.156250 -0.843750 -0.125000
+v -0.156250 -0.843750 -0.125000
+v 0.156250 -0.843750 -0.156250
+v -0.156250 -0.843750 -0.156250
+v -0.119048 -0.843750 0.125000
+v -0.119048 -0.875000 0.125000
+v -0.119048 -0.843750 0.156250
+v -0.119048 -0.875000 0.156250
+v 0.119048 -0.843750 0.156250
+v 0.119048 -0.843750 0.125000
+v 0.119048 -0.875000 0.125000
+v 0.119048 -0.875000 0.156250
+v -0.119048 -1.117188 0.125000
+v -0.119048 -0.843750 0.125000
+v -0.119048 -1.117188 0.156250
+v -0.119048 -0.843750 0.156250
+v -0.156250 -1.117188 0.125000
+v -0.156250 -0.843750 0.125000
+v -0.156250 -1.117188 0.156250
+v -0.156250 -0.843750 0.156250
+v 0.156250 -1.117188 0.125000
+v 0.156250 -0.843750 0.125000
+v 0.156250 -1.117188 0.156250
+v 0.156250 -0.843750 0.156250
+v 0.119048 -1.117188 0.125000
+v 0.119048 -0.843750 0.125000
+v 0.119048 -1.117188 0.156250
+v 0.119048 -0.843750 0.156250
+v -0.156250 -1.156250 0.125000
+v 0.156250 -1.156250 0.125000
+v -0.156250 -1.156250 0.156250
+v 0.156250 -1.156250 0.156250
+v -0.156250 -1.117188 0.125000
+v 0.156250 -1.117188 0.125000
+v -0.156250 -1.117188 0.156250
+v 0.156250 -1.117188 0.156250
+v 0.156250 -0.843750 0.156250
+v -0.156250 -0.843750 0.156250
+v 0.156250 -0.843750 0.125000
+v -0.156250 -0.843750 0.125000
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.703125 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.156250 0.507812
+vt 0.703125 0.507812
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.703125 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.156250 0.507812
+vt 0.703125 0.507812
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 1.0000 0.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 132/101/27 131/102/27 129/103/27 130/104/27
+f 100/105/28 104/106/28 101/107/28 99/108/28
+f 97/109/29 102/110/29 103/111/29 98/112/29
+f 98/112/27 103/111/27 104/106/27 100/105/27
+f 105/113/30 106/114/30 108/115/30 107/116/30
+f 107/117/28 108/118/28 112/119/28 111/120/28
+f 111/121/31 112/122/31 110/123/31 109/124/31
+f 109/124/29 110/123/29 106/125/29 105/126/29
+f 113/127/30 114/128/30 116/129/30 115/130/30
+f 115/131/28 116/132/28 120/133/28 119/134/28
+f 119/135/31 120/136/31 118/137/31 117/138/31
+f 117/138/29 118/137/29 114/139/29 113/140/29
+f 121/141/27 122/142/27 124/143/27 123/144/27
+f 123/145/28 124/146/28 128/147/28 127/148/28
+f 127/148/32 128/147/32 126/149/32 125/150/32
+f 125/150/29 126/149/29 122/142/29 121/141/29
+f 123/151/31 127/152/31 125/153/31 121/154/31
+f 128/155/30 124/156/30 122/157/30 126/158/30
+f 168/159/27 167/160/27 165/161/27 166/162/27
+f 136/163/28 140/164/28 137/165/28 135/166/28
+f 133/167/29 138/168/29 139/169/29 134/170/29
+f 134/170/27 139/169/27 140/164/27 136/163/27
+f 141/171/30 142/172/30 144/173/30 143/174/30
+f 143/175/28 144/176/28 148/177/28 147/178/28
+f 147/179/31 148/180/31 146/181/31 145/182/31
+f 145/182/29 146/181/29 142/183/29 141/184/29
+f 149/185/30 150/186/30 152/187/30 151/188/30
+f 151/189/28 152/190/28 156/191/28 155/192/28
+f 155/193/31 156/194/31 154/195/31 153/196/31
+f 153/196/29 154/195/29 150/197/29 149/198/29
+f 157/199/27 158/200/27 160/201/27 159/202/27
+f 159/203/28 160/204/28 164/205/28 163/206/28
+f 163/206/32 164/205/32 162/207/32 161/208/32
+f 161/208/29 162/207/29 158/200/29 157/199/29
+f 159/209/31 163/210/31 161/211/31 157/212/31
+f 164/213/30 160/214/30 158/215/30 162/216/30
diff --git a/street_signs/models/street_signs_rr_grade_crossbuck.obj b/street_signs/models/street_signs_rr_grade_crossbuck.obj
new file mode 100644
index 0000000..522334a
--- /dev/null
+++ b/street_signs/models/street_signs_rr_grade_crossbuck.obj
@@ -0,0 +1,132 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube.002_Cube.002_front-back
+v 0.350230 -0.500000 0.511875
+v -0.511875 -0.500000 -0.350230
+v -0.350230 -0.500000 -0.511875
+v 0.511875 -0.500000 0.350230
+v -0.511875 -0.450000 -0.350230
+v 0.350230 -0.450000 0.511875
+v 0.511875 -0.450000 0.350230
+v -0.350230 -0.450000 -0.511875
+v -0.350230 -0.500000 0.511875
+v -0.511875 -0.500000 0.350230
+v -0.161645 -0.500000 0.000000
+v 0.000000 -0.500000 0.161645
+v -0.350230 -0.450000 0.511875
+v 0.000000 -0.450000 0.161645
+v -0.161645 -0.450000 0.000000
+v -0.511875 -0.450000 0.350230
+v 0.161645 -0.500000 -0.000000
+v -0.000000 -0.500000 -0.161645
+v 0.350230 -0.500000 -0.511875
+v 0.511875 -0.500000 -0.350230
+v -0.000000 -0.450000 -0.161645
+v 0.161645 -0.450000 -0.000000
+v 0.511875 -0.450000 -0.350230
+v 0.350230 -0.450000 -0.511875
+v 0.350230 -0.500000 0.511875
+v 0.511875 -0.500000 0.350230
+v 0.511875 -0.450000 0.350230
+v 0.350230 -0.450000 0.511875
+v -0.350230 -0.500000 -0.511875
+v -0.350230 -0.450000 -0.511875
+v -0.511875 -0.500000 -0.350230
+v -0.511875 -0.450000 -0.350230
+v 0.511875 -0.500000 -0.350230
+v 0.350230 -0.500000 -0.511875
+v 0.350230 -0.450000 -0.511875
+v 0.511875 -0.450000 -0.350230
+v -0.000000 -0.500000 -0.161645
+v -0.511875 -0.500000 0.350230
+v -0.350230 -0.500000 0.511875
+v -0.350230 -0.450000 0.511875
+v -0.511875 -0.450000 0.350230
+v 0.000000 -0.500000 0.161645
+v 0.161645 -0.500000 0.000000
+v 0.161645 -0.450000 0.000000
+v -0.161645 -0.450000 0.000000
+v -0.000000 -0.450000 -0.161645
+v -0.161645 -0.500000 0.000000
+v 0.000000 -0.450000 0.161645
+vt 0.578947 1.000000
+vt 1.000000 0.157895
+vt 0.921053 0.000000
+vt 0.500000 0.842105
+vt 0.500000 0.157895
+vt 0.078947 1.000000
+vt 0.000000 0.842105
+vt 0.421053 0.000000
+vt 0.921053 1.000000
+vt 1.000000 0.842105
+vt 0.828947 0.500000
+vt 0.750000 0.657895
+vt 0.421053 1.000000
+vt 0.250000 0.657895
+vt 0.328947 0.500000
+vt 0.500000 0.842105
+vt 0.671053 0.500000
+vt 0.750000 0.342105
+vt 0.578947 0.000000
+vt 0.500000 0.157895
+vt 0.250000 0.342105
+vt 0.171053 0.500000
+vt 0.000000 0.157895
+vt 0.078947 0.000000
+vt 0.703125 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.703125 1.000000
+vt 0.101562 0.000000
+vt 0.203125 0.000000
+vt 0.203125 1.000000
+vt 0.101562 1.000000
+vt 0.250000 0.000000
+vt 0.250000 1.000000
+vt 0.601562 0.000000
+vt 0.601562 1.000000
+vt 0.953125 0.000000
+vt 1.000001 0.000000
+vt 1.000001 1.000000
+vt 0.953125 1.000000
+vt 0.000000 0.000000
+vt 0.000000 1.000000
+vt 0.453125 0.000000
+vt 0.500000 0.000000
+vt 0.500000 1.000000
+vt 0.453125 1.000000
+vt 0.851562 1.000000
+vt 0.851562 0.000000
+vt 0.351563 1.000000
+vt 0.351563 0.000000
+vn -0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.7071 0.0000 0.7071
+vn 0.0000 0.0000 -1.0000
+vn 0.7071 0.0000 -0.7071
+vn -0.7071 0.0000 -0.7071
+vn -0.0000 0.0000 1.0000
+vn -0.7071 0.0000 0.7071
+vn 1.0000 0.0000 -0.0000
+vn -1.0000 0.0000 -0.0000
+g Cube.002_Cube.002_front-back_Cube.002_Cube.002_front-back_front-back
+s 1
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 5/5/2 6/6/2 7/7/2 8/8/2
+f 9/9/1 10/10/1 11/11/1 12/12/1
+f 13/13/2 14/14/2 15/15/2 16/16/2
+f 17/17/1 18/18/1 19/19/1 20/20/1
+f 21/21/2 22/22/2 23/23/2 24/24/2
+g Cube.002_Cube.002_front-back_Cube.002_Cube.002_front-back_edges
+f 25/25/3 26/26/3 27/27/3 28/28/3
+f 37/29/4 29/30/5 30/31/5 46/32/4
+f 29/30/6 31/33/6 32/34/6 30/31/6
+f 42/35/7 25/25/8 28/28/8 48/36/7
+f 33/37/5 34/38/5 35/39/5 36/40/5
+f 34/41/6 37/29/4 46/32/4 35/42/6
+f 38/43/8 39/44/8 40/45/8 41/46/8
+f 39/44/3 42/35/7 48/36/7 40/45/3
+f 44/47/9 43/48/9 33/37/3 36/40/3
+f 45/49/10 47/50/10 38/43/6 41/46/6
+f 31/33/8 47/50/10 45/49/10 32/34/8
+f 26/26/5 43/48/9 44/47/9 27/27/5
diff --git a/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj b/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj
new file mode 100644
index 0000000..8d9f0b4
--- /dev/null
+++ b/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj
@@ -0,0 +1,319 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube.002_Cube.002_front-back
+v 0.350230 -0.812500 0.511875
+v -0.511875 -0.812500 -0.350230
+v -0.350230 -0.812500 -0.511875
+v 0.511875 -0.812500 0.350230
+v -0.511875 -0.762500 -0.350230
+v 0.350230 -0.762500 0.511875
+v 0.511875 -0.762500 0.350230
+v -0.350230 -0.762500 -0.511875
+v -0.350230 -0.812500 0.511875
+v -0.511875 -0.812500 0.350230
+v -0.161645 -0.812500 0.000000
+v 0.000000 -0.812500 0.161645
+v -0.350230 -0.762500 0.511875
+v 0.000000 -0.762500 0.161645
+v -0.161645 -0.762500 0.000000
+v -0.511875 -0.762500 0.350230
+v 0.161645 -0.812500 -0.000000
+v -0.000000 -0.812500 -0.161645
+v 0.350230 -0.812500 -0.511875
+v 0.511875 -0.812500 -0.350230
+v -0.000000 -0.762500 -0.161645
+v 0.161645 -0.762500 -0.000000
+v 0.511875 -0.762500 -0.350230
+v 0.350230 -0.762500 -0.511875
+v 0.350230 -0.812500 0.511875
+v 0.511875 -0.812500 0.350230
+v 0.511875 -0.762500 0.350230
+v 0.350230 -0.762500 0.511875
+v -0.350230 -0.812500 -0.511875
+v -0.350230 -0.762500 -0.511875
+v -0.511875 -0.812500 -0.350230
+v -0.511875 -0.762500 -0.350230
+v 0.511875 -0.812500 -0.350230
+v 0.350230 -0.812500 -0.511875
+v 0.350230 -0.762500 -0.511875
+v 0.511875 -0.762500 -0.350230
+v 0.000000 -0.812500 -0.161645
+v -0.511875 -0.812500 0.350230
+v -0.350230 -0.812500 0.511875
+v -0.350230 -0.762500 0.511875
+v -0.511875 -0.762500 0.350230
+v 0.000000 -0.812500 0.161645
+v 0.161645 -0.812500 0.000000
+v 0.161645 -0.762500 0.000000
+v -0.161645 -0.762500 0.000000
+v 0.000000 -0.762500 -0.161645
+v -0.161645 -0.812500 0.000000
+v 0.000000 -0.762500 0.161645
+vt 0.578947 1.000000
+vt 1.000000 0.157895
+vt 0.921053 0.000000
+vt 0.500000 0.842105
+vt 0.500000 0.157895
+vt 0.078947 1.000000
+vt 0.000000 0.842105
+vt 0.421053 0.000000
+vt 0.921053 1.000000
+vt 1.000000 0.842105
+vt 0.828947 0.500000
+vt 0.750000 0.657895
+vt 0.421053 1.000000
+vt 0.250000 0.657895
+vt 0.328947 0.500000
+vt 0.500000 0.842105
+vt 0.671053 0.500000
+vt 0.750000 0.342105
+vt 0.578947 0.000000
+vt 0.500000 0.157895
+vt 0.250000 0.342105
+vt 0.171053 0.500000
+vt 0.000000 0.157895
+vt 0.078947 0.000000
+vt 0.703125 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.703125 1.000000
+vt 0.101562 0.000000
+vt 0.203125 0.000000
+vt 0.203125 1.000000
+vt 0.101562 1.000000
+vt 0.250000 0.000000
+vt 0.250000 1.000000
+vt 0.601562 0.000000
+vt 0.601562 1.000000
+vt 0.953125 0.000000
+vt 1.000001 0.000000
+vt 1.000001 1.000000
+vt 0.953125 1.000000
+vt 0.000000 0.000000
+vt 0.000000 1.000000
+vt 0.453125 0.000000
+vt 0.500000 0.000000
+vt 0.500000 1.000000
+vt 0.453125 1.000000
+vt 0.851562 1.000000
+vt 0.851562 0.000000
+vt 0.351563 1.000000
+vt 0.351563 0.000000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.7071 0.0000 0.7071
+vn 0.0000 0.0000 -1.0000
+vn 0.7071 0.0000 -0.7071
+vn -0.7071 0.0000 -0.7071
+vn -0.0000 0.0000 1.0000
+vn -0.7071 0.0000 0.7071
+vn 1.0000 0.0000 -0.0000
+vn -1.0000 0.0000 -0.0000
+g Cube.002_Cube.002_front-back_Cube.002_Cube.002_front-back_front-back
+s 1
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 5/5/2 6/6/2 7/7/2 8/8/2
+f 9/9/1 10/10/1 11/11/1 12/12/1
+f 13/13/2 14/14/2 15/15/2 16/16/2
+f 17/17/1 18/18/1 19/19/1 20/20/1
+f 21/21/2 22/22/2 23/23/2 24/24/2
+g Cube.002_Cube.002_front-back_Cube.002_Cube.002_front-back_edges
+f 25/25/3 26/26/3 27/27/3 28/28/3
+f 37/29/4 29/30/5 30/31/5 46/32/4
+f 29/30/6 31/33/6 32/34/6 30/31/6
+f 42/35/7 25/25/8 28/28/8 48/36/7
+f 33/37/5 34/38/5 35/39/5 36/40/5
+f 34/41/6 37/29/4 46/32/4 35/42/6
+f 38/43/8 39/44/8 40/45/8 41/46/8
+f 39/44/3 42/35/7 48/36/7 40/45/3
+f 44/47/9 43/48/9 33/37/3 36/40/3
+f 45/49/10 47/50/10 38/43/6 41/46/6
+f 31/33/8 47/50/10 45/49/10 32/34/8
+f 26/26/5 43/48/9 44/47/9 27/27/5
+o Cube_Cube.001
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v 0.164062 -1.125000 0.125000
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.812500 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.093750 0.593750
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.093750 0.593750
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.703125 0.507812
+vt 0.156250 0.507812
+vt 0.156250 0.093750
+vt 0.703125 0.093750
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn -0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube_Cube.001_pole_mount
+s off
+f 91/51/11 49/52/11 50/53/11 92/54/11
+f 52/55/12 51/56/12 54/57/12 53/58/12
+f 50/53/13 54/57/13 51/59/13 92/60/13
+f 91/61/14 52/62/14 53/58/14 49/52/14
+f 49/52/15 53/58/15 54/57/15 50/53/15
+f 55/63/12 91/64/12 57/65/12 56/66/12
+f 56/67/13 57/68/13 59/69/13 85/70/13
+f 85/71/11 59/72/11 58/73/11 84/74/11
+f 84/74/14 58/73/14 91/75/14 55/76/14
+f 60/77/12 61/78/12 92/79/12 62/80/12
+f 62/81/13 92/82/13 66/83/13 65/84/13
+f 65/85/11 66/86/11 64/87/11 63/88/11
+f 63/88/14 64/87/14 61/89/14 60/90/14
+f 67/91/12 68/92/12 70/93/12 69/94/12
+f 69/95/13 70/96/13 73/97/13 72/98/13
+f 72/99/11 73/100/11 52/101/11 71/102/11
+f 71/102/14 52/101/14 68/103/14 67/104/14
+f 90/105/12 74/106/12 76/107/12 75/108/12
+f 75/109/13 76/110/13 51/111/13 79/112/13
+f 79/113/11 51/114/11 78/115/11 77/116/11
+f 77/116/14 78/115/14 74/117/14 90/118/14
+f 80/119/15 81/120/15 83/121/15 82/122/15
+f 82/123/13 83/124/13 69/125/13 85/126/13
+f 85/126/16 69/125/16 67/127/16 84/128/16
+f 84/128/14 67/127/14 81/120/14 80/119/14
+f 82/129/11 85/71/11 84/74/11 80/130/11
+f 69/94/12 83/131/12 81/132/12 67/91/12
+f 86/133/15 87/134/15 89/135/15 88/136/15
+f 88/137/13 89/138/13 75/139/13 65/140/13
+f 65/140/16 75/139/16 90/141/16 63/142/16
+f 63/142/14 90/141/14 87/134/14 86/133/14
+f 88/143/11 65/85/11 63/88/11 86/144/11
+f 75/108/12 89/145/12 87/146/12 90/105/12
+f 91/147/15 52/148/15 51/149/15 92/150/15
diff --git a/street_signs/models/street_signs_rr_grade_crossing_advance.obj b/street_signs/models/street_signs_rr_grade_crossing_advance.obj
new file mode 100644
index 0000000..8fa5857
--- /dev/null
+++ b/street_signs/models/street_signs_rr_grade_crossing_advance.obj
@@ -0,0 +1,524 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.353395 -0.500000 -0.290024
+v 0.353395 -0.450000 -0.290024
+v 0.380121 -0.500000 -0.253988
+v 0.380121 -0.450000 -0.253988
+v -0.044810 -0.500000 -0.454966
+v -0.044810 -0.450000 -0.454966
+v 0.000000 -0.500000 -0.457167
+v 0.000000 -0.450000 -0.457167
+v 0.323266 -0.500000 -0.323266
+v 0.323267 -0.450000 -0.323266
+v 0.044811 -0.500000 -0.454966
+v 0.044811 -0.450000 -0.454966
+v -0.044810 -0.500000 0.454966
+v -0.044810 -0.450000 0.454966
+v -0.089189 -0.500000 0.448383
+v -0.089189 -0.450000 0.448383
+v -0.403186 -0.500000 0.215507
+v -0.403186 -0.450000 0.215507
+v -0.380121 -0.500000 0.253989
+v -0.380121 -0.450000 0.253989
+v 0.000000 -0.500000 0.457167
+v 0.000000 -0.450000 0.457167
+v -0.353395 -0.500000 0.290024
+v -0.353395 -0.450000 0.290024
+v 0.132709 -0.500000 -0.437482
+v 0.132709 -0.450000 -0.437482
+v 0.437482 -0.500000 -0.132709
+v 0.437482 -0.450000 -0.132709
+v 0.089189 -0.500000 -0.448383
+v 0.089189 -0.450000 -0.448383
+v 0.174951 -0.500000 -0.422367
+v 0.174951 -0.450000 -0.422367
+v -0.089189 -0.500000 -0.448383
+v -0.089189 -0.450000 -0.448383
+v -0.215507 -0.500000 -0.403186
+v -0.215507 -0.450000 -0.403186
+v -0.174950 -0.500000 -0.422368
+v -0.174950 -0.450000 -0.422368
+v -0.132708 -0.500000 -0.437482
+v -0.132708 -0.450000 -0.437482
+v 0.403186 -0.500000 -0.215507
+v 0.403186 -0.450000 -0.215507
+v 0.422368 -0.500000 -0.174950
+v 0.422368 -0.450000 -0.174950
+v 0.448383 -0.500000 -0.089189
+v 0.448383 -0.450000 -0.089189
+v 0.454966 -0.500000 -0.044810
+v 0.454966 -0.450000 -0.044810
+v -0.323266 -0.500000 0.323266
+v -0.323266 -0.450000 0.323266
+v -0.290024 -0.500000 0.353395
+v -0.290024 -0.450000 0.353395
+v -0.132709 -0.500000 0.437482
+v -0.132709 -0.450000 0.437482
+v -0.253989 -0.500000 0.380121
+v -0.253989 -0.450000 0.380121
+v 0.290024 -0.500000 -0.353395
+v 0.290024 -0.450000 -0.353395
+v 0.253989 -0.500000 -0.380121
+v 0.253989 -0.450000 -0.380121
+v 0.215508 -0.500000 -0.403185
+v 0.215508 -0.450000 -0.403185
+v -0.323266 -0.500000 -0.323266
+v -0.323266 -0.450000 -0.323266
+v -0.290024 -0.500000 -0.353395
+v -0.290024 -0.450000 -0.353395
+v -0.253988 -0.500000 -0.380121
+v -0.253988 -0.450000 -0.380121
+v 0.044812 -0.500000 0.454966
+v 0.044812 -0.450000 0.454966
+v 0.089190 -0.500000 0.448383
+v 0.089190 -0.450000 0.448383
+v -0.422368 -0.500000 -0.174950
+v -0.422368 -0.450000 -0.174950
+v -0.437482 -0.500000 -0.132709
+v -0.437482 -0.450000 -0.132709
+v 0.380121 -0.500000 0.253988
+v 0.380121 -0.450000 0.253988
+v 0.403186 -0.500000 0.215507
+v 0.403186 -0.450000 0.215507
+v 0.448383 -0.500000 0.089189
+v 0.448383 -0.450000 0.089189
+v 0.353396 -0.500000 0.290023
+v 0.353396 -0.450000 0.290023
+v 0.323267 -0.500000 0.323265
+v 0.323267 -0.450000 0.323265
+v 0.290025 -0.500000 0.353394
+v 0.290025 -0.450000 0.353394
+v 0.174952 -0.500000 0.422367
+v 0.174952 -0.450000 0.422367
+v 0.215508 -0.500000 0.403185
+v 0.215508 -0.450000 0.403185
+v 0.422368 -0.500000 0.174950
+v 0.422368 -0.450000 0.174950
+v 0.437482 -0.500000 0.132708
+v 0.437482 -0.450000 0.132708
+v 0.454966 -0.500000 0.044810
+v 0.454966 -0.450000 0.044810
+v 0.457167 -0.500000 -0.000000
+v 0.457167 -0.450000 -0.000000
+v 0.132710 -0.500000 0.437481
+v 0.132710 -0.450000 0.437481
+v -0.457167 -0.500000 -0.000000
+v -0.457167 -0.450000 -0.000000
+v -0.380121 -0.500000 -0.253989
+v -0.380121 -0.450000 -0.253989
+v -0.353395 -0.500000 -0.290024
+v -0.353395 -0.450000 -0.290024
+v -0.454966 -0.500000 0.044810
+v -0.454966 -0.450000 0.044810
+v -0.422368 -0.500000 0.174950
+v -0.422368 -0.450000 0.174950
+v 0.253989 -0.500000 0.380120
+v 0.253989 -0.450000 0.380120
+v -0.174950 -0.500000 0.422368
+v -0.174950 -0.450000 0.422368
+v -0.437482 -0.500000 0.132709
+v -0.437482 -0.450000 0.132709
+v -0.448383 -0.500000 -0.089189
+v -0.448383 -0.450000 -0.089189
+v -0.403186 -0.500000 -0.215507
+v -0.403186 -0.450000 -0.215507
+v -0.454966 -0.500000 -0.044810
+v -0.454966 -0.450000 -0.044810
+v -0.448383 -0.500000 0.089189
+v -0.448383 -0.450000 0.089189
+v -0.215507 -0.500000 0.403186
+v -0.215507 -0.450000 0.403186
+vt 0.999982 0.500000
+vt 0.998778 0.450995
+vt 0.995179 0.402462
+vt 0.989218 0.354868
+vt 0.980953 0.308672
+vt 0.970464 0.264318
+vt 0.957852 0.222235
+vt 0.943239 0.182826
+vt 0.926764 0.146472
+vt 0.908587 0.113522
+vt 0.888882 0.084295
+vt 0.867841 0.059071
+vt 0.845664 0.038093
+vt 0.822566 0.021564
+vt 0.798769 0.009642
+vt 0.774502 0.002443
+vt 0.750000 0.000036
+vt 0.725497 0.002443
+vt 0.701231 0.009643
+vt 0.677434 0.021564
+vt 0.654336 0.038093
+vt 0.632159 0.059071
+vt 0.611117 0.084295
+vt 0.591413 0.113523
+vt 0.573236 0.146472
+vt 0.556761 0.182826
+vt 0.542147 0.222235
+vt 0.529535 0.264319
+vt 0.519047 0.308672
+vt 0.510782 0.354868
+vt 0.504821 0.402462
+vt 0.501222 0.450995
+vt 0.500018 0.500000
+vt 0.501222 0.549005
+vt 0.504821 0.597538
+vt 0.510782 0.645131
+vt 0.519047 0.691327
+vt 0.529535 0.735681
+vt 0.542147 0.777765
+vt 0.556761 0.817173
+vt 0.573236 0.853527
+vt 0.591413 0.886477
+vt 0.611117 0.915704
+vt 0.632159 0.940928
+vt 0.654335 0.961906
+vt 0.677433 0.978435
+vt 0.701230 0.990357
+vt 0.725497 0.997556
+vt 0.750000 0.999964
+vt 0.774503 0.997557
+vt 0.798769 0.990358
+vt 0.822566 0.978436
+vt 0.845664 0.961907
+vt 0.867841 0.940929
+vt 0.888883 0.915705
+vt 0.908587 0.886477
+vt 0.926764 0.853528
+vt 0.943239 0.817174
+vt 0.957853 0.777765
+vt 0.970465 0.735681
+vt 0.980953 0.691328
+vt 0.989218 0.645132
+vt 0.995179 0.597538
+vt 0.998778 0.549005
+vt 0.001222 0.450995
+vt 0.004821 0.402462
+vt 0.010782 0.354868
+vt 0.019047 0.308672
+vt 0.029535 0.264319
+vt 0.042147 0.222235
+vt 0.056761 0.182826
+vt 0.073236 0.146472
+vt 0.091413 0.113523
+vt 0.111117 0.084295
+vt 0.132159 0.059071
+vt 0.154336 0.038093
+vt 0.177434 0.021564
+vt 0.201231 0.009643
+vt 0.225497 0.002443
+vt 0.250000 0.000036
+vt 0.274502 0.002443
+vt 0.298769 0.009642
+vt 0.322566 0.021564
+vt 0.345664 0.038093
+vt 0.367841 0.059071
+vt 0.388883 0.084295
+vt 0.408587 0.113522
+vt 0.426764 0.146472
+vt 0.443239 0.182826
+vt 0.457852 0.222235
+vt 0.470464 0.264318
+vt 0.480953 0.308672
+vt 0.489218 0.354868
+vt 0.495179 0.402462
+vt 0.498778 0.450995
+vt 0.499982 0.500000
+vt 0.498778 0.549005
+vt 0.495179 0.597538
+vt 0.489218 0.645132
+vt 0.480953 0.691328
+vt 0.470464 0.735681
+vt 0.457853 0.777765
+vt 0.443239 0.817174
+vt 0.426764 0.853528
+vt 0.408587 0.886478
+vt 0.388883 0.915705
+vt 0.367841 0.940929
+vt 0.345664 0.961907
+vt 0.322566 0.978436
+vt 0.298769 0.990358
+vt 0.274503 0.997557
+vt 0.250000 0.999964
+vt 0.225497 0.997557
+vt 0.201230 0.990357
+vt 0.177433 0.978435
+vt 0.154335 0.961906
+vt 0.132159 0.940928
+vt 0.111117 0.915704
+vt 0.091413 0.886477
+vt 0.073236 0.853527
+vt 0.056761 0.817173
+vt 0.042147 0.777765
+vt 0.029535 0.735681
+vt 0.019047 0.691327
+vt 0.010782 0.645131
+vt 0.004821 0.597538
+vt 0.001222 0.549005
+vt 0.000018 0.500000
+vt 0.859376 0.000000
+vt 0.874997 0.000000
+vt 0.874997 1.000000
+vt 0.859376 1.000000
+vt 0.906252 0.000000
+vt 0.921873 0.000000
+vt 0.921873 1.000000
+vt 0.906252 1.000000
+vt 0.406250 0.000000
+vt 0.421874 0.000000
+vt 0.421874 1.000000
+vt 0.406250 1.000000
+vt 0.984376 0.000000
+vt 0.999998 0.000000
+vt 0.999998 1.000000
+vt 0.984376 1.000000
+vt 0.046875 0.000000
+vt 0.062500 0.000000
+vt 0.062500 1.000000
+vt 0.046875 1.000000
+vt 0.265625 0.000000
+vt 0.281249 0.000000
+vt 0.281249 1.000000
+vt 0.265625 1.000000
+vt 0.375000 0.000000
+vt 0.390624 0.000000
+vt 0.390624 1.000000
+vt 0.375000 1.000000
+vt 0.078125 0.000000
+vt 0.078125 1.000000
+vt 0.765624 0.000000
+vt 0.781251 0.000000
+vt 0.781251 1.000000
+vt 0.765624 1.000000
+vt 0.140625 0.000000
+vt 0.156250 0.000000
+vt 0.156250 1.000000
+vt 0.140625 1.000000
+vt 0.437499 0.000000
+vt 0.453126 0.000000
+vt 0.453126 1.000000
+vt 0.437499 1.000000
+vt 0.562499 0.000000
+vt 0.578126 0.000000
+vt 0.578126 1.000000
+vt 0.562499 1.000000
+vt 0.031250 0.000000
+vt 0.031250 1.000000
+vt 0.343750 0.000000
+vt 0.359376 0.000000
+vt 0.359376 1.000000
+vt 0.343750 1.000000
+vt 0.484374 0.000000
+vt 0.499999 0.000000
+vt 0.499999 1.000000
+vt 0.484374 1.000000
+vt 0.218749 0.000000
+vt 0.234375 0.000000
+vt 0.234375 1.000000
+vt 0.218749 1.000000
+vt 0.249999 0.000000
+vt 0.249999 1.000000
+vt 0.953128 0.000000
+vt 0.968749 0.000000
+vt 0.968749 1.000000
+vt 0.953128 1.000000
+vt 0.734375 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.734375 1.000000
+vt 0.671875 0.000000
+vt 0.687499 0.000000
+vt 0.687499 1.000000
+vt 0.671875 1.000000
+vt 0.796876 0.000000
+vt 0.796876 1.000000
+vt 0.171875 0.000000
+vt 0.187500 0.000000
+vt 0.187500 1.000000
+vt 0.171875 1.000000
+vt 0.593751 0.000000
+vt 0.609375 0.000000
+vt 0.609375 1.000000
+vt 0.593751 1.000000
+vt 0.515626 0.000000
+vt 0.531250 0.000000
+vt 0.531250 1.000000
+vt 0.515626 1.000000
+vt 0.843749 0.000000
+vt 0.843749 1.000000
+vt 0.718751 0.000000
+vt 0.718751 1.000000
+vt 0.203125 0.000000
+vt 0.203125 1.000000
+vt 0.624999 0.000000
+vt 0.640627 0.000000
+vt 0.640627 1.000000
+vt 0.624999 1.000000
+vt 0.812500 0.000000
+vt 0.828127 0.000000
+vt 0.828127 1.000000
+vt 0.812500 1.000000
+vt 0.296875 0.000000
+vt 0.312500 0.000000
+vt 0.312500 1.000000
+vt 0.296875 1.000000
+vt 0.656251 0.000000
+vt 0.656251 1.000000
+vt 0.937500 0.000000
+vt 0.937500 1.000000
+vt 0.093750 0.000000
+vt 0.109375 0.000000
+vt 0.109375 1.000000
+vt 0.093750 1.000000
+vt 0.468750 0.000000
+vt 0.468750 1.000000
+vt 0.328125 0.000000
+vt 0.328125 1.000000
+vt 0.546875 0.000000
+vt 0.546875 1.000000
+vt 0.125000 0.000000
+vt 0.125000 1.000000
+vt 0.703127 0.000000
+vt 0.703127 1.000000
+vt 0.000000 0.000000
+vt 0.015625 0.000000
+vt 0.015625 1.000000
+vt 0.000000 1.000000
+vt 0.890624 0.000000
+vt 0.890624 1.000000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.7410 -0.0000 -0.6716
+vn 0.5141 -0.0000 -0.8577
+vn -0.5141 -0.0000 0.8577
+vn 0.0491 -0.0000 -0.9988
+vn -0.3369 -0.0000 -0.9415
+vn -0.9892 -0.0000 0.1467
+vn -0.6716 -0.0000 0.7410
+vn -0.4276 -0.0000 -0.9040
+vn 0.9892 -0.0000 -0.1467
+vn -0.8032 -0.0000 -0.5957
+vn -0.3369 -0.0000 0.9415
+vn 0.4276 0.0000 0.9040
+vn -0.2430 -0.0000 -0.9700
+vn -0.8032 0.0000 0.5957
+vn -0.0491 -0.0000 0.9988
+vn -0.9892 0.0000 -0.1467
+vn -0.9988 0.0000 -0.0491
+vn -0.9988 0.0000 0.0491
+vn 0.2430 -0.0000 -0.9700
+vn 0.9988 0.0000 0.0491
+vn 0.9040 0.0000 0.4276
+vn 0.9700 0.0000 -0.2430
+vn -0.9040 0.0000 -0.4276
+vn 0.5957 0.0000 0.8032
+vn 0.1467 -0.0000 0.9892
+vn 0.8032 -0.0000 -0.5957
+vn 0.9892 0.0000 0.1467
+vn -0.9415 0.0000 -0.3369
+vn 0.7410 0.0000 0.6716
+vn 0.9040 0.0000 -0.4276
+vn -0.9415 0.0000 0.3369
+vn 0.8032 -0.0000 0.5957
+vn 0.4276 -0.0000 -0.9040
+vn -0.5957 -0.0000 -0.8032
+vn -0.1467 -0.0000 0.9892
+vn 0.9415 0.0000 -0.3369
+vn 0.5141 0.0000 0.8577
+vn -0.8577 0.0000 -0.5141
+vn -0.5957 -0.0000 0.8032
+vn -0.4276 -0.0000 0.9040
+vn -0.8577 -0.0000 0.5141
+vn -0.9040 -0.0000 0.4276
+vn 0.3369 -0.0000 0.9415
+vn 0.3369 -0.0000 -0.9415
+vn 0.8577 -0.0000 0.5141
+vn -0.6716 0.0000 -0.7410
+vn -0.9700 0.0000 0.2430
+vn 0.2430 -0.0000 0.9700
+vn -0.7410 0.0000 0.6716
+vn -0.5141 0.0000 -0.8577
+vn 0.9700 0.0000 0.2430
+vn -0.0491 -0.0000 -0.9988
+vn 0.1467 0.0000 -0.9892
+vn -0.2430 0.0000 0.9700
+vn -0.9700 0.0000 -0.2430
+vn 0.5957 -0.0000 -0.8032
+vn 0.6716 -0.0000 -0.7409
+vn 0.0491 -0.0000 0.9988
+vn -0.7410 -0.0000 -0.6716
+vn -0.1467 -0.0000 -0.9892
+vn 0.9988 0.0000 -0.0491
+vn 0.8577 0.0000 -0.5141
+vn 0.9415 -0.0000 0.3369
+vn 0.6716 0.0000 0.7409
+g Cube_Cube_front-back
+s off
+f 103/1/1 123/2/1 119/3/1 75/4/1 73/5/1 121/6/1 105/7/1 107/8/1 63/9/1 65/10/1 67/11/1 35/12/1 37/13/1 39/14/1 33/15/1 5/16/1 7/17/1 11/18/1 29/19/1 25/20/1 31/21/1 61/22/1 59/23/1 57/24/1 9/25/1 1/26/1 3/27/1 41/28/1 43/29/1 27/30/1 45/31/1 47/32/1 99/33/1 97/34/1 81/35/1 95/36/1 93/37/1 79/38/1 77/39/1 83/40/1 85/41/1 87/42/1 113/43/1 91/44/1 89/45/1 101/46/1 71/47/1 69/48/1 21/49/1 13/50/1 15/51/1 53/52/1 115/53/1 127/54/1 55/55/1 51/56/1 49/57/1 23/58/1 19/59/1 17/60/1 111/61/1 117/62/1 125/63/1 109/64/1
+f 48/65/2 46/66/2 28/67/2 44/68/2 42/69/2 4/70/2 2/71/2 10/72/2 58/73/2 60/74/2 62/75/2 32/76/2 26/77/2 30/78/2 12/79/2 8/80/2 6/81/2 34/82/2 40/83/2 38/84/2 36/85/2 68/86/2 66/87/2 64/88/2 108/89/2 106/90/2 122/91/2 74/92/2 76/93/2 120/94/2 124/95/2 104/96/2 110/97/2 126/98/2 118/99/2 112/100/2 18/101/2 20/102/2 24/103/2 50/104/2 52/105/2 56/106/2 128/107/2 116/108/2 54/109/2 16/110/2 14/111/2 22/112/2 70/113/2 72/114/2 102/115/2 90/116/2 92/117/2 114/118/2 88/119/2 86/120/2 84/121/2 78/122/2 80/123/2 94/124/2 96/125/2 82/126/2 98/127/2 100/128/2
+g Cube_Cube_front-back_street_signs_sign_edge.png
+f 1/129/3 9/130/3 10/131/3 2/132/3
+f 59/133/4 61/134/4 62/135/4 60/136/4
+f 55/137/5 127/138/5 128/139/5 56/140/5
+f 11/141/6 7/142/6 8/143/6 12/144/6
+f 39/145/7 37/146/7 38/147/7 40/148/7
+f 109/149/8 125/150/8 126/151/8 110/152/8
+f 49/153/9 51/154/9 52/155/9 50/156/9
+f 37/146/10 35/157/10 36/158/10 38/147/10
+f 47/159/11 45/160/11 46/161/11 48/162/11
+f 107/163/12 105/164/12 106/165/12 108/166/12
+f 115/167/13 53/168/13 54/169/13 116/170/13
+f 89/171/14 91/172/14 92/173/14 90/174/14
+f 33/175/15 39/145/15 40/148/15 34/176/15
+f 19/177/16 23/178/16 24/179/16 20/180/16
+f 13/181/17 21/182/17 22/183/17 14/184/17
+f 119/185/18 123/186/18 124/187/18 120/188/18
+f 123/186/19 103/189/19 104/190/19 124/187/19
+f 103/189/20 109/149/20 110/152/20 104/190/20
+f 25/191/21 29/192/21 30/193/21 26/194/21
+f 97/195/22 99/196/22 100/197/22 98/198/22
+f 79/199/23 93/200/23 94/201/23 80/202/23
+f 45/160/24 27/203/24 28/204/24 46/161/24
+f 121/205/25 73/206/25 74/207/25 122/208/25
+f 113/209/26 87/210/26 88/211/26 114/212/26
+f 69/213/27 71/214/27 72/215/27 70/216/27
+f 3/217/28 1/129/28 2/132/28 4/218/28
+f 81/219/29 97/195/29 98/198/29 82/220/29
+f 73/206/30 75/221/30 76/222/30 74/207/30
+f 85/223/31 83/224/31 84/225/31 86/226/31
+f 43/227/32 41/228/32 42/229/32 44/230/32
+f 117/231/33 111/232/33 112/233/33 118/234/33
+f 83/224/34 77/235/34 78/236/34 84/225/34
+f 61/134/35 31/237/35 32/238/35 62/135/35
+f 67/239/36 65/240/36 66/241/36 68/242/36
+f 15/243/37 13/181/37 14/184/37 16/244/37
+f 27/203/38 43/227/38 44/230/38 28/204/38
+f 91/172/39 113/209/39 114/212/39 92/173/39
+f 105/164/40 121/205/40 122/208/40 106/165/40
+f 51/154/41 55/137/41 56/140/41 52/155/41
+f 127/138/42 115/167/42 116/170/42 128/139/42
+f 17/245/43 19/177/43 20/180/43 18/246/43
+f 111/232/44 17/245/44 18/246/44 112/233/44
+f 101/247/45 89/171/45 90/174/45 102/248/45
+f 31/237/46 25/191/46 26/194/46 32/238/46
+f 77/235/47 79/199/47 80/202/47 78/236/47
+f 65/240/48 63/249/48 64/250/48 66/241/48
+f 125/150/49 117/231/49 118/234/49 126/151/49
+f 71/214/50 101/247/50 102/248/50 72/215/50
+f 23/178/51 49/153/51 50/156/51 24/179/51
+f 35/157/52 67/239/52 68/242/52 36/158/52
+f 95/251/53 81/219/53 82/220/53 96/252/53
+f 7/253/54 5/254/54 6/255/54 8/256/54
+f 29/192/55 11/141/55 12/144/55 30/193/55
+f 53/168/56 15/243/56 16/244/56 54/169/56
+f 75/221/57 119/185/57 120/188/57 76/222/57
+f 57/257/58 59/133/58 60/136/58 58/258/58
+f 9/130/59 57/257/59 58/258/59 10/131/59
+f 21/182/60 69/213/60 70/216/60 22/183/60
+f 63/249/61 107/163/61 108/166/61 64/250/61
+f 5/254/62 33/175/62 34/176/62 6/255/62
+f 99/196/63 47/159/63 48/162/63 100/197/63
+f 41/228/64 3/217/64 4/218/64 42/229/64
+f 93/200/65 95/251/65 96/252/65 94/201/65
+f 87/210/66 85/223/66 86/226/66 88/211/66
diff --git a/street_signs/models/street_signs_rr_grade_crossing_advance_onpole.obj b/street_signs/models/street_signs_rr_grade_crossing_advance_onpole.obj
new file mode 100644
index 0000000..34c13c2
--- /dev/null
+++ b/street_signs/models/street_signs_rr_grade_crossing_advance_onpole.obj
@@ -0,0 +1,726 @@
+# Blender v2.79 (sub 0) OBJ File: '000 Basic square 100x100x5 cm sign.blend'
+# www.blender.org
+o Cube
+v 0.353395 -0.812500 -0.290024
+v 0.353395 -0.762500 -0.290024
+v 0.380121 -0.812500 -0.253988
+v 0.380121 -0.762500 -0.253988
+v -0.044810 -0.812500 -0.454966
+v -0.044810 -0.762500 -0.454966
+v 0.000000 -0.812500 -0.457167
+v 0.000000 -0.762500 -0.457167
+v 0.323266 -0.812500 -0.323266
+v 0.323267 -0.762500 -0.323266
+v 0.044811 -0.812500 -0.454966
+v 0.044811 -0.762500 -0.454966
+v -0.044810 -0.812500 0.454966
+v -0.044810 -0.762500 0.454966
+v -0.089189 -0.812500 0.448383
+v -0.089189 -0.762500 0.448383
+v -0.403186 -0.812500 0.215507
+v -0.403186 -0.762500 0.215507
+v -0.380121 -0.812500 0.253989
+v -0.380121 -0.762500 0.253989
+v 0.000000 -0.812500 0.457167
+v 0.000000 -0.762500 0.457167
+v -0.353395 -0.812500 0.290024
+v -0.353395 -0.762500 0.290024
+v 0.132709 -0.812500 -0.437482
+v 0.132709 -0.762500 -0.437482
+v 0.437482 -0.812500 -0.132709
+v 0.437482 -0.762500 -0.132709
+v 0.089189 -0.812500 -0.448383
+v 0.089189 -0.762500 -0.448383
+v 0.174951 -0.812500 -0.422367
+v 0.174951 -0.762500 -0.422367
+v -0.089189 -0.812500 -0.448383
+v -0.089189 -0.762500 -0.448383
+v -0.215507 -0.812500 -0.403186
+v -0.215507 -0.762500 -0.403186
+v -0.174950 -0.812500 -0.422368
+v -0.174950 -0.762500 -0.422368
+v -0.132708 -0.812500 -0.437482
+v -0.132708 -0.762500 -0.437482
+v 0.403186 -0.812500 -0.215507
+v 0.403186 -0.762500 -0.215507
+v 0.422368 -0.812500 -0.174950
+v 0.422368 -0.762500 -0.174950
+v 0.448383 -0.812500 -0.089189
+v 0.448383 -0.762500 -0.089189
+v 0.454966 -0.812500 -0.044810
+v 0.454966 -0.762500 -0.044810
+v -0.323266 -0.812500 0.323266
+v -0.323266 -0.762500 0.323266
+v -0.290024 -0.812500 0.353395
+v -0.290024 -0.762500 0.353395
+v -0.132709 -0.812500 0.437482
+v -0.132709 -0.762500 0.437482
+v -0.253989 -0.812500 0.380121
+v -0.253989 -0.762500 0.380121
+v 0.290024 -0.812500 -0.353395
+v 0.290024 -0.762500 -0.353395
+v 0.253989 -0.812500 -0.380121
+v 0.253989 -0.762500 -0.380121
+v 0.215508 -0.812500 -0.403185
+v 0.215508 -0.762500 -0.403185
+v -0.323266 -0.812500 -0.323266
+v -0.323266 -0.762500 -0.323266
+v -0.290024 -0.812500 -0.353395
+v -0.290024 -0.762500 -0.353395
+v -0.253988 -0.812500 -0.380121
+v -0.253988 -0.762500 -0.380121
+v 0.044812 -0.812500 0.454966
+v 0.044812 -0.762500 0.454966
+v 0.089190 -0.812500 0.448383
+v 0.089190 -0.762500 0.448383
+v -0.422368 -0.812500 -0.174950
+v -0.422368 -0.762500 -0.174950
+v -0.437482 -0.812500 -0.132709
+v -0.437482 -0.762500 -0.132709
+v 0.380121 -0.812500 0.253988
+v 0.380121 -0.762500 0.253988
+v 0.403186 -0.812500 0.215507
+v 0.403186 -0.762500 0.215507
+v 0.448383 -0.812500 0.089189
+v 0.448383 -0.762500 0.089189
+v 0.353396 -0.812500 0.290023
+v 0.353396 -0.762500 0.290023
+v 0.323267 -0.812500 0.323265
+v 0.323267 -0.762500 0.323265
+v 0.290025 -0.812500 0.353394
+v 0.290025 -0.762500 0.353394
+v 0.174952 -0.812500 0.422367
+v 0.174952 -0.762500 0.422367
+v 0.215508 -0.812500 0.403185
+v 0.215508 -0.762500 0.403185
+v 0.422368 -0.812500 0.174950
+v 0.422368 -0.762500 0.174950
+v 0.437482 -0.812500 0.132708
+v 0.437482 -0.762500 0.132708
+v 0.454966 -0.812500 0.044810
+v 0.454966 -0.762500 0.044810
+v 0.457167 -0.812500 -0.000000
+v 0.457167 -0.762500 -0.000000
+v 0.132710 -0.812500 0.437481
+v 0.132710 -0.762500 0.437481
+v -0.457167 -0.812500 -0.000000
+v -0.457167 -0.762500 -0.000000
+v -0.380121 -0.812500 -0.253989
+v -0.380121 -0.762500 -0.253989
+v -0.353395 -0.812500 -0.290024
+v -0.353395 -0.762500 -0.290024
+v -0.454966 -0.812500 0.044810
+v -0.454966 -0.762500 0.044810
+v -0.422368 -0.812500 0.174950
+v -0.422368 -0.762500 0.174950
+v 0.253989 -0.812500 0.380120
+v 0.253989 -0.762500 0.380120
+v -0.174950 -0.812500 0.422368
+v -0.174950 -0.762500 0.422368
+v -0.437482 -0.812500 0.132709
+v -0.437482 -0.762500 0.132709
+v -0.448383 -0.812500 -0.089189
+v -0.448383 -0.762500 -0.089189
+v -0.403186 -0.812500 -0.215507
+v -0.403186 -0.762500 -0.215507
+v -0.454966 -0.812500 -0.044810
+v -0.454966 -0.762500 -0.044810
+v -0.448383 -0.812500 0.089189
+v -0.448383 -0.762500 0.089189
+v -0.215507 -0.812500 0.403186
+v -0.215507 -0.762500 0.403186
+vt 0.999982 0.500000
+vt 0.998778 0.450995
+vt 0.995179 0.402462
+vt 0.989218 0.354868
+vt 0.980953 0.308672
+vt 0.970464 0.264318
+vt 0.957852 0.222235
+vt 0.943239 0.182826
+vt 0.926764 0.146472
+vt 0.908587 0.113522
+vt 0.888882 0.084295
+vt 0.867841 0.059071
+vt 0.845664 0.038093
+vt 0.822566 0.021564
+vt 0.798769 0.009642
+vt 0.774502 0.002443
+vt 0.750000 0.000036
+vt 0.725497 0.002443
+vt 0.701231 0.009643
+vt 0.677434 0.021564
+vt 0.654336 0.038093
+vt 0.632159 0.059071
+vt 0.611117 0.084295
+vt 0.591413 0.113523
+vt 0.573236 0.146472
+vt 0.556761 0.182826
+vt 0.542147 0.222235
+vt 0.529535 0.264319
+vt 0.519047 0.308672
+vt 0.510782 0.354868
+vt 0.504821 0.402462
+vt 0.501222 0.450995
+vt 0.500018 0.500000
+vt 0.501222 0.549005
+vt 0.504821 0.597538
+vt 0.510782 0.645131
+vt 0.519047 0.691327
+vt 0.529535 0.735681
+vt 0.542147 0.777765
+vt 0.556761 0.817173
+vt 0.573236 0.853527
+vt 0.591413 0.886477
+vt 0.611117 0.915704
+vt 0.632159 0.940928
+vt 0.654335 0.961906
+vt 0.677433 0.978435
+vt 0.701230 0.990357
+vt 0.725497 0.997556
+vt 0.750000 0.999964
+vt 0.774503 0.997557
+vt 0.798769 0.990358
+vt 0.822566 0.978436
+vt 0.845664 0.961907
+vt 0.867841 0.940929
+vt 0.888883 0.915705
+vt 0.908587 0.886477
+vt 0.926764 0.853528
+vt 0.943239 0.817174
+vt 0.957853 0.777765
+vt 0.970465 0.735681
+vt 0.980953 0.691328
+vt 0.989218 0.645132
+vt 0.995179 0.597538
+vt 0.998778 0.549005
+vt 0.001222 0.450995
+vt 0.004821 0.402462
+vt 0.010782 0.354868
+vt 0.019047 0.308672
+vt 0.029535 0.264319
+vt 0.042147 0.222235
+vt 0.056761 0.182826
+vt 0.073236 0.146472
+vt 0.091413 0.113523
+vt 0.111117 0.084295
+vt 0.132159 0.059071
+vt 0.154336 0.038093
+vt 0.177434 0.021564
+vt 0.201231 0.009643
+vt 0.225497 0.002443
+vt 0.250000 0.000036
+vt 0.274502 0.002443
+vt 0.298769 0.009642
+vt 0.322566 0.021564
+vt 0.345664 0.038093
+vt 0.367841 0.059071
+vt 0.388883 0.084295
+vt 0.408587 0.113522
+vt 0.426764 0.146472
+vt 0.443239 0.182826
+vt 0.457852 0.222235
+vt 0.470464 0.264318
+vt 0.480953 0.308672
+vt 0.489218 0.354868
+vt 0.495179 0.402462
+vt 0.498778 0.450995
+vt 0.499982 0.500000
+vt 0.498778 0.549005
+vt 0.495179 0.597538
+vt 0.489218 0.645132
+vt 0.480953 0.691328
+vt 0.470464 0.735681
+vt 0.457853 0.777765
+vt 0.443239 0.817174
+vt 0.426764 0.853528
+vt 0.408587 0.886478
+vt 0.388883 0.915705
+vt 0.367841 0.940929
+vt 0.345664 0.961907
+vt 0.322566 0.978436
+vt 0.298769 0.990358
+vt 0.274503 0.997557
+vt 0.250000 0.999964
+vt 0.225497 0.997557
+vt 0.201230 0.990357
+vt 0.177433 0.978435
+vt 0.154335 0.961906
+vt 0.132159 0.940928
+vt 0.111117 0.915704
+vt 0.091413 0.886477
+vt 0.073236 0.853527
+vt 0.056761 0.817173
+vt 0.042147 0.777765
+vt 0.029535 0.735681
+vt 0.019047 0.691327
+vt 0.010782 0.645131
+vt 0.004821 0.597538
+vt 0.001222 0.549005
+vt 0.000018 0.500000
+vt 0.859376 0.000000
+vt 0.874997 0.000000
+vt 0.874997 1.000000
+vt 0.859376 1.000000
+vt 0.906252 0.000000
+vt 0.921873 0.000000
+vt 0.921873 1.000000
+vt 0.906252 1.000000
+vt 0.406250 0.000000
+vt 0.421874 0.000000
+vt 0.421874 1.000000
+vt 0.406250 1.000000
+vt 0.984376 0.000000
+vt 0.999998 0.000000
+vt 0.999998 1.000000
+vt 0.984376 1.000000
+vt 0.046875 0.000000
+vt 0.062500 0.000000
+vt 0.062500 1.000000
+vt 0.046875 1.000000
+vt 0.265625 0.000000
+vt 0.281249 0.000000
+vt 0.281249 1.000000
+vt 0.265625 1.000000
+vt 0.375000 0.000000
+vt 0.390624 0.000000
+vt 0.390624 1.000000
+vt 0.375000 1.000000
+vt 0.078125 0.000000
+vt 0.078125 1.000000
+vt 0.765624 0.000000
+vt 0.781251 0.000000
+vt 0.781251 1.000000
+vt 0.765624 1.000000
+vt 0.140625 0.000000
+vt 0.156250 0.000000
+vt 0.156250 1.000000
+vt 0.140625 1.000000
+vt 0.437499 0.000000
+vt 0.453126 0.000000
+vt 0.453126 1.000000
+vt 0.437499 1.000000
+vt 0.562499 0.000000
+vt 0.578126 0.000000
+vt 0.578126 1.000000
+vt 0.562499 1.000000
+vt 0.031250 0.000000
+vt 0.031250 1.000000
+vt 0.343750 0.000000
+vt 0.359376 0.000000
+vt 0.359376 1.000000
+vt 0.343750 1.000000
+vt 0.484374 0.000000
+vt 0.499999 0.000000
+vt 0.499999 1.000000
+vt 0.484374 1.000000
+vt 0.218749 0.000000
+vt 0.234375 0.000000
+vt 0.234375 1.000000
+vt 0.218749 1.000000
+vt 0.249999 0.000000
+vt 0.249999 1.000000
+vt 0.953128 0.000000
+vt 0.968749 0.000000
+vt 0.968749 1.000000
+vt 0.953128 1.000000
+vt 0.734375 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.734375 1.000000
+vt 0.671875 0.000000
+vt 0.687499 0.000000
+vt 0.687499 1.000000
+vt 0.671875 1.000000
+vt 0.796876 0.000000
+vt 0.796876 1.000000
+vt 0.171875 0.000000
+vt 0.187500 0.000000
+vt 0.187500 1.000000
+vt 0.171875 1.000000
+vt 0.593751 0.000000
+vt 0.609375 0.000000
+vt 0.609375 1.000000
+vt 0.593751 1.000000
+vt 0.515626 0.000000
+vt 0.531250 0.000000
+vt 0.531250 1.000000
+vt 0.515626 1.000000
+vt 0.843749 0.000000
+vt 0.843749 1.000000
+vt 0.718751 0.000000
+vt 0.718751 1.000000
+vt 0.203125 0.000000
+vt 0.203125 1.000000
+vt 0.624999 0.000000
+vt 0.640627 0.000000
+vt 0.640627 1.000000
+vt 0.624999 1.000000
+vt 0.812500 0.000000
+vt 0.828127 0.000000
+vt 0.828127 1.000000
+vt 0.812500 1.000000
+vt 0.296875 0.000000
+vt 0.312500 0.000000
+vt 0.312500 1.000000
+vt 0.296875 1.000000
+vt 0.656251 0.000000
+vt 0.656251 1.000000
+vt 0.937500 0.000000
+vt 0.937500 1.000000
+vt 0.093750 0.000000
+vt 0.109375 0.000000
+vt 0.109375 1.000000
+vt 0.093750 1.000000
+vt 0.468750 0.000000
+vt 0.468750 1.000000
+vt 0.328125 0.000000
+vt 0.328125 1.000000
+vt 0.546875 0.000000
+vt 0.546875 1.000000
+vt 0.125000 0.000000
+vt 0.125000 1.000000
+vt 0.703127 0.000000
+vt 0.703127 1.000000
+vt 0.000000 0.000000
+vt 0.015625 0.000000
+vt 0.015625 1.000000
+vt 0.000000 1.000000
+vt 0.890624 0.000000
+vt 0.890624 1.000000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 -0.0000
+vn 0.7410 -0.0000 -0.6716
+vn 0.5141 -0.0000 -0.8577
+vn -0.5141 -0.0000 0.8577
+vn 0.0491 -0.0000 -0.9988
+vn -0.3369 -0.0000 -0.9415
+vn -0.9892 -0.0000 0.1467
+vn -0.6716 -0.0000 0.7410
+vn -0.4276 -0.0000 -0.9040
+vn 0.9892 -0.0000 -0.1467
+vn -0.8032 -0.0000 -0.5957
+vn -0.3369 -0.0000 0.9415
+vn 0.4276 0.0000 0.9040
+vn -0.2430 -0.0000 -0.9700
+vn -0.8032 0.0000 0.5957
+vn -0.0491 -0.0000 0.9988
+vn -0.9892 0.0000 -0.1467
+vn -0.9988 0.0000 -0.0491
+vn -0.9988 0.0000 0.0491
+vn 0.2430 -0.0000 -0.9700
+vn 0.9988 0.0000 0.0491
+vn 0.9040 0.0000 0.4276
+vn 0.9700 0.0000 -0.2430
+vn -0.9040 0.0000 -0.4276
+vn 0.5957 0.0000 0.8032
+vn 0.1467 -0.0000 0.9892
+vn 0.8032 -0.0000 -0.5957
+vn 0.9892 0.0000 0.1467
+vn -0.9415 0.0000 -0.3369
+vn 0.7410 0.0000 0.6716
+vn 0.9040 0.0000 -0.4276
+vn -0.9415 0.0000 0.3369
+vn 0.8032 -0.0000 0.5957
+vn 0.4276 -0.0000 -0.9040
+vn -0.5957 -0.0000 -0.8032
+vn -0.1467 -0.0000 0.9892
+vn 0.9415 0.0000 -0.3369
+vn 0.5141 0.0000 0.8577
+vn -0.8577 0.0000 -0.5141
+vn -0.5957 -0.0000 0.8032
+vn -0.4276 -0.0000 0.9040
+vn -0.8577 -0.0000 0.5141
+vn -0.9040 -0.0000 0.4276
+vn 0.3369 -0.0000 0.9415
+vn 0.3369 -0.0000 -0.9415
+vn 0.8577 -0.0000 0.5141
+vn -0.6716 0.0000 -0.7410
+vn -0.9700 0.0000 0.2430
+vn 0.2430 -0.0000 0.9700
+vn -0.7410 0.0000 0.6716
+vn -0.5141 0.0000 -0.8577
+vn 0.9700 0.0000 0.2430
+vn -0.0491 -0.0000 -0.9988
+vn 0.1467 0.0000 -0.9892
+vn -0.2430 0.0000 0.9700
+vn -0.9700 0.0000 -0.2430
+vn 0.5957 -0.0000 -0.8032
+vn 0.6716 -0.0000 -0.7409
+vn 0.0491 -0.0000 0.9988
+vn -0.7409 -0.0000 -0.6716
+vn -0.1467 -0.0000 -0.9892
+vn 0.9988 0.0000 -0.0491
+vn 0.8577 0.0000 -0.5141
+vn 0.9415 -0.0000 0.3369
+vn 0.6716 0.0000 0.7409
+g Cube_Cube_front-back
+s off
+f 103/1/1 123/2/1 119/3/1 75/4/1 73/5/1 121/6/1 105/7/1 107/8/1 63/9/1 65/10/1 67/11/1 35/12/1 37/13/1 39/14/1 33/15/1 5/16/1 7/17/1 11/18/1 29/19/1 25/20/1 31/21/1 61/22/1 59/23/1 57/24/1 9/25/1 1/26/1 3/27/1 41/28/1 43/29/1 27/30/1 45/31/1 47/32/1 99/33/1 97/34/1 81/35/1 95/36/1 93/37/1 79/38/1 77/39/1 83/40/1 85/41/1 87/42/1 113/43/1 91/44/1 89/45/1 101/46/1 71/47/1 69/48/1 21/49/1 13/50/1 15/51/1 53/52/1 115/53/1 127/54/1 55/55/1 51/56/1 49/57/1 23/58/1 19/59/1 17/60/1 111/61/1 117/62/1 125/63/1 109/64/1
+f 48/65/2 46/66/2 28/67/2 44/68/2 42/69/2 4/70/2 2/71/2 10/72/2 58/73/2 60/74/2 62/75/2 32/76/2 26/77/2 30/78/2 12/79/2 8/80/2 6/81/2 34/82/2 40/83/2 38/84/2 36/85/2 68/86/2 66/87/2 64/88/2 108/89/2 106/90/2 122/91/2 74/92/2 76/93/2 120/94/2 124/95/2 104/96/2 110/97/2 126/98/2 118/99/2 112/100/2 18/101/2 20/102/2 24/103/2 50/104/2 52/105/2 56/106/2 128/107/2 116/108/2 54/109/2 16/110/2 14/111/2 22/112/2 70/113/2 72/114/2 102/115/2 90/116/2 92/117/2 114/118/2 88/119/2 86/120/2 84/121/2 78/122/2 80/123/2 94/124/2 96/125/2 82/126/2 98/127/2 100/128/2
+g Cube_Cube_front-back_street_signs_sign_edge.png
+f 1/129/3 9/130/3 10/131/3 2/132/3
+f 59/133/4 61/134/4 62/135/4 60/136/4
+f 55/137/5 127/138/5 128/139/5 56/140/5
+f 11/141/6 7/142/6 8/143/6 12/144/6
+f 39/145/7 37/146/7 38/147/7 40/148/7
+f 109/149/8 125/150/8 126/151/8 110/152/8
+f 49/153/9 51/154/9 52/155/9 50/156/9
+f 37/146/10 35/157/10 36/158/10 38/147/10
+f 47/159/11 45/160/11 46/161/11 48/162/11
+f 107/163/12 105/164/12 106/165/12 108/166/12
+f 115/167/13 53/168/13 54/169/13 116/170/13
+f 89/171/14 91/172/14 92/173/14 90/174/14
+f 33/175/15 39/145/15 40/148/15 34/176/15
+f 19/177/16 23/178/16 24/179/16 20/180/16
+f 13/181/17 21/182/17 22/183/17 14/184/17
+f 119/185/18 123/186/18 124/187/18 120/188/18
+f 123/186/19 103/189/19 104/190/19 124/187/19
+f 103/189/20 109/149/20 110/152/20 104/190/20
+f 25/191/21 29/192/21 30/193/21 26/194/21
+f 97/195/22 99/196/22 100/197/22 98/198/22
+f 79/199/23 93/200/23 94/201/23 80/202/23
+f 45/160/24 27/203/24 28/204/24 46/161/24
+f 121/205/25 73/206/25 74/207/25 122/208/25
+f 113/209/26 87/210/26 88/211/26 114/212/26
+f 69/213/27 71/214/27 72/215/27 70/216/27
+f 3/217/28 1/129/28 2/132/28 4/218/28
+f 81/219/29 97/195/29 98/198/29 82/220/29
+f 73/206/30 75/221/30 76/222/30 74/207/30
+f 85/223/31 83/224/31 84/225/31 86/226/31
+f 43/227/32 41/228/32 42/229/32 44/230/32
+f 117/231/33 111/232/33 112/233/33 118/234/33
+f 83/224/34 77/235/34 78/236/34 84/225/34
+f 61/134/35 31/237/35 32/238/35 62/135/35
+f 67/239/36 65/240/36 66/241/36 68/242/36
+f 15/243/37 13/181/37 14/184/37 16/244/37
+f 27/203/38 43/227/38 44/230/38 28/204/38
+f 91/172/39 113/209/39 114/212/39 92/173/39
+f 105/164/40 121/205/40 122/208/40 106/165/40
+f 51/154/41 55/137/41 56/140/41 52/155/41
+f 127/138/42 115/167/42 116/170/42 128/139/42
+f 17/245/43 19/177/43 20/180/43 18/246/43
+f 111/232/44 17/245/44 18/246/44 112/233/44
+f 101/247/45 89/171/45 90/174/45 102/248/45
+f 31/237/46 25/191/46 26/194/46 32/238/46
+f 77/235/47 79/199/47 80/202/47 78/236/47
+f 65/240/48 63/249/48 64/250/48 66/241/48
+f 125/150/49 117/231/49 118/234/49 126/151/49
+f 71/214/50 101/247/50 102/248/50 72/215/50
+f 23/178/51 49/153/51 50/156/51 24/179/51
+f 35/157/52 67/239/52 68/242/52 36/158/52
+f 95/251/53 81/219/53 82/220/53 96/252/53
+f 7/253/54 5/254/54 6/255/54 8/256/54
+f 29/192/55 11/141/55 12/144/55 30/193/55
+f 53/168/56 15/243/56 16/244/56 54/169/56
+f 75/221/57 119/185/57 120/188/57 76/222/57
+f 57/257/58 59/133/58 60/136/58 58/258/58
+f 9/130/59 57/257/59 58/258/59 10/131/59
+f 21/182/60 69/213/60 70/216/60 22/183/60
+f 63/249/61 107/163/61 108/166/61 64/250/61
+f 5/254/62 33/175/62 34/176/62 6/255/62
+f 99/196/63 47/159/63 48/162/63 100/197/63
+f 41/228/64 3/217/64 4/218/64 42/229/64
+f 93/200/65 95/251/65 96/252/65 94/201/65
+f 87/210/66 85/223/66 86/226/66 88/211/66
+o Cube.001
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -1.125000 -0.187500
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.125000 -0.812500 0.187500
+v -0.164063 -1.125000 0.125000
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -1.125000 -0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -1.125000 0.187500
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v 0.125000 -0.812500 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.125000 -0.125000
+v 0.164062 -1.125000 -0.125000
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v -0.164063 -1.125000 0.187500
+v 0.164062 -1.125000 0.187500
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.234375 0.640625
+vt 0.093750 0.640625
+vt 0.093750 0.593750
+vt 0.453125 0.640625
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 -0.0000 1.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+g Cube.001_Cube.001_pole_mount
+s off
+f 129/259/67 130/260/67 132/261/67 131/262/67
+f 134/263/68 133/264/68 136/265/68 135/266/68
+f 132/261/69 136/265/69 133/267/69 131/268/69
+f 129/269/70 134/270/70 135/266/70 130/260/70
+f 130/260/71 135/266/71 136/265/71 132/261/71
+f 137/271/68 138/272/68 140/273/68 139/274/68
+f 139/275/69 140/276/69 144/277/69 143/278/69
+f 143/279/67 144/280/67 142/281/67 141/282/67
+f 141/282/70 142/281/70 138/283/70 137/284/70
+f 145/285/68 146/286/68 148/287/68 147/288/68
+f 147/289/69 148/290/69 152/291/69 151/292/69
+f 151/293/67 152/294/67 150/295/67 149/296/67
+f 149/296/70 150/295/70 146/297/70 145/298/70
+f 153/299/68 154/300/68 156/301/68 155/302/68
+f 155/303/69 156/304/69 160/305/69 159/306/69
+f 159/307/67 160/308/67 158/309/67 157/310/67
+f 157/310/70 158/309/70 154/311/70 153/312/70
+f 161/313/68 162/314/68 164/315/68 163/316/68
+f 163/317/69 164/318/69 168/319/69 167/320/69
+f 167/321/67 168/322/67 166/323/67 165/324/67
+f 165/324/70 166/323/70 162/325/70 161/326/70
+f 169/327/71 170/328/71 172/329/71 171/330/71
+f 171/331/69 172/332/69 176/333/69 175/334/69
+f 175/334/72 176/333/72 174/335/72 173/336/72
+f 173/336/70 174/335/70 170/328/70 169/327/70
+f 171/337/67 175/338/67 173/339/67 169/340/67
+f 176/341/68 172/342/68 170/343/68 174/344/68
+f 177/345/71 178/346/71 180/347/71 179/348/71
+f 179/349/69 180/350/69 184/351/69 183/352/69
+f 183/352/72 184/351/72 182/353/72 181/354/72
+f 181/354/70 182/353/70 178/346/70 177/345/70
+f 179/355/67 183/356/67 181/357/67 177/358/67
+f 184/359/68 180/360/68 178/361/68 182/362/68
diff --git a/street_signs/models/street_signs_stop_all_way.obj b/street_signs/models/street_signs_stop_all_way.obj
new file mode 100644
index 0000000..6d7cd10
--- /dev/null
+++ b/street_signs/models/street_signs_stop_all_way.obj
@@ -0,0 +1,263 @@
+# Blender v2.79 (sub 0) OBJ File: 'stop all way.blend'
+# www.blender.org
+o sign_Cube_Cube_front-back
+v 0.228600 -0.500000 -0.613700
+v 0.211325 -0.500000 -0.637476
+v 0.228600 -0.450000 -0.613700
+v 0.203600 -0.450000 -0.638700
+v 0.218295 -0.450000 -0.633925
+v 0.211325 -0.450000 -0.637476
+v 0.228600 -0.500000 -0.511300
+v 0.227376 -0.500000 -0.503575
+v 0.218295 -0.500000 -0.491075
+v 0.211325 -0.500000 -0.487524
+v 0.203600 -0.450000 -0.486300
+v 0.228600 -0.450000 -0.511300
+v 0.227376 -0.450000 -0.503575
+v -0.228600 -0.500000 -0.613700
+v -0.223825 -0.500000 -0.628395
+v -0.211325 -0.500000 -0.637476
+v -0.203600 -0.450000 -0.638700
+v -0.218295 -0.450000 -0.633925
+v -0.227376 -0.450000 -0.621425
+v -0.211325 -0.500000 -0.487524
+v -0.218295 -0.500000 -0.491075
+v -0.227376 -0.500000 -0.503575
+v -0.228600 -0.450000 -0.511300
+v -0.223825 -0.450000 -0.496605
+v 0.203600 -0.500000 -0.638700
+v 0.218295 -0.500000 -0.633925
+v 0.223825 -0.500000 -0.628395
+v 0.227376 -0.500000 -0.621425
+v 0.223825 -0.450000 -0.628395
+v 0.227376 -0.450000 -0.621425
+v 0.203600 -0.500000 -0.486300
+v 0.223825 -0.500000 -0.496605
+v 0.211325 -0.450000 -0.487524
+v 0.218295 -0.450000 -0.491075
+v 0.223825 -0.450000 -0.496605
+v -0.203600 -0.500000 -0.638700
+v -0.218295 -0.500000 -0.633925
+v -0.227376 -0.500000 -0.621425
+v -0.228600 -0.450000 -0.613700
+v -0.223825 -0.450000 -0.628395
+v -0.211325 -0.450000 -0.637476
+v -0.203600 -0.500000 -0.486300
+v -0.228600 -0.500000 -0.511300
+v -0.223825 -0.500000 -0.496605
+v -0.203600 -0.450000 -0.486300
+v -0.211325 -0.450000 -0.487524
+v -0.218295 -0.450000 -0.491075
+v -0.227376 -0.450000 -0.503575
+v 0.457198 -0.500000 -0.189378
+v 0.457199 -0.450000 0.189378
+v 0.189378 -0.450000 -0.457198
+v 0.189378 -0.500000 0.457198
+v 0.189378 -0.450000 0.457198
+v -0.189378 -0.500000 -0.457198
+v 0.189378 -0.500000 -0.457198
+v 0.457198 -0.450000 -0.189378
+v -0.457198 -0.450000 0.189378
+v -0.189378 -0.450000 0.457199
+v 0.457199 -0.500000 0.189378
+v -0.457198 -0.500000 0.189378
+v -0.189378 -0.500000 0.457198
+v -0.457198 -0.500000 -0.189378
+v -0.457199 -0.450000 -0.189378
+v -0.189378 -0.450000 -0.457199
+vt 0.500000 0.707107
+vt 0.646447 1.000000
+vt 0.853553 1.000000
+vt 1.000000 0.707107
+vt 1.000000 0.292893
+vt 0.853553 0.000000
+vt 0.646447 0.000000
+vt 0.500000 0.292893
+vt 0.000000 0.292893
+vt 0.146447 0.000000
+vt 0.353553 0.000000
+vt 0.500000 0.292893
+vt 0.500000 0.707107
+vt 0.353553 1.000000
+vt 0.146447 1.000000
+vt 0.000000 0.707107
+vt 0.054681 0.000000
+vt 0.054681 0.999996
+vt 0.945319 0.999996
+vt 0.945319 0.000000
+vt 0.164042 0.000000
+vt 0.835958 0.000000
+vt 0.835958 1.000000
+vt 0.164042 1.000000
+vt 0.945319 0.000003
+vt 0.945319 1.000000
+vt 0.054681 1.000000
+vt 0.054681 0.000003
+vt 0.037783 1.000000
+vt 0.037783 0.000003
+vt 0.022540 1.000000
+vt 0.022540 0.000003
+vt 0.067621 1.000000
+vt 0.067621 0.000000
+vt 0.113350 1.000000
+vt 0.113350 0.000000
+vt 0.164042 1.000000
+vt 0.164042 0.000000
+vt 0.037783 0.000000
+vt 0.037783 0.999996
+vt 0.022540 0.000000
+vt 0.022540 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.932379 1.000000
+vt 0.932379 0.000000
+vt 0.886650 0.000000
+vt 0.886650 1.000000
+vt 0.835958 0.000000
+vt 0.835958 1.000000
+vt 0.962217 0.999996
+vt 0.962217 0.000000
+vt 0.977460 0.999996
+vt 0.977460 0.000000
+vt 0.932379 1.000000
+vt 0.932379 0.000000
+vt 0.886650 1.000000
+vt 0.886650 0.000000
+vt 0.962217 0.000003
+vt 0.962217 1.000000
+vt 0.977460 0.000003
+vt 0.977460 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.067621 1.000000
+vt 0.067621 0.000000
+vt 0.113350 0.000000
+vt 0.113350 1.000000
+vt 0.625000 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.625000 1.000000
+vt 0.250000 0.000000
+vt 0.375000 0.000000
+vt 0.375000 1.000000
+vt 0.250000 1.000000
+vt 0.875000 0.000000
+vt 0.875000 1.000000
+vt 0.125000 0.000000
+vt 0.125000 1.000000
+vt 0.000000 0.000000
+vt 0.000000 1.000000
+vt 0.500000 0.000000
+vt 0.500000 1.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 1.000000 0.917979
+vt 0.997324 0.943325
+vt 0.989557 0.966190
+vt 0.977460 0.984335
+vt 0.962217 0.995986
+vt 0.037783 0.995986
+vt 0.022540 0.984335
+vt 0.010443 0.966190
+vt 0.002676 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.582021
+vt 0.002676 0.556675
+vt 0.010443 0.533810
+vt 0.022540 0.515665
+vt 0.037783 0.504014
+vt 0.054681 0.500000
+vt 0.945319 0.500000
+vt 0.962217 0.504014
+vt 0.977460 0.515665
+vt 0.989557 0.533810
+vt 0.997324 0.556675
+vt 1.000000 0.582021
+vt 0.000000 0.417979
+vt 0.002676 0.443325
+vt 0.010443 0.466190
+vt 0.022540 0.484335
+vt 0.037783 0.495986
+vt 0.054681 0.500000
+vt 0.945319 0.500000
+vt 0.962217 0.495986
+vt 0.977460 0.484335
+vt 0.989557 0.466190
+vt 0.997324 0.443325
+vt 1.000000 0.417979
+vt 1.000000 0.082021
+vt 0.997324 0.056675
+vt 0.989557 0.033810
+vt 0.977460 0.015665
+vt 0.962217 0.004014
+vt 0.037783 0.004014
+vt 0.022540 0.015665
+vt 0.010443 0.033810
+vt 0.002676 0.056675
+vt 0.000000 0.082021
+vn -0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 -0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 0.0000 0.9877
+vn -0.4540 0.0000 0.8910
+vn -0.7071 0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 -0.0000
+g sign_Cube_Cube_front-back_main_front-back
+s off
+f 59/1/1 52/2/1 61/3/1 60/4/1 62/5/1 54/6/1 55/7/1 49/8/1
+f 56/9/2 51/10/2 64/11/2 63/12/2 57/13/2 58/14/2 53/15/2 50/16/2
+g sign_Cube_Cube_front-back_signs_edges
+f 31/17/3 11/18/3 45/19/3 42/20/3
+f 14/21/4 43/22/4 23/23/4 39/24/4
+f 36/25/5 17/26/5 4/27/5 25/28/5
+f 25/28/6 4/27/6 6/29/6 2/30/6
+f 2/30/7 6/29/7 5/31/7 26/32/7
+f 26/32/8 5/31/8 29/33/8 27/34/8
+f 27/34/9 29/33/9 30/35/9 28/36/9
+f 28/36/10 30/35/10 3/37/10 1/38/10
+f 11/18/11 31/17/11 10/39/11 33/40/11
+f 33/40/12 10/39/12 9/41/12 34/42/12
+f 34/42/13 9/41/13 32/43/13 35/44/13
+f 35/45/14 32/46/14 8/47/14 13/48/14
+f 13/48/15 8/47/15 7/49/15 12/50/15
+f 42/20/16 45/19/16 46/51/16 20/52/16
+f 20/52/17 46/51/17 47/53/17 21/54/17
+f 21/54/18 47/53/18 24/55/18 44/56/18
+f 44/56/19 24/55/19 48/57/19 22/58/19
+f 22/58/20 48/57/20 23/23/20 43/22/20
+f 17/26/21 36/25/21 16/59/21 41/60/21
+f 41/60/22 16/59/22 37/61/22 18/62/22
+f 18/62/23 37/61/23 15/63/23 40/64/23
+f 40/65/24 15/66/24 38/67/24 19/68/24
+f 19/68/25 38/67/25 14/21/25 39/24/25
+f 7/49/26 1/38/26 3/37/26 12/50/26
+f 59/69/26 49/70/26 56/71/26 50/72/26
+f 60/73/18 61/74/18 58/75/18 57/76/18
+f 49/70/8 55/77/8 51/78/8 56/71/8
+f 62/79/4 60/73/4 57/76/4 63/80/4
+f 54/81/23 62/79/23 63/80/23 64/82/23
+f 52/83/13 59/69/13 50/72/13 53/84/13
+f 61/74/3 52/83/3 53/84/3 58/75/3
+f 55/77/5 54/85/5 64/86/5 51/78/5
+g sign_Cube_Cube_front-back_plaque_front-back
+f 23/87/2 48/88/2 24/89/2 47/90/2 46/91/2 45/19/2 11/18/2 33/92/2 34/93/2 35/94/2 13/95/2 12/96/2 3/97/2 30/98/2 29/99/2 5/100/2 6/101/2 4/102/2 17/103/2 41/104/2 18/105/2 40/106/2 19/107/2 39/108/2
+f 7/109/1 8/110/1 32/111/1 9/112/1 10/113/1 31/114/1 42/115/1 20/116/1 21/117/1 44/118/1 22/119/1 43/120/1 14/121/1 38/122/1 15/123/1 37/124/1 16/125/1 36/25/1 25/28/1 2/126/1 26/127/1 27/128/1 28/129/1 1/130/1
diff --git a/street_signs/models/street_signs_stop_all_way_onpole.obj b/street_signs/models/street_signs_stop_all_way_onpole.obj
new file mode 100644
index 0000000..9162d36
--- /dev/null
+++ b/street_signs/models/street_signs_stop_all_way_onpole.obj
@@ -0,0 +1,553 @@
+# Blender v2.79 (sub 0) OBJ File: 'stop all way.blend'
+# www.blender.org
+o sign_Cube_Cube_front-back
+v 0.228600 -0.812500 -0.613700
+v 0.211325 -0.812500 -0.637476
+v 0.228600 -0.762500 -0.613700
+v 0.203600 -0.762500 -0.638700
+v 0.218295 -0.762500 -0.633925
+v 0.211325 -0.762500 -0.637476
+v 0.228600 -0.812500 -0.511300
+v 0.227376 -0.812500 -0.503575
+v 0.218295 -0.812500 -0.491075
+v 0.211325 -0.812500 -0.487524
+v 0.203600 -0.762500 -0.486300
+v 0.228600 -0.762500 -0.511300
+v 0.227376 -0.762500 -0.503575
+v -0.228600 -0.812500 -0.613700
+v -0.223825 -0.812500 -0.628395
+v -0.211325 -0.812500 -0.637476
+v -0.203600 -0.762500 -0.638700
+v -0.218295 -0.762500 -0.633925
+v -0.227376 -0.762500 -0.621425
+v -0.211325 -0.812500 -0.487524
+v -0.218295 -0.812500 -0.491075
+v -0.227376 -0.812500 -0.503575
+v -0.228600 -0.762500 -0.511300
+v -0.223825 -0.762500 -0.496605
+v 0.203600 -0.812500 -0.638700
+v 0.218295 -0.812500 -0.633925
+v 0.223825 -0.812500 -0.628395
+v 0.227376 -0.812500 -0.621425
+v 0.223825 -0.762500 -0.628395
+v 0.227376 -0.762500 -0.621425
+v 0.203600 -0.812500 -0.486300
+v 0.223825 -0.812500 -0.496605
+v 0.211325 -0.762500 -0.487524
+v 0.218295 -0.762500 -0.491075
+v 0.223825 -0.762500 -0.496605
+v -0.203600 -0.812500 -0.638700
+v -0.218295 -0.812500 -0.633925
+v -0.227376 -0.812500 -0.621425
+v -0.228600 -0.762500 -0.613700
+v -0.223825 -0.762500 -0.628395
+v -0.211325 -0.762500 -0.637476
+v -0.203600 -0.812500 -0.486300
+v -0.228600 -0.812500 -0.511300
+v -0.223825 -0.812500 -0.496605
+v -0.203600 -0.762500 -0.486300
+v -0.211325 -0.762500 -0.487524
+v -0.218295 -0.762500 -0.491075
+v -0.227376 -0.762500 -0.503575
+v 0.457198 -0.812500 -0.189378
+v 0.457199 -0.762500 0.189378
+v 0.189378 -0.762500 -0.457198
+v 0.189378 -0.812500 0.457198
+v 0.189378 -0.762500 0.457198
+v -0.125000 -0.812500 -0.187500
+v -0.125000 -0.875000 -0.187500
+v -0.125000 -0.812500 0.187500
+v -0.125000 -0.875000 0.187500
+v 0.125000 -0.812500 0.187500
+v 0.125000 -0.812500 -0.187500
+v 0.125000 -0.875000 -0.187500
+v 0.125000 -0.875000 0.187500
+v -0.125000 -1.125000 -0.187500
+v -0.125000 -1.125000 -0.125000
+v -0.125000 -0.812500 -0.125000
+v -0.164063 -0.812500 -0.187500
+v -0.164063 -1.125000 -0.125000
+v -0.164063 -0.812500 -0.125000
+v -0.125000 -1.125000 0.125000
+v -0.125000 -0.812500 0.125000
+v -0.125000 -1.125000 0.187500
+v -0.164063 -0.812500 0.125000
+v -0.164063 -1.125000 0.187500
+v -0.164063 -0.812500 0.187500
+v 0.164062 -0.812500 -0.187500
+v 0.164062 -1.125000 -0.125000
+v 0.164062 -0.812500 -0.125000
+v 0.125000 -1.125000 -0.187500
+v 0.125000 -1.125000 -0.125000
+v 0.125000 -0.812500 -0.125000
+v 0.164062 -0.812500 0.125000
+v 0.164062 -0.812500 0.187500
+v 0.125000 -1.125000 0.125000
+v 0.125000 -0.812500 0.125000
+v 0.125000 -1.125000 0.187500
+v -0.164063 -1.164063 -0.187500
+v 0.164062 -1.164063 -0.187500
+v -0.164063 -1.164063 -0.125000
+v 0.164062 -1.164063 -0.125000
+v -0.164063 -1.125000 -0.187500
+v 0.164062 -1.125000 -0.187500
+v -0.164063 -1.164063 0.125000
+v 0.164062 -1.164063 0.125000
+v -0.164063 -1.164063 0.187500
+v 0.164062 -1.164063 0.187500
+v -0.164063 -1.125000 0.125000
+v 0.164062 -1.125000 0.125000
+v 0.164062 -1.125000 0.187500
+v -0.125000 -1.125000 -0.592751
+v -0.125000 -0.812500 -0.592751
+v -0.125000 -1.125000 -0.530251
+v -0.125000 -0.812500 -0.530251
+v -0.164063 -1.125000 -0.592751
+v -0.164063 -0.812500 -0.592751
+v -0.164063 -0.812500 -0.530251
+v 0.164062 -0.812500 -0.592751
+v 0.164062 -0.812500 -0.530251
+v 0.125000 -1.125000 -0.592751
+v 0.125000 -0.812500 -0.592751
+v 0.125000 -1.125000 -0.530251
+v 0.125000 -0.812500 -0.530251
+v -0.164063 -1.164063 -0.592751
+v 0.164062 -1.164063 -0.592751
+v -0.164063 -1.164063 -0.530251
+v 0.164062 -1.164063 -0.530251
+v 0.164062 -1.125000 -0.592751
+v -0.164063 -1.125000 -0.530251
+v 0.164062 -1.125000 -0.530251
+v -0.125000 -0.812500 -0.615055
+v -0.125000 -0.875000 -0.615055
+v 0.125000 -0.812500 -0.615055
+v 0.125000 -0.875000 -0.615055
+v -0.125000 -0.812500 -0.515055
+v -0.125000 -0.875000 -0.515055
+v 0.125000 -0.812500 -0.515055
+v 0.125000 -0.875000 -0.515055
+v 0.125000 -0.875000 -0.565055
+v -0.125000 -0.875000 -0.565055
+v 0.125000 -0.812500 -0.565055
+v -0.125000 -0.812500 -0.565055
+v -0.189378 -0.812500 -0.457198
+v 0.189378 -0.812500 -0.457198
+v 0.457198 -0.762500 -0.189378
+v -0.457198 -0.762500 0.189378
+v -0.189378 -0.762500 0.457199
+v 0.457199 -0.812500 0.189378
+v -0.457198 -0.812500 0.189378
+v -0.189378 -0.812500 0.457198
+v -0.457198 -0.812500 -0.189378
+v -0.457199 -0.762500 -0.189378
+v -0.189378 -0.762500 -0.457199
+vt 0.500000 0.707107
+vt 0.646447 1.000000
+vt 0.853553 1.000000
+vt 1.000000 0.707107
+vt 1.000000 0.292893
+vt 0.853553 0.000000
+vt 0.646447 0.000000
+vt 0.500000 0.292893
+vt 0.000000 0.292893
+vt 0.146447 0.000000
+vt 0.353553 0.000000
+vt 0.500000 0.292893
+vt 0.500000 0.707107
+vt 0.353553 1.000000
+vt 0.146447 1.000000
+vt 0.000000 0.707107
+vt 0.054681 0.000000
+vt 0.054681 0.999996
+vt 0.945319 0.999996
+vt 0.945319 0.000000
+vt 0.164042 0.000000
+vt 0.835958 0.000000
+vt 0.835958 1.000000
+vt 0.164042 1.000000
+vt 0.945319 0.000003
+vt 0.945319 1.000000
+vt 0.054681 1.000000
+vt 0.054681 0.000003
+vt 0.037783 1.000000
+vt 0.037783 0.000003
+vt 0.022540 1.000000
+vt 0.022540 0.000003
+vt 0.067621 1.000000
+vt 0.067621 0.000000
+vt 0.113350 1.000000
+vt 0.113350 0.000000
+vt 0.164042 1.000000
+vt 0.164042 0.000000
+vt 0.037783 0.000000
+vt 0.037783 0.999996
+vt 0.022540 0.000000
+vt 0.022540 0.999996
+vt 0.000000 0.000000
+vt 0.000000 0.999996
+vt 0.932379 1.000000
+vt 0.932379 0.000000
+vt 0.886650 0.000000
+vt 0.886650 1.000000
+vt 0.835958 0.000000
+vt 0.835958 1.000000
+vt 0.962217 0.999996
+vt 0.962217 0.000000
+vt 0.977460 0.999996
+vt 0.977460 0.000000
+vt 0.932379 1.000000
+vt 0.932379 0.000000
+vt 0.886650 1.000000
+vt 0.886650 0.000000
+vt 0.962217 0.000003
+vt 0.962217 1.000000
+vt 0.977460 0.000003
+vt 0.977460 1.000000
+vt 1.000000 0.000003
+vt 1.000000 1.000000
+vt 0.067621 1.000000
+vt 0.067621 0.000000
+vt 0.113350 0.000000
+vt 0.113350 1.000000
+vt 0.625000 0.000000
+vt 0.750000 0.000000
+vt 0.750000 1.000000
+vt 0.625000 1.000000
+vt 0.250000 0.000000
+vt 0.375000 0.000000
+vt 0.375000 1.000000
+vt 0.250000 1.000000
+vt 0.875000 0.000000
+vt 0.875000 1.000000
+vt 0.125000 0.000000
+vt 0.125000 1.000000
+vt 0.000000 0.000000
+vt 0.000000 1.000000
+vt 0.500000 0.000000
+vt 0.500000 1.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 1.000000 0.917979
+vt 0.997324 0.943325
+vt 0.989557 0.966190
+vt 0.977460 0.984335
+vt 0.962217 0.995986
+vt 0.037783 0.995986
+vt 0.022540 0.984335
+vt 0.010443 0.966190
+vt 0.002676 0.943325
+vt 0.000000 0.917979
+vt 0.000000 0.582021
+vt 0.002676 0.556675
+vt 0.010443 0.533810
+vt 0.022540 0.515665
+vt 0.037783 0.504014
+vt 0.054681 0.500000
+vt 0.945319 0.500000
+vt 0.962217 0.504014
+vt 0.977460 0.515665
+vt 0.989557 0.533810
+vt 0.997324 0.556675
+vt 1.000000 0.582021
+vt 0.000000 0.417979
+vt 0.002676 0.443325
+vt 0.010443 0.466190
+vt 0.022540 0.484335
+vt 0.037783 0.495986
+vt 0.054681 0.500000
+vt 0.945319 0.500000
+vt 0.962217 0.495986
+vt 0.977460 0.484335
+vt 0.989557 0.466190
+vt 0.997324 0.443325
+vt 1.000000 0.417979
+vt 1.000000 0.082021
+vt 0.997324 0.056675
+vt 0.989557 0.033810
+vt 0.977460 0.015665
+vt 0.962217 0.004014
+vt 0.037783 0.004014
+vt 0.022540 0.015665
+vt 0.010443 0.033810
+vt 0.002676 0.056675
+vt 0.000000 0.082021
+vt 0.843750 0.507812
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.843750 0.093750
+vt 0.015625 0.507812
+vt 0.015625 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.507812
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.093750 0.593750
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.093750 0.593750
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.312500 0.640625
+vt 0.312500 0.992188
+vt 0.453125 0.992188
+vt 0.453125 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.312500 0.992188
+vt 0.312500 0.640625
+vt 0.234375 0.640625
+vt 0.234375 0.992188
+vt 0.093750 0.992188
+vt 0.093750 0.640625
+vt 0.015625 0.992188
+vt 0.015625 0.640625
+vt 0.781250 0.664062
+vt 0.781250 0.992188
+vt 0.921875 0.992188
+vt 0.921875 0.664062
+vt 0.484375 0.664062
+vt 0.484375 0.992188
+vt 0.562500 0.992188
+vt 0.562500 0.664062
+vt 0.703125 0.992188
+vt 0.703125 0.664062
+vt 0.234375 0.593750
+vt 0.093750 0.593750
+vt 0.453125 0.593750
+vt 0.312500 0.593750
+vt 0.015625 0.507812
+vt 0.015625 0.456055
+vt 0.156250 0.456055
+vt 0.156250 0.507812
+vt 0.703125 0.578125
+vt 0.156250 0.578125
+vt 0.703125 0.507812
+vt 0.703125 0.093750
+vt 0.156250 0.093750
+vt 0.156250 0.031250
+vt 0.703125 0.031250
+vt 0.703125 0.456055
+vt 0.843750 0.507812
+vt 0.843750 0.456055
+vt 0.703125 0.404297
+vt 0.843750 0.404297
+vt 0.015625 0.404297
+vt 0.156250 0.404297
+vt 0.703125 0.148438
+vt 0.156250 0.148438
+vn 0.0000 -1.0000 -0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.1564 0.0000 -0.9877
+vn 0.4540 0.0000 -0.8910
+vn 0.7071 0.0000 -0.7071
+vn 0.8910 0.0000 -0.4540
+vn 0.9877 0.0000 -0.1564
+vn 0.1564 0.0000 0.9877
+vn 0.4540 0.0000 0.8910
+vn 0.7071 0.0000 0.7071
+vn 0.8910 0.0000 0.4540
+vn 0.9877 0.0000 0.1564
+vn -0.1564 -0.0000 0.9877
+vn -0.4540 -0.0000 0.8910
+vn -0.7071 -0.0000 0.7071
+vn -0.8910 0.0000 0.4540
+vn -0.9877 0.0000 0.1564
+vn -0.1564 0.0000 -0.9877
+vn -0.4540 0.0000 -0.8910
+vn -0.7071 0.0000 -0.7071
+vn -0.8910 0.0000 -0.4540
+vn -0.9877 0.0000 -0.1564
+vn 1.0000 0.0000 -0.0000
+g sign_Cube_Cube_front-back_main_front-back
+s off
+f 135/1/1 52/2/1 137/3/1 136/4/1 138/5/1 130/6/1 131/7/1 49/8/1
+f 132/9/2 51/10/2 140/11/2 139/12/2 133/13/2 134/14/2 53/15/2 50/16/2
+g sign_Cube_Cube_front-back_signs_edges
+f 31/17/3 11/18/3 45/19/3 42/20/3
+f 14/21/4 43/22/4 23/23/4 39/24/4
+f 36/25/5 17/26/5 4/27/5 25/28/5
+f 25/28/6 4/27/6 6/29/6 2/30/6
+f 2/30/7 6/29/7 5/31/7 26/32/7
+f 26/32/8 5/31/8 29/33/8 27/34/8
+f 27/34/9 29/33/9 30/35/9 28/36/9
+f 28/36/10 30/35/10 3/37/10 1/38/10
+f 11/18/11 31/17/11 10/39/11 33/40/11
+f 33/40/12 10/39/12 9/41/12 34/42/12
+f 34/42/13 9/41/13 32/43/13 35/44/13
+f 35/45/14 32/46/14 8/47/14 13/48/14
+f 13/48/15 8/47/15 7/49/15 12/50/15
+f 42/20/16 45/19/16 46/51/16 20/52/16
+f 20/52/17 46/51/17 47/53/17 21/54/17
+f 21/54/18 47/53/18 24/55/18 44/56/18
+f 44/56/19 24/55/19 48/57/19 22/58/19
+f 22/58/20 48/57/20 23/23/20 43/22/20
+f 17/26/21 36/25/21 16/59/21 41/60/21
+f 41/60/22 16/59/22 37/61/22 18/62/22
+f 18/62/23 37/61/23 15/63/23 40/64/23
+f 40/65/24 15/66/24 38/67/24 19/68/24
+f 19/68/25 38/67/25 14/21/25 39/24/25
+f 7/49/26 1/38/26 3/37/26 12/50/26
+f 135/69/26 49/70/26 132/71/26 50/72/26
+f 136/73/18 137/74/18 134/75/18 133/76/18
+f 49/70/8 131/77/8 51/78/8 132/71/8
+f 138/79/4 136/73/4 133/76/4 139/80/4
+f 130/81/23 138/79/23 139/80/23 140/82/23
+f 52/83/13 135/69/13 50/72/13 53/84/13
+f 137/74/3 52/83/3 53/84/3 134/75/3
+f 131/77/5 130/85/5 140/86/5 51/78/5
+g sign_Cube_Cube_front-back_plaque_front-back
+f 23/87/2 48/88/2 24/89/2 47/90/2 46/91/2 45/19/2 11/18/2 33/92/2 34/93/2 35/94/2 13/95/2 12/96/2 3/97/2 30/98/2 29/99/2 5/100/2 6/101/2 4/102/2 17/103/2 41/104/2 18/105/2 40/106/2 19/107/2 39/108/2
+f 7/109/1 8/110/1 32/111/1 9/112/1 10/113/1 31/114/1 42/115/1 20/116/1 21/117/1 44/118/1 22/119/1 43/120/1 14/121/1 38/122/1 15/123/1 37/124/1 16/125/1 36/25/1 25/28/1 2/126/1 26/127/1 27/128/1 28/129/1 1/130/1
+g sign_Cube_Cube_front-back_pole_mount
+f 54/131/4 55/132/4 57/133/4 56/134/4
+f 59/135/26 58/136/26 61/137/26 60/138/26
+f 57/133/3 61/137/3 58/139/3 56/140/3
+f 54/141/5 59/142/5 60/138/5 55/132/5
+f 55/132/1 60/138/1 61/137/1 57/133/1
+f 62/143/26 54/144/26 64/145/26 63/146/26
+f 63/147/3 64/148/3 67/149/3 66/150/3
+f 66/151/4 67/152/4 65/153/4 89/154/4
+f 89/154/5 65/153/5 54/155/5 62/156/5
+f 68/157/26 69/158/26 56/159/26 70/160/26
+f 70/161/3 56/162/3 73/163/3 72/164/3
+f 72/165/4 73/166/4 71/167/4 95/168/4
+f 95/168/5 71/167/5 69/169/5 68/170/5
+f 90/171/26 74/172/26 76/173/26 75/174/26
+f 75/175/3 76/176/3 79/177/3 78/178/3
+f 78/179/4 79/180/4 59/181/4 77/182/4
+f 77/182/5 59/181/5 74/183/5 90/184/5
+f 96/185/26 80/186/26 81/187/26 97/188/26
+f 97/189/3 81/190/3 58/191/3 84/192/3
+f 84/193/4 58/194/4 83/195/4 82/196/4
+f 82/196/5 83/195/5 80/197/5 96/198/5
+f 85/199/1 86/200/1 88/201/1 87/202/1
+f 87/203/3 88/204/3 75/205/3 66/206/3
+f 66/206/2 75/205/2 90/207/2 89/208/2
+f 89/208/5 90/207/5 86/200/5 85/199/5
+f 87/209/4 66/151/4 89/154/4 85/210/4
+f 75/174/26 88/211/26 86/212/26 90/171/26
+f 91/213/1 92/214/1 94/215/1 93/216/1
+f 93/217/3 94/218/3 97/219/3 72/220/3
+f 72/220/2 97/219/2 96/221/2 95/222/2
+f 95/222/5 96/221/5 92/214/5 91/213/5
+f 93/223/4 72/165/4 95/168/4 91/224/4
+f 97/188/26 94/225/26 92/226/26 96/185/26
+f 98/227/26 99/228/26 101/229/26 100/230/26
+f 100/231/3 101/232/3 104/233/3 116/234/3
+f 116/235/4 104/236/4 103/237/4 102/238/4
+f 102/238/5 103/237/5 99/239/5 98/240/5
+f 115/241/26 105/242/26 106/243/26 117/244/26
+f 117/245/3 106/246/3 110/247/3 109/248/3
+f 109/249/4 110/250/4 108/251/4 107/252/4
+f 107/252/5 108/251/5 105/253/5 115/254/5
+f 111/255/1 112/256/1 114/257/1 113/258/1
+f 113/259/3 114/260/3 117/261/3 116/262/3
+f 116/262/2 117/261/2 115/263/2 102/264/2
+f 102/264/5 115/263/5 112/256/5 111/255/5
+f 113/265/4 116/235/4 102/238/4 111/266/4
+f 117/244/26 114/267/26 112/268/26 115/241/26
+f 120/269/26 128/270/26 126/271/26 121/272/26
+f 118/273/5 120/274/5 121/272/5 119/275/5
+f 123/276/3 125/277/3 124/278/3 122/279/3
+f 119/275/1 121/272/1 126/271/1 127/280/1
+f 118/281/4 119/275/4 127/280/4 129/282/4
+f 129/282/4 127/280/4 123/283/4 122/284/4
+f 128/270/26 124/285/26 125/286/26 126/271/26
+f 127/287/1 126/288/1 125/277/1 123/276/1
diff --git a/street_signs/signs.lua b/street_signs/signs.lua
new file mode 100644
index 0000000..b448a07
--- /dev/null
+++ b/street_signs/signs.lua
@@ -0,0 +1,2071 @@
+-- node definitions
+
+local S = street_signs.gettext
+
+street_signs.lbm_restore_nodes = {}
+
+local cbox = {
+ type = "fixed",
+ fixed = {
+ { -1/32, 23/16, -1/32, 1/32, 24/16, 1/32 },
+ { -1/32, 18/16, -8/16, 1/32, 23/16, 8/16 },
+ { -1/32, 17/16, -1/32, 1/32, 18/16, 1/32 },
+ { -8/16, 12/16, -1/32, 8/16, 17/16, 1/32 },
+ { -1/16, -8/16, -1/16, 1/16, 12/16, 1/16 },
+ }
+}
+
+local stdyaw = {
+ 0,
+ math.pi / -2,
+ math.pi,
+ math.pi / 2,
+}
+
+local wmyaw = {
+ nil,
+ nil,
+ math.pi / -2,
+ math.pi / 2,
+ 0,
+ math.pi,
+}
+
+table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_basic")
+table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_basic_top_only")
+
+minetest.register_node("street_signs:sign_basic", {
+ description = "D3-1a: Generic intersection street name sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "facedir",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_basic.obj",
+ tiles = { "street_signs_basic.png" },
+ groups = {choppy=2, dig_immediate=2},
+ default_color = "f",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = street_signs.facedir_rotate,
+ number_of_lines = 2,
+ horiz_scaling = 1,
+ vert_scaling = 1,
+ line_spacing = 9,
+ font_size = 31,
+ x_offset = 1,
+ y_offset = 4,
+ chars_per_line = 30,
+ entity_info = {
+ mesh = "street_signs_basic_entity.obj",
+ yaw = stdyaw
+ }
+})
+
+cbox = {
+ type = "fixed",
+ fixed = {
+ { -1/32, 7/16, -1/32, 1/32, 8/16, 1/32 },
+ { -1/32, 2/16, -8/16, 1/32, 7/16, 8/16 },
+ { -1/32, 1/16, -1/32, 1/32, 2/16, 1/32 },
+ { -8/16, -4/16, -1/32, 8/16, 1/16, 1/32 },
+ { -1/16, -8/16, -1/16, 1/16, -4/16, 1/16 },
+
+ }
+}
+
+minetest.register_node("street_signs:sign_basic_top_only", {
+ description = "D3-1a: Generic intersection street name sign (top only)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "facedir",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_basic_top_only.obj",
+ tiles = { "street_signs_basic.png" },
+ groups = {choppy=2, dig_immediate=2},
+ default_color = "f",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = street_signs.facedir_rotate,
+ number_of_lines = 2,
+ horiz_scaling = 1,
+ vert_scaling = 1,
+ line_spacing = 9,
+ font_size = 31,
+ x_offset = 1,
+ y_offset = 4,
+ chars_per_line = 30,
+ entity_info = {
+ mesh = "street_signs_basic_top_only_entity.obj",
+ yaw = stdyaw
+ }
+})
+
+for _, c in ipairs(street_signs.big_sign_colors) do
+
+ cbox = {
+ type = "wallmounted",
+ wall_side = { -0.5, -0.4375, -0.4375, -0.375, 0.4375, 1.4375 }
+ }
+
+ local color = c[1]
+ local defc = c[2]
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_highway_small_"..color)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_highway_medium_"..color)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_highway_large_"..color)
+
+ minetest.register_node("street_signs:sign_highway_small_"..color, {
+ description = "Small generic highway sign (3-line, "..color..")",
+ inventory_image = "street_signs_highway_small_"..color.."_inv.png",
+ wield_image = "street_signs_highway_small_"..color.."_inv.png",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_highway_small.obj",
+ tiles = { "street_signs_highway_small_"..color..".png" },
+ default_color = defc,
+ groups = {choppy=2, dig_immediate=2},
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = street_signs.wallmounted_rotate,
+ number_of_lines = 3,
+ horiz_scaling = 2,
+ vert_scaling = 1.15,
+ line_spacing = 2,
+ font_size = 31,
+ x_offset = 9,
+ y_offset = 7,
+ chars_per_line = 22,
+ entity_info = {
+ mesh = "street_signs_highway_small_entity.obj",
+ yaw = wmyaw
+ }
+ })
+ cbox = {
+ type = "wallmounted",
+ wall_side = { -0.5, -0.4375, -0.4375, -0.375, 1.4375, 1.4375 }
+ }
+
+ minetest.register_node("street_signs:sign_highway_medium_"..color, {
+ description = "Medium generic highway sign (5-line, "..color..")",
+ inventory_image = "street_signs_highway_medium_"..color.."_inv.png",
+ wield_image = "street_signs_highway_medium_"..color.."_inv.png",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_highway_medium.obj",
+ tiles = { "street_signs_highway_medium_"..color..".png" },
+ default_color = defc,
+ groups = {choppy=2, dig_immediate=2},
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = street_signs.wallmounted_rotate,
+ number_of_lines = 6,
+ horiz_scaling = 2,
+ vert_scaling = 0.915,
+ line_spacing = 2,
+ font_size = 31,
+ x_offset = 7,
+ y_offset = 10,
+ chars_per_line = 22,
+ entity_info = {
+ mesh = "street_signs_highway_medium_entity.obj",
+ yaw = wmyaw
+ }
+ })
+
+ cbox = {
+ type = "wallmounted",
+ wall_side = { -0.5, -0.4375, -0.4375, -0.375, 1.4375, 2.4375 }
+ }
+
+ minetest.register_node("street_signs:sign_highway_large_"..color, {
+ description = "Large generic highway sign (5-line, "..color..")",
+ inventory_image = "street_signs_highway_large_"..color.."_inv.png",
+ wield_image = "street_signs_highway_large_"..color.."_inv.png",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_highway_large.obj",
+ tiles = { "street_signs_highway_large_"..color..".png" },
+ default_color = defc,
+ groups = {choppy=2, dig_immediate=2},
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = street_signs.wallmounted_rotate,
+ number_of_lines = 6,
+ horiz_scaling = 2,
+ vert_scaling = 0.915,
+ line_spacing = 2,
+ font_size = 31,
+ x_offset = 12,
+ y_offset = 11,
+ chars_per_line = 25,
+ entity_info = {
+ mesh = "street_signs_highway_large_entity.obj",
+ yaw = wmyaw
+ }
+ })
+end
+
+for _, onpole in ipairs({"", "_onpole"}) do
+
+ local nci = nil
+ local on_rotate = street_signs.wallmounted_rotate
+ local pole_mount_tex = nil
+
+ if onpole == "_onpole" then
+ nci = 1
+ on_rotate = nil
+ pole_mount_tex = "street_signs_pole_mount.png"
+ end
+
+ cbox = street_signs.make_selection_boxes(24, 24, onpole)
+
+ minetest.register_node("street_signs:sign_service_hospital"..onpole, {
+ description = "D9-2: General service: hospital",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_hospital.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_hospital_inv.png",
+ wield_image = "street_signs_service_hospital_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_hospital"
+ })
+
+ minetest.register_node("street_signs:sign_service_handicapped"..onpole, {
+ description = "D9-6: General service: handicapped",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_handicapped.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_handicapped_inv.png",
+ wield_image = "street_signs_service_handicapped_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_handicapped"
+ })
+
+ minetest.register_node("street_signs:sign_service_fuel"..onpole, {
+ description = "D9-7: General service: fuel/gas",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_fuel.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_fuel_inv.png",
+ wield_image = "street_signs_service_fuel_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_fuel"
+ })
+
+ minetest.register_node("street_signs:sign_service_food"..onpole, {
+ description = "D9-8: General service: food",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_food.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_food_inv.png",
+ wield_image = "street_signs_service_food_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_food"
+ })
+
+ minetest.register_node("street_signs:sign_service_lodging"..onpole, {
+ description = "D9-9: General service: lodging",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_lodging.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_lodging_inv.png",
+ wield_image = "street_signs_service_lodging_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_lodging"
+ })
+
+ minetest.register_node("street_signs:sign_service_ev_charging"..onpole, {
+ description = "D9-11b: General service: EV charging",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x24"..onpole..".obj",
+ tiles = { "street_signs_service_ev_charging.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_service_ev_charging_inv.png",
+ wield_image = "street_signs_service_ev_charging_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_service_ev_charging"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 36, onpole)
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_us_route"..onpole)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_us_interstate"..onpole)
+
+ minetest.register_node("street_signs:sign_us_route"..onpole, {
+ description = "M1-4: Generic \"US Route\" sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = { "street_signs_us_route.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_us_route_inv.png",
+ wield_image = "street_signs_us_route_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 3.5,
+ vert_scaling = 1.4,
+ line_spacing = 6,
+ font_size = 31,
+ x_offset = 8,
+ y_offset = 11,
+ chars_per_line = 3,
+ entity_info = {
+ mesh = "street_signs_generic_sign_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_us_route"
+ })
+
+ minetest.register_node("street_signs:sign_us_interstate"..onpole, {
+ description = "M1-1: Generic US Interstate sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_interstate_shield"..onpole..".obj",
+ tiles = { "street_signs_us_interstate.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_us_interstate_inv.png",
+ wield_image = "street_signs_us_interstate_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "f",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 4.3,
+ vert_scaling = 1.4,
+ line_spacing = 6,
+ font_size = 31,
+ x_offset = 8,
+ y_offset = 14,
+ chars_per_line = 3,
+ entity_info = {
+ mesh = "street_signs_interstate_shield_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_us_interstate"
+ })
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_warning_3_line"..onpole)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_warning_4_line"..onpole)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_warning_orange_3_line"..onpole)
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_warning_orange_4_line"..onpole)
+
+ minetest.register_node("street_signs:sign_warning_3_line"..onpole, {
+ description = "W3-4: Generic US diamond \"warning\" sign (3-line, yellow)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_warning.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_warning_3_line_inv.png",
+ wield_image = "street_signs_warning_3_line_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 3,
+ horiz_scaling = 1.75,
+ vert_scaling = 1.75,
+ line_spacing = 1,
+ font_size = 15,
+ x_offset = 6,
+ y_offset = 19,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_warning_3_line"
+ })
+
+ minetest.register_node("street_signs:sign_warning_4_line"..onpole, {
+ description = "W23-2: Generic US diamond \"warning\" sign (4-line, yellow)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_warning.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_warning_4_line_inv.png",
+ wield_image = "street_signs_warning_4_line_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 4,
+ horiz_scaling = 1.75,
+ vert_scaling = 1.75,
+ line_spacing = 1,
+ font_size = 15,
+ x_offset = 6,
+ y_offset = 25,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_warning_4_line"
+ })
+
+ minetest.register_node("street_signs:sign_warning_orange_3_line"..onpole, {
+ description = "W3-4: Generic US diamond \"warning\" sign (3-line, orange)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_warning_orange.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_warning_orange_3_line_inv.png",
+ wield_image = "street_signs_warning_orange_3_line_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 3,
+ horiz_scaling = 1.75,
+ vert_scaling = 1.75,
+ line_spacing = 1,
+ font_size = 15,
+ x_offset = 6,
+ y_offset = 19,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_warning_orange_3_line"
+ })
+
+ minetest.register_node("street_signs:sign_warning_orange_4_line"..onpole, {
+ description = "W23-2: Generic US diamond \"warning\" sign (4-line, orange)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_warning_orange.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_warning_orange_4_line_inv.png",
+ wield_image = "street_signs_warning_orange_4_line_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 4,
+ horiz_scaling = 1.75,
+ vert_scaling = 1.75,
+ line_spacing = 1,
+ font_size = 15,
+ x_offset = 6,
+ y_offset = 25,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_warning_orange_4_line"
+ })
+
+ cbox = street_signs.make_selection_boxes(30, 36, onpole)
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_speed_limit"..onpole)
+
+ minetest.register_node("street_signs:sign_speed_limit"..onpole, {
+ description = "R2-1: Generic speed limit sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = { "street_signs_speed_limit.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_speed_limit_inv.png",
+ wield_image = "street_signs_speed_limit_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 2.65,
+ vert_scaling = 2.3,
+ line_spacing = 1,
+ font_size = 31,
+ x_offset = 8,
+ y_offset = 37,
+ chars_per_line = 4,
+ entity_info = {
+ mesh = "street_signs_generic_sign_30x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_speed_limit"
+ })
+
+-- below this point are image-only signs (i.e. no user-input)
+
+ cbox = street_signs.make_selection_boxes(36, 36, onpole)
+
+ minetest.register_node("street_signs:sign_stop"..onpole, {
+ description = "R1-1: Stop sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_stop"..onpole..".obj",
+ tiles = { "street_signs_stop.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_stop_inv.png",
+ wield_image = "street_signs_stop_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_stop"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 43.1, onpole, 0, -3.55, 0)
+
+ minetest.register_node("street_signs:sign_stop_all_way"..onpole, {
+ description = "R1-1 + R1-3P: Stop sign with \"all way\" plaque",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_stop_all_way"..onpole..".obj",
+ tiles = { "street_signs_stop.png",
+ "street_signs_sign_edge.png",
+ "street_signs_stop_all_way_plaque.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_stop_all_way_inv.png",
+ wield_image = "street_signs_stop_all_way_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_stop_all_way"
+ })
+
+ cbox = street_signs.make_selection_boxes(48, 48, onpole)
+
+ minetest.register_node("street_signs:sign_yield"..onpole, {
+ description = "R1-2: Yield sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_yield"..onpole..".obj",
+ tiles = { "street_signs_yield.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_yield_inv.png",
+ wield_image = "street_signs_yield_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_yield"
+ })
+
+ cbox = street_signs.make_selection_boxes(48, 24, onpole)
+
+ minetest.register_node("street_signs:sign_two_direction_large_arrow"..onpole, {
+ description = "W1-7: Two direction large arrow",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_48x24"..onpole..".obj",
+ tiles = { "street_signs_two_direction_large_arrow.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_two_direction_large_arrow_inv.png",
+ wield_image = "street_signs_two_direction_large_arrow_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_two_direction_large_arrow"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 36, onpole)
+
+ minetest.register_node("street_signs:sign_cross_road_ahead"..onpole, {
+ description = "W2-1: Cross-road ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_cross_road_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_cross_road_ahead_inv.png",
+ wield_image = "street_signs_cross_road_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_cross_road_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_side_road_right_ahead"..onpole, {
+ description = "W2-2: Side road ahead (right)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_side_road_right_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_side_road_right_ahead_inv.png",
+ wield_image = "street_signs_side_road_right_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_side_road_right_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_side_road_left_ahead"..onpole, {
+ description = "W2-2: Side road ahead (left)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_side_road_left_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_side_road_left_ahead_inv.png",
+ wield_image = "street_signs_side_road_left_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_side_road_left_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_t_junction_ahead"..onpole, {
+ description = "W2-4: \"T\" junction ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_t_junction_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_t_junction_ahead_inv.png",
+ wield_image = "street_signs_t_junction_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_t_junction_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_circular_intersection_ahead"..onpole, {
+ description = "W2-6: Roundabout/traffic circle ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_circular_intersection_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_circular_intersection_ahead_inv.png",
+ wield_image = "street_signs_circular_intersection_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_circular_intersection_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_offset_side_road_left_ahead"..onpole, {
+ description = "W2-7L: Offset side-roads ahead (left first)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_offset_side_road_left_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_offset_side_road_left_ahead_inv.png",
+ wield_image = "street_signs_offset_side_road_left_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_offset_side_road_left_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_offset_side_road_right_ahead"..onpole, {
+ description = "W2-7R: Offset side-roads ahead (right first)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_offset_side_road_right_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_offset_side_road_right_ahead_inv.png",
+ wield_image = "street_signs_offset_side_road_right_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_offset_side_road_right_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_divided_highway_begins"..onpole, {
+ description = "W6-1: Divided highway begins sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_divided_highway_begins.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_divided_highway_begins_inv.png",
+ wield_image = "street_signs_divided_highway_begins_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_divided_highway_begins"
+ })
+
+ minetest.register_node("street_signs:sign_divided_highway_ends"..onpole, {
+ description = "W6-2: Divided highway ends sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_divided_highway_ends.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_divided_highway_ends_inv.png",
+ wield_image = "street_signs_divided_highway_ends_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_divided_highway_ends"
+ })
+
+ minetest.register_node("street_signs:sign_pedestrian_crossing"..onpole, {
+ description = "W11-2: Pedestrian crossing sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_pedestrian_crossing.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_pedestrian_crossing_inv.png",
+ wield_image = "street_signs_pedestrian_crossing_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_pedestrian_crossing"
+ })
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_low_clearance"..onpole)
+
+ minetest.register_node("street_signs:sign_low_clearance"..onpole, {
+ description = "W12-2: Low clearance",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_low_clearance.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_low_clearance_inv.png",
+ wield_image = "street_signs_low_clearance_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 1.3,
+ vert_scaling = 3,
+ line_spacing = 1,
+ font_size = 31,
+ x_offset = 8,
+ y_offset = 36,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_low_clearance"
+ })
+
+ minetest.register_node("street_signs:sign_signal_ahead"..onpole, {
+ description = "W3-3: Traffic signal ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_signal_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_signal_ahead_inv.png",
+ wield_image = "street_signs_signal_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_signal_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_stop_ahead"..onpole, {
+ description = "W3-1: Stop sign ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_stop_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_stop_ahead_inv.png",
+ wield_image = "street_signs_stop_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_stop_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_yield_ahead"..onpole, {
+ description = "W3-2: Yield sign ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_yield_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_yield_ahead_inv.png",
+ wield_image = "street_signs_yield_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_yield_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_merging_traffic"..onpole, {
+ description = "W4-1: Traffic merging from right sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_merging_traffic.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_merging_traffic_inv.png",
+ wield_image = "street_signs_merging_traffic_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_merging_traffic"
+ })
+
+ minetest.register_node("street_signs:sign_two_way_traffic"..onpole, {
+ description = "W6-3: Two-way traffic sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_two_way_traffic.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_two_way_traffic_inv.png",
+ wield_image = "street_signs_two_way_traffic_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_two_way_traffic"
+ })
+
+ minetest.register_node("street_signs:sign_left_lane_ends"..onpole, {
+ description = "W4-2: Left lane ends sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_left_lane_ends.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_left_lane_ends_inv.png",
+ wield_image = "street_signs_left_lane_ends_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_left_lane_ends"
+ })
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_hill_with_grade_ahead"..onpole)
+
+ minetest.register_node("street_signs:sign_hill_with_grade_ahead"..onpole, {
+ description = "W7-1a: Hill with grade ahead",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_hill_with_grade_ahead.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_hill_with_grade_ahead_inv.png",
+ wield_image = "street_signs_hill_with_grade_ahead_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 1.9,
+ vert_scaling = 4.6,
+ line_spacing = 1,
+ font_size = 31,
+ x_offset = 8,
+ y_offset = 93,
+ chars_per_line = 15,
+ entity_info = {
+ mesh = "street_signs_warning_36x36_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_hill_with_grade_ahead"
+ })
+
+ minetest.register_node("street_signs:sign_rr_grade_crossing_advance"..onpole, {
+ description = "W10-1: Railroad grade crossing advance warning",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_rr_grade_crossing_advance"..onpole..".obj",
+ tiles = { "street_signs_rr_grade_crossing_advance.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_rr_grade_crossing_advance_inv.png",
+ wield_image = "street_signs_rr_grade_crossing_advance_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_rr_grade_crossing_advance"
+ })
+
+
+ minetest.register_node("street_signs:sign_right_lane_ends"..onpole, {
+ description = "W4-2: Right lane ends sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_warning_36x36"..onpole..".obj",
+ tiles = { "street_signs_right_lane_ends.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_right_lane_ends_inv.png",
+ wield_image = "street_signs_right_lane_ends_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_right_lane_ends"
+ })
+
+ cbox = street_signs.make_selection_boxes(24, 30, onpole)
+
+ minetest.register_node("street_signs:sign_do_not_stop_on_tracks"..onpole, {
+ description = "R8-8: Do not stop on tracks",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x30"..onpole..".obj",
+ tiles = { "street_signs_do_not_stop_on_tracks.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_do_not_stop_on_tracks_inv.png",
+ wield_image = "street_signs_do_not_stop_on_tracks.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_do_not_stop_on_tracks"
+ })
+
+ cbox = street_signs.make_selection_boxes(9, 15, onpole, 0, 0, -1.25)
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3a"..onpole, {
+ description = "R10-3a: Pedestrians, push button to cross (pointing left)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3a.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3a_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3a_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3a"
+ })
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3a_right"..onpole, {
+ description = "R10-3a: Pedestrians, push button to cross (pointing right)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3a_right.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3a_right_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3a_right_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3a_right"
+ })
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3e"..onpole, {
+ description = "R10-3e: Pedestrians, push button to cross (pointing right)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3e.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3e_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3e_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3e"
+ })
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3e_left"..onpole, {
+ description = "R10-3e: Pedestrians, push button to cross (pointing left)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3e_left.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3e_left_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3e_left_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3e_left"
+ })
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_ped_push_button_to_cross_r10_3i"..onpole)
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3i"..onpole, {
+ description = "R10-3i: Pedestrians, push button to cross (pointing right, with street name)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3i.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3i_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3i_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 3,
+ vert_scaling = 12,
+ line_spacing = 1,
+ font_size = 31,
+ x_offset = 15,
+ y_offset = 333,
+ chars_per_line = 25,
+ entity_info = {
+ mesh = "street_signs_generic_sign_9x15_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3i"
+ })
+
+ table.insert(street_signs.lbm_restore_nodes, "street_signs:sign_ped_push_button_to_cross_r10_3i_left"..onpole)
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_cross_r10_3i_left"..onpole, {
+ description = "R10-3i: Pedestrians, push button to cross (pointing left, with street name)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x15"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_cross_r10_3i_left.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_cross_r10_3i_left_inv.png",
+ wield_image = "street_signs_ped_push_button_to_cross_r10_3i_left_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ on_construct = street_signs.construct_sign,
+ on_destruct = street_signs.destruct_sign,
+ after_place_node = street_signs.after_place_node,
+ on_receive_fields = street_signs.receive_fields,
+ on_punch = street_signs.update_sign,
+ on_rotate = on_rotate,
+ number_of_lines = 1,
+ horiz_scaling = 3,
+ vert_scaling = 12,
+ line_spacing = 1,
+ font_size = 31,
+ x_offset = 15,
+ y_offset = 333,
+ chars_per_line = 25,
+ entity_info = {
+ mesh = "street_signs_generic_sign_9x15_entity"..onpole..".obj",
+ yaw = wmyaw
+ },
+ drop = "street_signs:sign_ped_push_button_to_cross_r10_3i_left"
+ })
+
+ cbox = street_signs.make_selection_boxes(9, 12, onpole, 0, 0, -1.25)
+
+ minetest.register_node("street_signs:sign_ped_push_button_to_turn_on_warning_lights"..onpole, {
+ description = "R10-25: Pedestrians, push button to turn on warning lights",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_9x12"..onpole..".obj",
+ tiles = { "street_signs_ped_push_button_to_turn_on_warning_lights.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_ped_push_button_to_turn_on_warning_lights_inv.png",
+ wield_image = "street_signs_ped_push_button_to_turn_on_warning_lights_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ default_color = "0",
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_ped_push_button_to_turn_on_warning_lights"
+ })
+
+ cbox = street_signs.make_selection_boxes(60, 24, onpole)
+
+ minetest.register_node("street_signs:sign_roundabout_directional"..onpole, {
+ description = "R6-4b: Roundabout direction (4 chevrons)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_60x24"..onpole..".obj",
+ tiles = { "street_signs_roundabout_directional.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_roundabout_directional_inv.png",
+ wield_image = "street_signs_roundabout_directional.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_roundabout_directional"
+ })
+
+ cbox = street_signs.make_selection_boxes(30, 36, onpole)
+
+ minetest.register_node("street_signs:sign_left_on_green_arrow_only"..onpole, {
+ description = "R10-5: Left on green arrow only sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = { "street_signs_left_on_green_arrow_only.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_left_on_green_arrow_only_inv.png",
+ wield_image = "street_signs_left_on_green_arrow_only_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_left_on_green_arrow_only"
+ })
+
+ cbox = street_signs.make_selection_boxes(24, 36, onpole)
+
+ minetest.register_node("street_signs:sign_stop_here_on_red"..onpole, {
+ description = "R10-6: Stop here on red sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x36"..onpole..".obj",
+ tiles = { "street_signs_stop_here_on_red.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_stop_here_on_red_inv.png",
+ wield_image = "street_signs_stop_here_on_red_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_stop_here_on_red"
+ })
+
+ cbox = street_signs.make_selection_boxes(30, 36, onpole)
+
+ minetest.register_node("street_signs:sign_left_turn_yield_on_green_light"..onpole, {
+ description = "R10-12: Left turn yield on green light",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = { "street_signs_left_turn_yield_on_green_light.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_left_turn_yield_on_green_light_inv.png",
+ wield_image = "street_signs_left_turn_yield_on_green_light_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_left_turn_yield_on_green_light"
+ })
+
+ cbox = street_signs.make_selection_boxes(24, 30, onpole)
+
+ minetest.register_node("street_signs:sign_crosswalk_stop_on_red_light"..onpole, {
+ description = "R10-23: Crosswalk: stop on red light",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_24x30"..onpole..".obj",
+ tiles = { "street_signs_crosswalk_stop_on_red_light.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_crosswalk_stop_on_red_light_inv.png",
+ wield_image = "street_signs_crosswalk_stop_on_red_light_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_crosswalk_stop_on_red_light"
+ })
+
+
+ cbox = street_signs.make_selection_boxes(36, 48, onpole)
+
+ minetest.register_node("street_signs:sign_keep_right"..onpole, {
+ description = "R4-7: Keep right sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x48"..onpole..".obj",
+ tiles = { "street_signs_keep_right.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_keep_right_inv.png",
+ wield_image = "street_signs_keep_right_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_keep_right"
+ })
+
+ minetest.register_node("street_signs:sign_keep_left"..onpole, {
+ description = "R4-8: Keep left sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x48"..onpole..".obj",
+ tiles = { "street_signs_keep_left.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_keep_left_inv.png",
+ wield_image = "street_signs_keep_left_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_keep_left"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 36, onpole)
+
+ minetest.register_node("street_signs:sign_no_right_turn"..onpole, {
+ description = "R3-1: No right turn",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_no_right_turn.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_no_right_turn_inv.png",
+ wield_image = "street_signs_no_right_turn_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_no_right_turn"
+ })
+
+ minetest.register_node("street_signs:sign_no_left_turn"..onpole, {
+ description = "R3-2: No left turn",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_no_left_turn.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_no_left_turn_inv.png",
+ wield_image = "street_signs_no_left_turn_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_no_left_turn"
+ })
+
+ minetest.register_node("street_signs:sign_no_u_turn"..onpole, {
+ description = "R3-4: No U-turn",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_no_u_turn.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_no_u_turn_inv.png",
+ wield_image = "street_signs_no_u_turn_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_no_u_turn"
+ })
+
+ minetest.register_node("street_signs:sign_u_turn_here"..onpole, {
+ description = "U-turn here",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_u_turn_here.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_u_turn_here_inv.png",
+ wield_image = "street_signs_u_turn_here_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_u_turn_here"
+ })
+
+ minetest.register_node("street_signs:sign_left_turn_only"..onpole, {
+ description = "R3-5: Left turn only",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = {
+ "street_signs_left_turn_only.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_left_turn_only_inv.png",
+ wield_image = "street_signs_left_turn_only_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_left_turn_only"
+ })
+
+ minetest.register_node("street_signs:sign_right_turn_only"..onpole, {
+ description = "R3-5: Right turn only",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = {
+ "street_signs_right_turn_only.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_right_turn_only_inv.png",
+ wield_image = "street_signs_right_turn_only_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_right_turn_only"
+ })
+
+ minetest.register_node("street_signs:sign_straight_through_only"..onpole, {
+ description = "R3-5a: Straight through only",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x36"..onpole..".obj",
+ tiles = {
+ "street_signs_straight_through_only.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_straight_through_only_inv.png",
+ wield_image = "street_signs_straight_through_only_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_straight_through_only"
+ })
+
+ minetest.register_node("street_signs:sign_left_lane_must_turn_left"..onpole, {
+ description = "R3-7: Left lane must turn left",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_left_lane_must_turn_left.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_left_lane_must_turn_left_inv.png",
+ wield_image = "street_signs_left_lane_must_turn_left_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_left_lane_must_turn_left"
+ })
+
+ minetest.register_node("street_signs:sign_right_lane_must_turn_right"..onpole, {
+ description = "R3-7: Right lane must turn right",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_right_lane_must_turn_right.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_right_lane_must_turn_right_inv.png",
+ wield_image = "street_signs_right_lane_must_turn_right_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_right_lane_must_turn_right"
+ })
+
+ minetest.register_node("street_signs:sign_no_straight_through"..onpole, {
+ description = "R3-27: No straight through",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_no_straight_through.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_no_straight_through_inv.png",
+ wield_image = "street_signs_no_straight_through_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_no_straight_through"
+ })
+
+ minetest.register_node("street_signs:sign_do_not_enter"..onpole, {
+ description = "R5-1: Do not enter sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x36"..onpole..".obj",
+ tiles = {
+ "street_signs_do_not_enter.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_do_not_enter_inv.png",
+ wield_image = "street_signs_do_not_enter_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_do_not_enter"
+ })
+
+ cbox = street_signs.make_selection_boxes(42, 30, onpole)
+
+ minetest.register_node("street_signs:sign_wrong_way"..onpole, {
+ description = "R5-1a: Wrong way sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_42x30"..onpole..".obj",
+ tiles = { "street_signs_wrong_way.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_wrong_way_inv.png",
+ wield_image = "street_signs_wrong_way_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_wrong_way"
+ })
+
+ cbox = street_signs.make_selection_boxes(54, 18, onpole)
+
+ minetest.register_node("street_signs:sign_one_way_left"..onpole, {
+ description = "R6-1: One way (left)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_54x18"..onpole..".obj",
+ tiles = { "street_signs_one_way_left.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_one_way_left_inv.png",
+ wield_image = "street_signs_one_way_left_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_one_way_left"
+ })
+
+ minetest.register_node("street_signs:sign_one_way_right"..onpole, {
+ description = "R6-1: One way (right)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_54x18"..onpole..".obj",
+ tiles = { "street_signs_one_way_right.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_one_way_right_inv.png",
+ wield_image = "street_signs_one_way_right_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_one_way_right"
+ })
+
+ cbox = street_signs.make_selection_boxes(30, 24, onpole)
+
+ minetest.register_node("street_signs:sign_divided_highway_with_cross_road"..onpole, {
+ description = "R6-3: divided highway with cross road",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_30x24"..onpole..".obj",
+ tiles = { "street_signs_divided_highway_with_cross_road.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_divided_highway_with_cross_road_inv.png",
+ wield_image = "street_signs_divided_highway_with_cross_road_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_divided_highway_with_cross_road"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 42, onpole)
+
+ minetest.register_node("street_signs:sign_use_lane_with_green_arrow"..onpole, {
+ description = "R10-8: Use lane with green arrow",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x42"..onpole..".obj",
+ tiles = { "street_signs_use_lane_with_green_arrow.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_use_lane_with_green_arrow_inv.png",
+ wield_image = "street_signs_use_lane_with_green_arrow_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:use_lane_with_green_arrow"
+ })
+
+ cbox = street_signs.make_selection_boxes(36, 48, onpole)
+
+ minetest.register_node("street_signs:sign_no_turn_on_red_light"..onpole, {
+ description = "R10-11: No turn on red light",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_generic_sign_36x48"..onpole..".obj",
+ tiles = { "street_signs_no_turn_on_red_light.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_no_turn_on_red_light_inv.png",
+ wield_image = "street_signs_no_turn_on_red_light_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:no_turn_on_red_light"
+ })
+
+ cbox = street_signs.make_selection_boxes(41, 41, onpole)
+
+ minetest.register_node("street_signs:sign_rr_grade_crossbuck"..onpole, {
+ description = "R15-1: Railroad grade crossing (crossbuck)",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_rr_grade_crossbuck"..onpole..".obj",
+ tiles = { "street_signs_rr_grade_crossbuck.png",
+ "street_signs_sign_edge.png",
+ pole_mount_tex
+ },
+ inventory_image = "street_signs_rr_grade_crossbuck_inv.png",
+ wield_image = "street_signs_rr_grade_crossbuck_inv.png",
+ groups = {choppy=2, dig_immediate=2, not_in_creative_inventory = nci},
+ after_place_node = street_signs.after_place_node,
+ on_rotate = on_rotate,
+ drop = "street_signs:sign_rr_grade_crossbuck"
+ })
+end
+
+cbox = {
+ type = "fixed",
+ fixed = { -0.1875, -0.5, -0.25, 0.1875, 0.6125, 0.25 }
+}
+
+minetest.register_node("street_signs:sign_stop_for_ped", {
+ description = "R1-6a: Stop for pedestrian in crosswalk sign",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "facedir",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_stop_for_ped.obj",
+ tiles = { "street_signs_stop_for_ped.png" },
+ inventory_image = "street_signs_stop_for_ped_inv.png",
+ groups = {choppy=2, dig_immediate=2},
+})
+
+for _, d in ipairs({"l", "c", "r"}) do
+
+ cbox = street_signs.make_selection_boxes(12, 36, nil)
+
+ minetest.register_node("street_signs:sign_object_marker_type3_"..d, {
+ description = "OM3-"..string.upper(d)..": Type 3 object marker",
+ paramtype = "light",
+ sunlight_propagates = true,
+ paramtype2 = "wallmounted",
+ drawtype = "mesh",
+ node_box = cbox,
+ selection_box = cbox,
+ mesh = "street_signs_object_marker_type_3.obj",
+ tiles = { "street_signs_object_marker_type3_"..d..".png",
+ "street_signs_sign_edge.png"
+ },
+ inventory_image = "street_signs_object_marker_type3_"..d.."_inv.png",
+ groups = {choppy=2, dig_immediate=2},
+ })
+end
+
+-- restore signs' text after /clearobjects and the like, the next time
+-- a block is reloaded by the server.
+
+minetest.register_lbm({
+ nodenames = street_signs.lbm_restore_nodes,
+ name = "street_signs:restore_sign_text",
+ label = "Restore sign text",
+ run_at_every_load = true,
+ action = function(pos, node)
+ street_signs.update_sign(pos)
+ end
+})
diff --git a/street_signs/textures/street_signs_circular_intersection_ahead.png b/street_signs/textures/street_signs_circular_intersection_ahead.png
new file mode 100644
index 0000000..3618e01
--- /dev/null
+++ b/street_signs/textures/street_signs_circular_intersection_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_circular_intersection_ahead_inv.png b/street_signs/textures/street_signs_circular_intersection_ahead_inv.png
new file mode 100644
index 0000000..c699d8a
--- /dev/null
+++ b/street_signs/textures/street_signs_circular_intersection_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_cross_road_ahead.png b/street_signs/textures/street_signs_cross_road_ahead.png
new file mode 100644
index 0000000..aacf49c
--- /dev/null
+++ b/street_signs/textures/street_signs_cross_road_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_cross_road_ahead_inv.png b/street_signs/textures/street_signs_cross_road_ahead_inv.png
new file mode 100644
index 0000000..ad19ee4
--- /dev/null
+++ b/street_signs/textures/street_signs_cross_road_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png b/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png
new file mode 100644
index 0000000..0b1618d
--- /dev/null
+++ b/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png
Binary files differ
diff --git a/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png b/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png
new file mode 100644
index 0000000..12a6e21
--- /dev/null
+++ b/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_begins.png b/street_signs/textures/street_signs_divided_highway_begins.png
new file mode 100644
index 0000000..095a4d8
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_begins.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_begins_inv.png b/street_signs/textures/street_signs_divided_highway_begins_inv.png
new file mode 100644
index 0000000..a58a77a
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_begins_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_ends.png b/street_signs/textures/street_signs_divided_highway_ends.png
new file mode 100644
index 0000000..1eaf159
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_ends.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_ends_inv.png b/street_signs/textures/street_signs_divided_highway_ends_inv.png
new file mode 100644
index 0000000..2496bdf
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_ends_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_with_cross_road.png b/street_signs/textures/street_signs_divided_highway_with_cross_road.png
new file mode 100644
index 0000000..ab7b247
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_with_cross_road.png
Binary files differ
diff --git a/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png b/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png
new file mode 100644
index 0000000..7353b28
--- /dev/null
+++ b/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_do_not_stop_on_tracks.png b/street_signs/textures/street_signs_do_not_stop_on_tracks.png
new file mode 100644
index 0000000..73674c9
--- /dev/null
+++ b/street_signs/textures/street_signs_do_not_stop_on_tracks.png
Binary files differ
diff --git a/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png b/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png
new file mode 100644
index 0000000..89ae2d1
--- /dev/null
+++ b/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_hill_with_grade_ahead.png b/street_signs/textures/street_signs_hill_with_grade_ahead.png
new file mode 100644
index 0000000..23deb03
--- /dev/null
+++ b/street_signs/textures/street_signs_hill_with_grade_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png b/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png
new file mode 100644
index 0000000..668bd60
--- /dev/null
+++ b/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_lane_must_turn_left.png b/street_signs/textures/street_signs_left_lane_must_turn_left.png
new file mode 100644
index 0000000..6614c5b
--- /dev/null
+++ b/street_signs/textures/street_signs_left_lane_must_turn_left.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png b/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png
new file mode 100644
index 0000000..8d9a2da
--- /dev/null
+++ b/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_turn_only.png b/street_signs/textures/street_signs_left_turn_only.png
new file mode 100644
index 0000000..39492e2
--- /dev/null
+++ b/street_signs/textures/street_signs_left_turn_only.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_turn_only_inv.png b/street_signs/textures/street_signs_left_turn_only_inv.png
new file mode 100644
index 0000000..33c5036
--- /dev/null
+++ b/street_signs/textures/street_signs_left_turn_only_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_turn_yield_on_green_light.png b/street_signs/textures/street_signs_left_turn_yield_on_green_light.png
new file mode 100644
index 0000000..c50f214
--- /dev/null
+++ b/street_signs/textures/street_signs_left_turn_yield_on_green_light.png
Binary files differ
diff --git a/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png b/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png
new file mode 100644
index 0000000..5eee5ac
--- /dev/null
+++ b/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_low_clearance.png b/street_signs/textures/street_signs_low_clearance.png
new file mode 100644
index 0000000..214f3ce
--- /dev/null
+++ b/street_signs/textures/street_signs_low_clearance.png
Binary files differ
diff --git a/street_signs/textures/street_signs_low_clearance_inv.png b/street_signs/textures/street_signs_low_clearance_inv.png
new file mode 100644
index 0000000..8a608bb
--- /dev/null
+++ b/street_signs/textures/street_signs_low_clearance_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_left_turn.png b/street_signs/textures/street_signs_no_left_turn.png
new file mode 100644
index 0000000..a60a358
--- /dev/null
+++ b/street_signs/textures/street_signs_no_left_turn.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_left_turn_inv.png b/street_signs/textures/street_signs_no_left_turn_inv.png
new file mode 100644
index 0000000..a9bbbe9
--- /dev/null
+++ b/street_signs/textures/street_signs_no_left_turn_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_right_turn.png b/street_signs/textures/street_signs_no_right_turn.png
new file mode 100644
index 0000000..fdf8877
--- /dev/null
+++ b/street_signs/textures/street_signs_no_right_turn.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_right_turn_inv.png b/street_signs/textures/street_signs_no_right_turn_inv.png
new file mode 100644
index 0000000..80e39df
--- /dev/null
+++ b/street_signs/textures/street_signs_no_right_turn_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_straight_through.png b/street_signs/textures/street_signs_no_straight_through.png
new file mode 100644
index 0000000..9eda5f9
--- /dev/null
+++ b/street_signs/textures/street_signs_no_straight_through.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_straight_through_inv.png b/street_signs/textures/street_signs_no_straight_through_inv.png
new file mode 100644
index 0000000..9fd6cd8
--- /dev/null
+++ b/street_signs/textures/street_signs_no_straight_through_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_u_turn.png b/street_signs/textures/street_signs_no_u_turn.png
new file mode 100644
index 0000000..56ed02b
--- /dev/null
+++ b/street_signs/textures/street_signs_no_u_turn.png
Binary files differ
diff --git a/street_signs/textures/street_signs_no_u_turn_inv.png b/street_signs/textures/street_signs_no_u_turn_inv.png
new file mode 100644
index 0000000..44abc95
--- /dev/null
+++ b/street_signs/textures/street_signs_no_u_turn_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_offset_side_road_left_ahead.png b/street_signs/textures/street_signs_offset_side_road_left_ahead.png
new file mode 100644
index 0000000..42f6fc8
--- /dev/null
+++ b/street_signs/textures/street_signs_offset_side_road_left_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png b/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png
new file mode 100644
index 0000000..2db44a6
--- /dev/null
+++ b/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_offset_side_road_right_ahead.png b/street_signs/textures/street_signs_offset_side_road_right_ahead.png
new file mode 100644
index 0000000..c2bd37f
--- /dev/null
+++ b/street_signs/textures/street_signs_offset_side_road_right_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png b/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png
new file mode 100644
index 0000000..1cf5222
--- /dev/null
+++ b/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_one_way_left.png b/street_signs/textures/street_signs_one_way_left.png
new file mode 100644
index 0000000..68ab6b8
--- /dev/null
+++ b/street_signs/textures/street_signs_one_way_left.png
Binary files differ
diff --git a/street_signs/textures/street_signs_one_way_left_inv.png b/street_signs/textures/street_signs_one_way_left_inv.png
new file mode 100644
index 0000000..b317f33
--- /dev/null
+++ b/street_signs/textures/street_signs_one_way_left_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_one_way_right.png b/street_signs/textures/street_signs_one_way_right.png
new file mode 100644
index 0000000..48fa900
--- /dev/null
+++ b/street_signs/textures/street_signs_one_way_right.png
Binary files differ
diff --git a/street_signs/textures/street_signs_one_way_right_inv.png b/street_signs/textures/street_signs_one_way_right_inv.png
new file mode 100644
index 0000000..cb51a5f
--- /dev/null
+++ b/street_signs/textures/street_signs_one_way_right_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png
new file mode 100644
index 0000000..cade57b
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png
new file mode 100644
index 0000000..55267ac
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png
new file mode 100644
index 0000000..20caa26
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png
new file mode 100644
index 0000000..c7d4731
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png
new file mode 100644
index 0000000..3caf6d0
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png
new file mode 100644
index 0000000..03ca96e
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png
new file mode 100644
index 0000000..6dee2f6
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png
new file mode 100644
index 0000000..3202aee
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png
new file mode 100644
index 0000000..d5bcced
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png
new file mode 100644
index 0000000..1da6142
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png
new file mode 100644
index 0000000..98852c4
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png
new file mode 100644
index 0000000..6695907
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png b/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png
new file mode 100644
index 0000000..83cdb1a
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png
Binary files differ
diff --git a/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png b/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png
new file mode 100644
index 0000000..758d2a1
--- /dev/null
+++ b/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_right_lane_must_turn_right.png b/street_signs/textures/street_signs_right_lane_must_turn_right.png
new file mode 100644
index 0000000..b47a995
--- /dev/null
+++ b/street_signs/textures/street_signs_right_lane_must_turn_right.png
Binary files differ
diff --git a/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png b/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png
new file mode 100644
index 0000000..4ae140e
--- /dev/null
+++ b/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_right_turn_only.png b/street_signs/textures/street_signs_right_turn_only.png
new file mode 100644
index 0000000..7ca3170
--- /dev/null
+++ b/street_signs/textures/street_signs_right_turn_only.png
Binary files differ
diff --git a/street_signs/textures/street_signs_right_turn_only_inv.png b/street_signs/textures/street_signs_right_turn_only_inv.png
new file mode 100644
index 0000000..08fd6ef
--- /dev/null
+++ b/street_signs/textures/street_signs_right_turn_only_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_roundabout_directional.png b/street_signs/textures/street_signs_roundabout_directional.png
new file mode 100644
index 0000000..d7c5e7b
--- /dev/null
+++ b/street_signs/textures/street_signs_roundabout_directional.png
Binary files differ
diff --git a/street_signs/textures/street_signs_roundabout_directional_inv.png b/street_signs/textures/street_signs_roundabout_directional_inv.png
new file mode 100644
index 0000000..8d64490
--- /dev/null
+++ b/street_signs/textures/street_signs_roundabout_directional_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_rr_grade_crossbuck.png b/street_signs/textures/street_signs_rr_grade_crossbuck.png
new file mode 100644
index 0000000..1d75ded
--- /dev/null
+++ b/street_signs/textures/street_signs_rr_grade_crossbuck.png
Binary files differ
diff --git a/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png b/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png
new file mode 100644
index 0000000..d1ec930
--- /dev/null
+++ b/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_rr_grade_crossing_advance.png b/street_signs/textures/street_signs_rr_grade_crossing_advance.png
new file mode 100644
index 0000000..471b04b
--- /dev/null
+++ b/street_signs/textures/street_signs_rr_grade_crossing_advance.png
Binary files differ
diff --git a/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png b/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png
new file mode 100644
index 0000000..0db17f9
--- /dev/null
+++ b/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_ev_charging.png b/street_signs/textures/street_signs_service_ev_charging.png
new file mode 100644
index 0000000..dbc866c
--- /dev/null
+++ b/street_signs/textures/street_signs_service_ev_charging.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_ev_charging_inv.png b/street_signs/textures/street_signs_service_ev_charging_inv.png
new file mode 100644
index 0000000..f25e71e
--- /dev/null
+++ b/street_signs/textures/street_signs_service_ev_charging_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_food.png b/street_signs/textures/street_signs_service_food.png
new file mode 100644
index 0000000..4364546
--- /dev/null
+++ b/street_signs/textures/street_signs_service_food.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_food_inv.png b/street_signs/textures/street_signs_service_food_inv.png
new file mode 100644
index 0000000..0376aa2
--- /dev/null
+++ b/street_signs/textures/street_signs_service_food_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_fuel.png b/street_signs/textures/street_signs_service_fuel.png
new file mode 100644
index 0000000..6194db6
--- /dev/null
+++ b/street_signs/textures/street_signs_service_fuel.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_fuel_inv.png b/street_signs/textures/street_signs_service_fuel_inv.png
new file mode 100644
index 0000000..bb5c952
--- /dev/null
+++ b/street_signs/textures/street_signs_service_fuel_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_handicapped.png b/street_signs/textures/street_signs_service_handicapped.png
new file mode 100644
index 0000000..d6c07f1
--- /dev/null
+++ b/street_signs/textures/street_signs_service_handicapped.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_handicapped_inv.png b/street_signs/textures/street_signs_service_handicapped_inv.png
new file mode 100644
index 0000000..5590936
--- /dev/null
+++ b/street_signs/textures/street_signs_service_handicapped_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_hospital.png b/street_signs/textures/street_signs_service_hospital.png
new file mode 100644
index 0000000..c522683
--- /dev/null
+++ b/street_signs/textures/street_signs_service_hospital.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_hospital_inv.png b/street_signs/textures/street_signs_service_hospital_inv.png
new file mode 100644
index 0000000..f3fbe48
--- /dev/null
+++ b/street_signs/textures/street_signs_service_hospital_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_lodging.png b/street_signs/textures/street_signs_service_lodging.png
new file mode 100644
index 0000000..8f5933d
--- /dev/null
+++ b/street_signs/textures/street_signs_service_lodging.png
Binary files differ
diff --git a/street_signs/textures/street_signs_service_lodging_inv.png b/street_signs/textures/street_signs_service_lodging_inv.png
new file mode 100644
index 0000000..ac6d82e
--- /dev/null
+++ b/street_signs/textures/street_signs_service_lodging_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_side_road_left_ahead.png b/street_signs/textures/street_signs_side_road_left_ahead.png
new file mode 100644
index 0000000..5b71794
--- /dev/null
+++ b/street_signs/textures/street_signs_side_road_left_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_side_road_left_ahead_inv.png b/street_signs/textures/street_signs_side_road_left_ahead_inv.png
new file mode 100644
index 0000000..5f753fe
--- /dev/null
+++ b/street_signs/textures/street_signs_side_road_left_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_side_road_right_ahead.png b/street_signs/textures/street_signs_side_road_right_ahead.png
new file mode 100644
index 0000000..f63f956
--- /dev/null
+++ b/street_signs/textures/street_signs_side_road_right_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_side_road_right_ahead_inv.png b/street_signs/textures/street_signs_side_road_right_ahead_inv.png
new file mode 100644
index 0000000..8ab999d
--- /dev/null
+++ b/street_signs/textures/street_signs_side_road_right_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_stop_all_way_inv.png b/street_signs/textures/street_signs_stop_all_way_inv.png
new file mode 100644
index 0000000..0f0f9fc
--- /dev/null
+++ b/street_signs/textures/street_signs_stop_all_way_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_stop_all_way_plaque.png b/street_signs/textures/street_signs_stop_all_way_plaque.png
new file mode 100644
index 0000000..61d2418
--- /dev/null
+++ b/street_signs/textures/street_signs_stop_all_way_plaque.png
Binary files differ
diff --git a/street_signs/textures/street_signs_straight_through_only.png b/street_signs/textures/street_signs_straight_through_only.png
new file mode 100644
index 0000000..bb395bc
--- /dev/null
+++ b/street_signs/textures/street_signs_straight_through_only.png
Binary files differ
diff --git a/street_signs/textures/street_signs_straight_through_only_inv.png b/street_signs/textures/street_signs_straight_through_only_inv.png
new file mode 100644
index 0000000..34e6c74
--- /dev/null
+++ b/street_signs/textures/street_signs_straight_through_only_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_t_junction_ahead.png b/street_signs/textures/street_signs_t_junction_ahead.png
new file mode 100644
index 0000000..7a6e292
--- /dev/null
+++ b/street_signs/textures/street_signs_t_junction_ahead.png
Binary files differ
diff --git a/street_signs/textures/street_signs_t_junction_ahead_inv.png b/street_signs/textures/street_signs_t_junction_ahead_inv.png
new file mode 100644
index 0000000..afa164e
--- /dev/null
+++ b/street_signs/textures/street_signs_t_junction_ahead_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_two_direction_large_arrow.png b/street_signs/textures/street_signs_two_direction_large_arrow.png
new file mode 100644
index 0000000..4de0342
--- /dev/null
+++ b/street_signs/textures/street_signs_two_direction_large_arrow.png
Binary files differ
diff --git a/street_signs/textures/street_signs_two_direction_large_arrow_inv.png b/street_signs/textures/street_signs_two_direction_large_arrow_inv.png
new file mode 100644
index 0000000..9a895cf
--- /dev/null
+++ b/street_signs/textures/street_signs_two_direction_large_arrow_inv.png
Binary files differ
diff --git a/street_signs/textures/street_signs_u_turn_here.png b/street_signs/textures/street_signs_u_turn_here.png
new file mode 100644
index 0000000..2eabc42
--- /dev/null
+++ b/street_signs/textures/street_signs_u_turn_here.png
Binary files differ
diff --git a/street_signs/textures/street_signs_u_turn_here_inv.png b/street_signs/textures/street_signs_u_turn_here_inv.png
new file mode 100644
index 0000000..9b7a48e
--- /dev/null
+++ b/street_signs/textures/street_signs_u_turn_here_inv.png
Binary files differ