diff --git a/LICENSE.txt b/LICENSE.txt index 28b412b..358c186 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,7 @@ Meshnodes for Minetest [meshnode] ================================= -Copyright (C) 2013 Stuart Jones - LGPL +License Source Code: Copyright (C) 2013-2017 Stuart Jones - LGPL v2.1 + +License Media Files: CC0 1.0 Universal (CC0 1.0) diff --git a/README.md b/README.md new file mode 100644 index 0000000..f67ced2 --- /dev/null +++ b/README.md @@ -0,0 +1,144 @@ +Meshnodes for Minetest [meshnode] +================================= + +**Mod Version:** 0.3.0 + +**Minetest Version:** 0.4.14 or later + +**Depends:** default + +Description +----------- +Meshnodes is a mod that transforms ordinary minetest nodes into a connected +array of replica entities to which players can attach to and manoeuvre. + +To use, simply build or place a model using nodes with a supported drawtype +then place a meshnode controller in an appropriate position. Now use the +special 'glue' that you will find in the controller node's inventory to +connect your structure. Alternatively, if you are using worldedit, you can +use the position markers to define the extents of your model. + +When everything is connected you should return the 'glue' to the controller +to enable activation. Once activated, players can then attach themselves +to the controller or restore the model back to nodes. Restored models can +be easily reconnected using the 'Connect from meta positions' option. + +Please note that the 'glue' bottles are unique to a controller's position +and are only useable within a limited range. + +**Supported Drawtypes** + +I have done my best to include support for most of the common nodes that +are useful for building ships etc, like fences, xpanes and walls including +support for all default stairs and slabs in full 6d rotation. It may or +may not work with other decorative nodeboxes/meshnodes, the best way to +find out is to simply try it. + +Exceptions include flowing liquids, wallmounted nodes, rails or any node +with non-generated wield or inventory images. Some drawtypes have only +partial support, like 'plantlike' for example. + +**Construction Advice** + +Place the controller node in the direction you wish to face when you attach +to it and always try to make your models hollow wherever possible. + +Controls +-------- +``` +[Up] Forward +[Down] Reverse +[Left] Turn Left +[Right] Turn Right +[Jump] Up +[Sneak] Down +[RMB] Interact +``` +Crafting +-------- +By default crafting is enabled in singleplayer mode only. + +**Meshnode Controller** [meshnode:controller] + + + + + + + + + + + + + + + + +
[default:bronzeblock][default:diamondblock][default:bronzeblock]
[default:obsidian_block][default:steelblock][default:goldblock]
[default:bronzeblock][default:steelblock][default:bronzeblock]
+ +Multiplayer +----------- +Take care if you use this mod on a public server, while I have done my +best to support basic protection, I am sure this mod could still provide +serious potential for grief in the hands of the wrong people. + +By default the controller node will only be available via `/give[me]` and +requires the 'meshnode' privilege to be effective, however, non-privileged +players will still be able to attach to and operate pre-activated models. + +Note that you will probably need to increase `max_objects_per_block` to +something a little higher than the default 64 to avoid server warnings and +broken models. You can set `meshnode_autoconf = true` to automatically +increase that limit to 4096 which, in theory, equates to one solid map-block +full of meshnodes, though I would not advise testing that on live server. + +Blacklist +--------- +A global blacklist table is stored is in `meshnode.blacklist` keyed by item +name, in multiplayer mode the following nodes are blacklisted by default. +``` +meshnode.blacklist["default:chest_locked"] = true +meshnode.blacklist["default:water_source"] = true +meshnode.blacklist["default:river_water_source"] = true +meshnode.blacklist["default:lava_source"] = true +``` +Configuration +------------- +The global config table is stored `meshnode.config` and can overridden by +adding the config name prefixed with 'meshnode_' to your minetest.conf file. + +**Example:** (multiplayer defaults) +``` +meshnode_max_speed = 2 +meshnode_max_lift = 1 +meshnode_yaw_amount = 0.017 +meshnode_max_radius = 8 +meshnode_show_in_creative = false +meshnode_enable_crafting = false +meshnode_autoconf = false +``` +Note that speed, lift, yaw and radius may still be altered by other mods after +the initial start-up via the global `meshnode.config` table. + +API +--- +I would like to think that this mod could be used as the base for other mods +like airships or sailing ships or perhaps even some fancy construction tool. + +For this reason I have exposed everything that I thought might be potentially +useful under the `meshnode` namespace. I would hope that the source code is +reasonably self-explanatory. + +Know Issues +----------- +Active objects sometimes disappear following a re-start/connect. This could +be for a number or reasons including /clearobjects or a minetest bug. For this +reason you are advised to always 'restore' your model to 'real' nodes before +logging out or moving any significant distance away from it. + +The player controlling the entity may appear to be connected to the wrong +part of the model when viewed by a player that was not present during the +initial attachment. Currently the only solution is for the operator to +detach then re-attach to the model in the presence of said player. + diff --git a/README.txt b/README.txt deleted file mode 100644 index c2d588e..0000000 --- a/README.txt +++ /dev/null @@ -1,62 +0,0 @@ -Meshnodes for Minetest [meshnode] -================================= - -Meshnodes is a mod that transforms ordinary nodes into a connected -array of replica entities to which players can attach to and manoeuvre. - -To use, simply build or place a model using nodes with a supported drawtype. -Next place a meshnode controller in the appropriate position, the operator -will be attached directly on top of the controller node. - -Now right click the controller and enter the minimum and maximum extents of -the model (relative to the controller x,y,z) - -e.g. for a 3x3 square of nodes with the controller placed above the center -node, the relative positions would be minp = -1,-1,-1 maxp = 1,0,1 - -Alternatively, if you are using worldedit, you can use the position -markers to define the extents of the model. However, this must be done -before the controller is placed. - -Supported Drawtypes -=================== - -normal -allfaces_optional -glasslike -plantlike -fencelike - -Also supports all default stairs and slabs in full 6d rotation. - -Controls -======== - -[Up] Forward -[Down] Reverse -[Left] Rotate Left -[Right] Rotate Right -[Jump] Up -[Sneak] Down -[RMB] Attach/Detach - -Limitations -=========== - -Models will disappear or become detached from the controller if they become -unloaded. This can cause the server to warn against excessive objects and -destroy them accordingly. - -I have tried a number of ways the get the models to persist after a server -restart but so far all of my efforts have been thwarted by minetest's buggy -object management system. I also wanted to be able to attach 'passengers' -to the entities, however, this has not been possible for the same reason. - -Know Issues -=========== - -The player controlling the entity may appear to be connected to the wrong -part of the model when viewed by a player that was not present during the -initial attachment. Currently the only solution is for the operator to -detach then re-attach to the model in the presence of said player. - diff --git a/api.lua b/api.lua new file mode 100644 index 0000000..efbcf56 --- /dev/null +++ b/api.lua @@ -0,0 +1,356 @@ +meshnode = {} + +meshnode.config = { + max_speed = 2, + max_lift = 1, + yaw_amount = 0.017, + max_radius = 8, + show_in_creative = false, + enable_crafting = false, + autoconf = false, +} + +meshnode.blacklist = {} + +local face_rotation = { + {x=0, y=0, z=0}, {x=0, y=90, z=0}, {x=0, y=180, z=0}, + {x=0, y=-90, z=0}, {x=90, y=0, z=0}, {x=90, y=0, z=90}, + {x=90, y=0, z=180}, {x=90, y=0, z=-90}, {x=-90, y=0, z=0}, + {x=-90, y=0, z=-90}, {x=-90, y=0, z=180}, {x=-90, y=0, z=90}, + {x=0, y=0, z=-90}, {x=90, y=90, z=0}, {x=180, y=0, z=90}, + {x=0, y=-90, z=-90}, {x=0, y=0, z=90}, {x=0, y=90, z=90}, + {x=180, y=0, z=-90}, {x=0, y=-90, z=90}, {x=180, y=180, z=0}, + {x=180, y=90, z=0}, {x=180, y=0, z=0}, {x=180, y=-90, z=0}, +} + +local meshnode_id = 0 + +local function connects_to_group(pos, groups) + local node = minetest.get_node(pos) + for _, group in pairs(groups) do + if minetest.get_item_group(node.name, group) > 0 then + return true + end + end +end + +local function get_face_textures(facecons, texture) + local textures = { + "meshnode_trans.png", + "meshnode_trans.png", + "meshnode_trans.png", + "meshnode_trans.png", + } + for i = 1, 4 do + if facecons[i] == true then + textures[i] = texture + end + end + return textures +end + +local function restore_facedir(node, delta, yaw) + local facedir = node.param2 or 0 + local def = minetest.registered_items[node.name] or {} + if def.paramtype2 == "facedir" then + local rot = (meshnode.yaw_to_facedir(yaw) + delta) % 4 + node.param2 = meshnode.rotate_facedir(rot, facedir) + end +end + +meshnode.new_id = function() + meshnode_id = meshnode_id + 1 + return tostring(meshnode_id) +end + +meshnode.get_luaentity = function(id) + for _, entity in pairs(minetest.luaentities) do + if entity.mesh_id == id then + return entity + end + end +end + +meshnode.get_map_pos = function(ref, parent) + local pos = parent.object:getpos() + local yaw = parent.object:getyaw() + local rot = meshnode.rotate_offset(yaw, ref.offset) + local vec = vector.add(pos, rot) + return vector.round(vec) +end + +meshnode.facedir_to_yaw = function(facedir) + local yaw = 0 + local rot = facedir % 4 + if rot == 1 then + yaw = 3 * math.pi / 2 + elseif rot == 2 then + yaw = math.pi + elseif rot == 3 then + yaw = math.pi / 2 + end + return yaw +end + +meshnode.yaw_to_facedir = function(yaw) + local deg = math.floor(math.deg(yaw) + 0.5) % 360 + if deg < 90 then + return 0 + end + return 4 - math.floor(deg / 90) +end + +meshnode.facedir_to_rotation = function(facedir) + return face_rotation[facedir + 1] or face_rotation[1] +end + +meshnode.rotation_to_facedir = function(rotation) + for i, v in ipairs(face_rotation) do + if vector.equals(v, rotation) then + return i - 1 + end + end + return 0 +end + +meshnode.rotate_facedir = function(rot, facedir) + if rot == 0 then + return facedir + end + local rotation = facedir % 32 + local axis = math.floor(rotation / 4) + if axis == 0 then + rotation = rotation + rot + elseif axis == 5 then + rotation = rotation - rot + else + local axis_rotation = { + {3, 2, 4}, + {4, 1, 3}, + {2, 4, 1}, + {1, 3, 2}, + } + local next_axis = axis_rotation[axis] + axis = next_axis[rot] + rotation = rotation + rot + end + return axis * 4 + (rotation % 4) +end + +meshnode.rotate_offset = function(yaw, offset) + local cos = math.cos(yaw) + local sin = math.sin(yaw) + local x = offset.x * cos - offset.z * sin + local z = offset.x * sin + offset.z * cos + local ret = vector.round({x=x, y=offset.y, z=z}) + return vector.round({x=x, y=offset.y, z=z}) +end + +meshnode.add_entity = function(ref, parent) + local pos = meshnode.get_map_pos(ref, parent) + local object = minetest.add_entity(pos, "meshnode:mesh") + if object then + local properties = {textures={ref.node.name}} + local def = minetest.registered_items[ref.node.name] or {} + if ref.meshtype == "plant" then + properties.visual = "mesh" + properties.visual_size = {x=1, y=1} + properties.mesh = "meshnode_plant.obj" + properties.textures = {def.tiles[1]} + elseif ref.meshtype == "fence" then + local textures = get_face_textures(ref.facecons, def.tiles[1]) + table.insert(textures, 1, def.tiles[1]) + properties.visual = "mesh" + properties.visual_size = {x=1, y=1} + properties.mesh = "meshnode_fence.obj" + properties.textures = textures + elseif ref.meshtype == "wall" then + local textures = get_face_textures(ref.facecons, def.tiles[1]) + table.insert(textures, 1, def.tiles[1]) + properties.visual = "mesh" + properties.visual_size = {x=1, y=1} + properties.mesh = "meshnode_wall.obj" + properties.textures = textures + elseif ref.meshtype == "pane" then + local textures = get_face_textures(ref.facecons, def.tiles[3]) + properties.visual = "mesh" + properties.visual_size = {x=1, y=1} + properties.mesh = "meshnode_pane.obj" + properties.textures = textures + end + object:set_properties(properties) + if parent then + local entity = object:get_luaentity() + if entity then + entity.mesh_id = ref.id + entity.parent_id = parent.mesh_id + else + object:remove() + return + end + local yaw = parent.object:getyaw() + local offset = vector.multiply(ref.offset, 10) + local rotation = vector.new(ref.rotation) + object:set_attach(parent.object, "", offset, rotation) + end + end + return object +end + +meshnode.create = function(pos, parent) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local def = minetest.registered_items[node.name] or {} + local meshtype = "wielditem" + local scaffold = "meshnode:scaffold" + local facecons = {} + local faces = { + [1] = {x=0, y=0, z=-1}, + [2] = {x=-1, y=0, z=0}, + [3] = {x=0, y=0, z=1}, + [4] = {x=1, y=0, z=0}, + } + if not parent or + meshnode.blacklist[node.name] or + node.name == "meshnode:controller" or + node.name == "air" or + node.name == "ignore" or + def.paramtype2 == "wallmounted" or + def.paramtype2 == "flowingliquid" then + return + elseif def.drawtype == "plantlike" then + meshtype = "plant" + elseif minetest.get_item_group(node.name, "fence") > 0 then + scaffold = "meshnode:scaffold_fence" + if def.drawtype ~= "mesh" then + meshtype = "fence" + for i, face in pairs(faces) do + local p = vector.add(pos, face) + facecons[i] = connects_to_group(p, {"fence", "wood", "tree"}) + end + end + elseif minetest.get_item_group(node.name, "wall") > 0 then + scaffold = "meshnode:scaffold_wall" + if def.drawtype ~= "mesh" then + meshtype = "wall" + for i, face in pairs(faces) do + local p = vector.add(pos, face) + facecons[i] = connects_to_group(p, {"wall", "stone"}) + end + end + elseif minetest.get_item_group(node.name, "pane") > 0 then + meshtype = "pane" + scaffold = "meshnode:scaffold_pane" + if string.find(node.name, "_flat$") then + facecons = {[2]=true, [4]=true} + else + for i, face in pairs(faces) do + local p = vector.add(pos, face) + facecons[i] = connects_to_group(p, {"pane"}) + end + end + elseif def.wield_image ~= "" or def.inventory_image ~="" then + return + end + local param2 = node.param2 or 0 + local offset = vector.subtract(pos, parent.object:getpos()) + local yaw = math.pi * 2 - parent.object:getyaw() + local delta = meshnode.yaw_to_facedir(yaw) + local facedir = meshnode.rotate_facedir(delta, param2) + local meta_str = nil + local meta_tab = meta:to_table() or {} + if meta_tab.inventory then + for _, list in pairs(meta_tab.inventory) do + for i, stack in ipairs(list) do + list[i] = ItemStack(stack):to_string() + end + end + end + if next(meta_tab) then + meta_str = minetest.serialize(meta_tab) + end + local ref = { + id = meshnode.new_id(), + node = node, + meta = meta_str, + delta = delta, + meshtype = meshtype, + facecons = facecons, + offset = meshnode.rotate_offset(yaw, offset), + rotation = meshnode.facedir_to_rotation(facedir), + } + local object = meshnode.add_entity(ref, parent) + if object then + minetest.set_node(pos, {name=scaffold}) + table.insert(parent.nodes, ref) + end + return object +end + +meshnode.restore = function(ref, parent) + local entity = meshnode.get_luaentity(ref.id) + local pos = meshnode.get_map_pos(ref, parent) + local yaw = parent.object:getyaw() + restore_facedir(ref.node, ref.delta, yaw) + minetest.add_node(pos, ref.node) + if entity then + entity.object:setpos(pos) + entity.object:set_detach() + entity.object:remove() + end + if ref.meta then + local meta = minetest.get_meta(pos) + local meta_tab = minetest.deserialize(ref.meta) or {} + meta:from_table(meta_tab) + end +end + +meshnode.restore_all = function(parent, name) + local positions = {} + if #parent.nodes == 0 then + return positions + end + local minp = {x=32000, y=32000, z=32000} + local maxp = vector.multiply(minp, -1) + local yaw = parent.object:getyaw() + local nodedata = {} + for _, ref in pairs(parent.nodes) do + local pos = meshnode.get_map_pos(ref, parent) + if name and minetest.is_protected(pos, name) then + return + end + table.insert(nodedata, {pos=pos, ref=ref}) + for axis, val in pairs(pos) do + if val < minp[axis] then + minp[axis] = val + end + if val > maxp[axis] then + maxp[axis] = val + end + end + end + local vm = minetest.get_voxel_manip(minp, maxp) + for _, data in pairs(nodedata) do + restore_facedir(data.ref.node, data.ref.delta, yaw) + vm:set_node_at(data.pos, data.ref.node) + end + vm:write_to_map() + vm:update_liquids() + vm:update_map() + for _, data in pairs(nodedata) do + local entity = meshnode.get_luaentity(data.ref.id) + if entity then + entity.object:setpos(data.pos) + entity.object:set_detach() + entity.object:remove() + end + if data.ref.meta then + local meta = minetest.get_meta(data.pos) + local meta_tab = minetest.deserialize(data.ref.meta) or {} + meta:from_table(meta_tab) + end + table.insert(positions, data.pos) + end + return positions +end + diff --git a/depends.txt b/depends.txt index e69de29..c28c5f3 100644 --- a/depends.txt +++ b/depends.txt @@ -0,0 +1,2 @@ +default +wordedit? diff --git a/description.txt b/description.txt new file mode 100644 index 0000000..70459a1 --- /dev/null +++ b/description.txt @@ -0,0 +1 @@ +Poor man's voxel area entities. diff --git a/init.lua b/init.lua index 761a2d9..0f9fc96 100644 --- a/init.lua +++ b/init.lua @@ -1,55 +1,219 @@ -dofile(minetest.get_modpath(minetest.get_current_modname()).."/meshnode.lua") - -local groups = {cracky=3, oddly_breakable_by_hand=3} -if MESHNODE_SHOW_IN_CREATIVE == false then - groups.not_in_creative_inventory=1 +-- Boilerplate to support localized strings if intllib mod is installed. +local S = function(s) return s end +if minetest.get_modpath("intllib") then + S = intllib.Getter() end -local function is_valid_pos(pos) - if pos then - if pos.x and pos.y and pos.z then - return math.abs(pos.x) <= MESHNODE_MAX_RADIUS and - math.abs(pos.y) <= MESHNODE_MAX_RADIUS and - math.abs(pos.z) <= MESHNODE_MAX_RADIUS +dofile(minetest.get_modpath(minetest.get_current_modname()).."/api.lua") + +local has_worldedit = minetest.global_exists("worldedit") +local is_singleplayer = minetest.is_singleplayer() +local control_textures = { + "default_steel_block.png", + "default_diamond_block.png", + "default_bronze_block.png", + "default_obsidian_block.png", + "default_gold_block.png", +} + +if is_singleplayer then + meshnode.config.max_radius = 16 + meshnode.config.show_in_creative = true + meshnode.config.enable_crafting = true + meshnode.config.autoconf = true +else + meshnode.blacklist["default:chest_locked"] = true + meshnode.blacklist["default:water_source"] = true + meshnode.blacklist["default:river_water_source"] = true + meshnode.blacklist["default:lava_source"] = true +end + +for name, config in pairs(meshnode.config) do + local setting = minetest.setting_get("meshnode_"..name) + if type(config) == "number" then + setting = tonumber(setting) + elseif type(config) == "boolean" then + setting = minetest.setting_getbool("meshnode_"..name) + end + if setting then + meshnode.config[name] = setting + end +end + +if meshnode.config.autoconf == true then + minetest.setting_set("max_objects_per_block", "4096") +end + +local function has_privilege(name) + if is_singleplayer then + return true + end + return minetest.check_player_privs(name, {meshnode=true}) +end + +local function show_meshnode_formspec(pos, player) + local name = player:get_player_name() + if not has_privilege(name) then + return + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local id = minetest.pos_to_string(pos) + local entity = meshnode.get_luaentity(id) + local spos = pos.x..","..pos.y..","..pos.z + local formspec = "size[8,8]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + default.get_hotbar_bg(0,4).. + "list[current_player;main;0,4;8,1;]".. + "list[current_player;main;0,5.25;8,3;8]".. + "list[nodemeta:"..spos..";tool;0.5,1.5;1,1;]" + local buttons = {} + if entity and #entity.nodes > 0 then + if inv:contains_item("tool", "meshnode:glue") then + table.insert(buttons, {"activate", "Activate meshnode"}) end + table.insert(buttons, {"reset", "Reset connections"}) end + if meta:get_string("meshnode") ~= "" then + table.insert(buttons, {"connect_meta", "Connect meta positions"}) + end + if has_worldedit and worldedit.pos1[name] and worldedit.pos2[name] then + table.insert(buttons, {"connect_we", "Connect worldedit markers"}) + end + local y = 0.25 + for _, btn in pairs(buttons) do + formspec = formspec.."button_exit[2.25,"..y.. + ";5,0.5;"..btn[1]..";"..S(btn[2]).."]" + y = y + 0.9 + end + minetest.show_formspec(name, "meshnode_"..id, formspec) end -local function get_step(a, b) - if a > b then - return -1 - end - return 1 +local function register_scaffold(name, groups) + groups.not_in_creative_inventory = 1 + groups.cracky = 1 + minetest.register_node(name, { + paramtype = "light", + drawtype = "glasslike", + is_ground_content = false, + sunlight_propagates = true, + use_texture_alpha = true, + tiles = {"meshnode_highlight.png"}, + groups = groups, + }) end -minetest.register_entity("meshnode:ctrl", { +register_scaffold("meshnode:scaffold", {}) +register_scaffold("meshnode:scaffold_fence", {fence=1}) +register_scaffold("meshnode:scaffold_wall", {wall=1}) +register_scaffold("meshnode:scaffold_pane", {pane=1}) + +if meshnode.config.enable_crafting then + minetest.register_craft({ + output = "meshnode:controller", + recipe = { + {"default:bronzeblock", "default:diamondblock", "default:bronzeblock"}, + {"default:obsidian_block", "default:steelblock", "default:goldblock"}, + {"default:bronzeblock", "default:steelblock", "default:bronzeblock"}, + } + }) +end + +minetest.register_entity("meshnode:mesh", { physical = true, - visual = "cube", - visual_size = {x=1, y=1}, - textures = { - "meshnode_top.png", - "meshnode_side.png", - "meshnode_side.png", - "meshnode_side.png", - "meshnode_side.png", - "meshnode_side.png", - }, - player = nil, - speed = 0, - lift = 0, - on_activate = function(self, staticdata, dtime_s) - self.object:set_armor_groups({cracky=50}) + visual = "wielditem", + visual_size = {x=0.666, y=0.666}, + on_activate = function(self, staticdata) if staticdata == "expired" then self.object:remove() end end, - on_rightclick = function(self, clicker) - if self.player == nil then - clicker:set_attach(self.object, "", {x=0,y=15,z=0}, {x=0,y=90,z=0}) - self.player = clicker + get_staticdata = function(self) + return "expired" + end, +}) + +minetest.register_entity("meshnode:ctrl", { + physical = true, + visual = "mesh", + mesh = "meshnode_plant.obj", + visual_size = {x=1, y=1}, + textures = {"meshnode_trans.png"}, + facedir = 0, + speed = 0, + lift = 0, + nodes = {}, + activated = false, + animation = "stand", + on_activate = function(self, staticdata) + local pos = self.object:getpos() + local objects = minetest.get_objects_inside_radius(pos, 0.5) or {} + for _, object in pairs(objects) do + if object ~= self.object then + local entity = object:get_luaentity() + if entity and entity.name == "meshnode:ctrl" then + minetest.log("warning", "meshnode: duplicate object removed") + self.object:remove() + return + end + end + end + self.object:set_armor_groups({immortal=1}) + if staticdata then + local data = minetest.deserialize(staticdata) or {} + self.mesh_id = data[1] + self.activated = data[2] + self.nodes = data[3] or {} + end + if self.activated then + self.mesh_id = meshnode.new_id() else - self.player:set_detach() - self.player = nil + local node = minetest.get_node(pos) + if node.name ~= "meshnode:controller" then + minetest.log("warning", "meshnode: stray object removed") + self.object:remove() + return + end + end + for _, ref in pairs(self.nodes) do + ref.id = meshnode.new_id() + meshnode.add_entity(ref, self) + end + self:set_activated(self.activated) + end, + on_punch = function(self, puncher) + --self.object:remove() + end, + on_rightclick = function(self, clicker) + if not self.mesh_id then + return + end + if self.activated then + local name = clicker:get_player_name() + local buttons = {} + local formspec = "size[4,3.5]" + if self.player then + table.insert(buttons, {"detach", "Detach"}) + local btn = {"animation_sit", "Sit"} + if self.animation == "sit" then + btn = {"animation_stand", "Stand"} + end + table.insert(buttons, btn) + else + table.insert(buttons, {"attach", "Attach"}) + table.insert(buttons, {"restore", "Restore"}) + end + table.insert(buttons, {"align", "Align"}) + local y = 0.5 + for _, btn in pairs(buttons) do + formspec = formspec.."button_exit[0.5,"..y.. + ";3,0.75;"..btn[1]..";"..S(btn[2]).."]" + y = y + 1 + end + local formname = "meshnode_"..self.mesh_id + minetest.show_formspec(name, formname, formspec) end end, on_step = function(self, dtime) @@ -66,31 +230,31 @@ minetest.register_entity("meshnode:ctrl", { else speed = speed * 0.99 end - if speed > MESHNODE_MAX_SPEED then - speed = MESHNODE_MAX_SPEED - elseif speed < 0 - MESHNODE_MAX_SPEED then - speed = 0 - MESHNODE_MAX_SPEED + if speed > meshnode.config.max_speed then + speed = meshnode.config.max_speed + elseif speed < 0 - meshnode.config.max_speed then + speed = 0 - meshnode.config.max_speed end if ctrl.jump then lift = lift + 0.1 elseif ctrl.sneak then lift = lift - 0.1 else - lift = lift * 0.9 + lift = lift * 0.99 end - if lift > MESHNODE_MAX_LIFT then - lift = MESHNODE_MAX_LIFT - elseif lift < 0 - MESHNODE_MAX_LIFT then - lift = 0 - MESHNODE_MAX_LIFT + if lift > meshnode.config.max_lift then + lift = meshnode.config.max_lift + elseif lift < 0 - meshnode.config.max_lift then + lift = 0 - meshnode.config.max_lift end if ctrl.left then - yaw = yaw + MESHNODE_YAW_AMOUNT + yaw = yaw + meshnode.config.yaw_amount elseif ctrl.right then - yaw = yaw - MESHNODE_YAW_AMOUNT + yaw = yaw - meshnode.config.yaw_amount end - velocity.x = math.cos(yaw) * speed + velocity.x = -math.sin(yaw) * speed velocity.y = lift - velocity.z = math.sin(yaw) * speed + velocity.z = math.cos(yaw) * speed self.object:setyaw(yaw) self.object:setvelocity(velocity) self.speed = speed @@ -102,80 +266,238 @@ minetest.register_entity("meshnode:ctrl", { end end, get_staticdata = function(self) - return "expired" + local data = {self.mesh_id, self.activated, self.nodes} + return minetest.serialize(data) end, -}) - -minetest.register_entity("meshnode:mesh", { - physical = true, - visual_size = {x=1, y=1}, - on_activate = function(self, staticdata, dtime_s) - if staticdata == "expired" then - self.object:remove() + set_alignment = function(self) + local pos = self.object:getpos() + local yaw = self.object:getyaw() + local deg = math.deg(yaw) + 45 + deg = math.floor(deg / 90) * 90 + self.object:setvelocity({x=0, y=0, z=0}) + self.object:setyaw(math.rad(deg)) + self.object:setpos(vector.round(pos)) + self.speed = 0 + self.lift = 0 + end, + set_activated = function(self, active) + local mesh = "meshnode_plant.obj" + local anim = {x=0, y=0} + local textures = {"meshnode_trans.png"} + local collisionbox = {0,0,0, 0,0,0} + if active then + mesh = "meshnode_ctrl.b3d" + anim = {x=20, y=100} + textures = control_textures + collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5} end - end, - get_staticdata = function(self) - return "expired" + self.object:set_properties({ + mesh = mesh, + textures = textures, + collisionbox = collisionbox, + }) + self.object:set_animation(anim, 15) + self.activated = active end, }) minetest.register_node("meshnode:controller", { - description = "Meshnode Controller", + description = S("Meshnode Controller"), + drawtype = "mesh", + mesh = "meshnode_ctrl.obj", + paramtype = "light", paramtype2 = "facedir", - tiles = {"meshnode_top.png", "meshnode_side.png", "meshnode_side.png"}, - is_ground_content = true, - groups = groups, + tiles = control_textures, + groups = {choppy=2, oddly_breakable_by_hand=2}, on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("formspec", "size[5,3]" - .."field[0.5,1;2,0.5;minp;Minp;${minp}]" - .."field[3.0,1;2,0.5;maxp;Maxp;${maxp}]" - .."button_exit[1.0,2;3,0.5;connect;Generate Entity]" - ) - meta:set_string("infotext", "Meshnode Controller") + local inv = meta:get_inventory() + local stack = { + name = "meshnode:glue", + metadata = minetest.pos_to_string(pos), + } + inv:set_size("tool", 1) + inv:add_item("tool", stack) + meta:set_string("infotext", S("Meshnode Controller")) + end, + on_destruct = function(pos) + local id = minetest.pos_to_string(pos) + local entity = meshnode.get_luaentity(id) + if entity then + meshnode.restore_all(entity) + entity.object:remove() + end end, after_place_node = function(pos, placer) - if worldedit then - local name = placer:get_player_name() - local meta = minetest.get_meta(pos) - if worldedit.pos1[name] then - local p = vector.subtract(worldedit.pos1[name], pos) - meta:set_string("minp", p.x..","..p.y..","..p.z) - end - if worldedit.pos2[name] then - local p = vector.subtract(worldedit.pos2[name], pos) - meta:set_string("maxp", p.x..","..p.y..","..p.z) + local node = minetest.get_node(pos) + local id = minetest.pos_to_string(pos) + local object = minetest.add_entity(pos, "meshnode:ctrl") + if object then + local entity = object:get_luaentity() + if entity then + local facedir = node.param2 or 0 + local yaw = meshnode.facedir_to_yaw(facedir) + object:setyaw(yaw) + entity.mesh_id = id end end end, - on_receive_fields = function(pos, formname, fields, sender) - if fields.connect then - local minp = minetest.string_to_pos(fields.minp) - local maxp = minetest.string_to_pos(fields.maxp) - if is_valid_pos(minp) and is_valid_pos(maxp) then - local node = minetest.get_node(pos) - minetest.remove_node(pos) - local positions = {} - local parent = minetest.add_entity(pos, "meshnode:ctrl") - if parent then - for x = minp.x, maxp.x, get_step(minp.x, maxp.x) do - for y = minp.y, maxp.y, get_step(minp.y, maxp.y) do - for z = minp.z, maxp.z, get_step(minp.z, maxp.z) do - local node_pos = vector.add(pos, {x=x, y=y, z=z}) - meshnode:create(node_pos, parent) - table.insert(positions, node_pos) + on_rightclick = function(pos, node, clicker, itemstack) + show_meshnode_formspec(pos, clicker) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = stack:get_metadata() + if meta then + if vector.equals(minetest.string_to_pos(meta), pos) then + return 1 + end + end + return 0 + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + show_meshnode_formspec(pos, player) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + show_meshnode_formspec(pos, player) + end +}) + +minetest.register_tool("meshnode:glue", { + description = S("Meshnode Glue"), + inventory_image = "meshnode_glue.png", + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + local meta = itemstack:get_metadata() + local parent = meshnode.get_luaentity(meta) + if not parent then + return + end + local name = user:get_player_name() + if not has_privilege(name) then + return "" + end + if pointed_thing and pointed_thing.type == "node" then + local pos = minetest.get_pointed_thing_position(pointed_thing) + if pos then + if minetest.is_protected(pos, name) then + minetest.chat_send_player(name, S("Protected node").."!") + return + end + local node = minetest.get_node_or_nil(pos) + if node then + if string.find(node.name, "meshnode:scaffold") then + for i, ref in pairs(parent.nodes) do + local map_pos = meshnode.get_map_pos(ref, parent) + if vector.equals(map_pos, pos) then + meshnode.restore(ref, parent) + parent.nodes[i] = nil end end - end - for _, pos in pairs(positions) do - minetest.remove_node(pos) + else + local dist = vector.distance(parent.object:getpos(), pos) + if dist > meshnode.config.max_radius then + minetest.chat_send_player(name, S("Out of range").."!") + else + meshnode.create(pos, parent) + end end end - else - local name = sender:get_player_name() - minetest.chat_send_player(name, "Invalid Position!") end end end, }) +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname then + local id = formname:gsub("meshnode_", "") + if id == formname then + return + end + local name = player:get_player_name() + local entity = meshnode.get_luaentity(id) + if not entity then + return + end + local pos = vector.round(entity.object:getpos()) + if fields.activate then + local id = meshnode.new_id() + entity.mesh_id = meshnode.new_id() + entity:set_activated(true) + for _, ref in pairs(entity.nodes) do + local map_pos = meshnode.get_map_pos(ref, entity) + minetest.remove_node(map_pos) + ref.parent = id + end + minetest.remove_node(pos) + elseif fields.connect_meta then + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local spos = meta:get_string("meshnode") + local positions = minetest.deserialize(spos) or {} + for _, p in pairs(positions) do + meshnode.create(p, entity) + end + elseif fields.connect_we then + if has_worldedit then + local p1 = worldedit.pos1[name] + local p2 = worldedit.pos2[name] + if p1 and p2 then + local area = VoxelArea:new{MinEdge=p1, MaxEdge=p2} + for i in area:iterp(p1, p2) do + local p = area:position(i) + meshnode.create(p, entity) + end + end + end + elseif fields.reset then + meshnode.restore_all(entity) + entity.nodes = {} + elseif fields.attach and entity.player == nil then + player:set_attach(entity.object, "", {x=0, y=15, z=0}, {x=0, y=0, z=0}) + entity.player = player + entity.object:set_animation({x=0, y=0}, 15) + default.player_attached[name] = true + elseif fields.detach and entity.player == player then + player:set_detach() + entity.player = nil + entity.animation = "stand" + entity.object:set_animation({x=20, y=100}, 15) + default.player_attached[name] = false + elseif fields.animation_sit then + default.player_set_animation(player, "sit", 30) + entity.animation = "sit" + elseif fields.animation_stand then + default.player_set_animation(player, "stand", 30) + entity.animation = "stand" + elseif fields.align then + entity:set_alignment() + elseif fields.restore then + if not has_privilege(name) then + local msg = S("Requires the meshnode privilege") + minetest.chat_send_player(name, msg) + return + end + entity:set_alignment() + local positions = meshnode.restore_all(entity, name) + if positions then + local yaw = entity.object:getyaw() + local node = { + name = "meshnode:controller", + param2 = meshnode.yaw_to_facedir(yaw), + } + minetest.add_node(pos, node) + if #positions > 0 then + local meta = minetest.get_meta(pos) + local spos = minetest.serialize(positions) + meta:set_string("meshnode", spos) + end + entity.nodes = {} + entity.mesh_id = minetest.pos_to_string(pos) + entity:set_activated(false) + else + minetest.chat_send_player(name, S("Protected area").."!") + end + end + end +end) + diff --git a/meshnode.conf.example b/meshnode.conf.example deleted file mode 100644 index c92eb20..0000000 --- a/meshnode.conf.example +++ /dev/null @@ -1,17 +0,0 @@ --- Meshnode configuration (defaults) - --- Maximum Entity Speed -MESHNODE_MAX_SPEED = 2 - --- Maximum Up/Down Velocity -MESHNODE_MAX_LIFT = 1 - --- Rotational Step (Radians) -MESHNODE_YAW_AMOUNT = 0.02 - --- Maximum Entity Area -MESHNODE_MAX_RADIUS = 50 - --- Show Controller in Creative Inventory -MESHNODE_SHOW_IN_CREATIVE = true - diff --git a/meshnode.lua b/meshnode.lua deleted file mode 100644 index 4b74a70..0000000 --- a/meshnode.lua +++ /dev/null @@ -1,111 +0,0 @@ -MESHNODE_MAX_SPEED = 2 -MESHNODE_MAX_LIFT = 1 -MESHNODE_YAW_AMOUNT = 0.02 -MESHNODE_MAX_RADIUS = 50 -MESHNODE_SHOW_IN_CREATIVE = true - -meshnode = { - face_rotation = { - {x=0, y=0, z=0}, {x=0, y=90, z=0}, {x=0, y=180, z=0}, {x=0, y=-90, z=0}, - {x=90, y=0, z=0}, {x=90, y=0, z=90}, {x=90, y=0, z=180}, {x=90, y=0, z=-90}, - {x=-90, y=0, z=0}, {x=-90, y=0, z=-90}, {x=-90, y=0, z=180}, {x=-90, y=0, z=90}, - {x=0, y=0, z=-90}, {x=90, y=90, z=0}, {x=180, y=0, z=90}, {x=0, y=-90, z=-90}, - {x=0, y=0, z=90}, {x=0, y=90, z=90}, {x=180, y=0, z=-90}, {x=0, y=-90, z=90}, - {x=180, y=180, z=0}, {x=180, y=90, z=0}, {x=180, y=0, z=0}, {x=180, y=-90, z=0}, - } -} - -local modpath = minetest.get_modpath(minetest.get_current_modname()) -local input = io.open(modpath.."/meshnode.conf", "r") -if input then - dofile(modpath.."/meshnode.conf") - input:close() - input = nil -end - -function meshnode:get_drawtype(pos) - local node = minetest.get_node(pos) - local item = minetest.registered_items[node.name] - if item then - return item.drawtype - end -end - -function meshnode:create(pos, parent) - local node = minetest.get_node(pos) - local item = minetest.registered_items[node.name] - local object = nil - local rotation = {x=0, y=0, z=0} - if item then - if item.tiles then - local t = item.tiles - local textures = {t[1], t[1], t[1], t[1], t[1], t[1]} - if #t == 3 then - textures = {t[1], t[2], t[3], t[3], t[3], t[3]} - elseif #t == 6 then - textures = t - end - local properties = {textures=textures} - if item.drawtype == "fencelike" then - textures = { - "meshnode_trans.png", - "meshnode_trans.png", - "meshnode_trans.png", - "meshnode_trans.png", - t[1], - } - local p = pos - if self:get_drawtype({x=p.x, y=p.y, z=p.z + 1}) == "fencelike" then - textures[1] = t[1] - end - if self:get_drawtype({x=p.x - 1, y=p.y, z=p.z}) == "fencelike" then - textures[2] = t[1] - end - if self:get_drawtype({x=p.x + 1, y=p.y, z=p.z}) == "fencelike" then - textures[3] = t[1] - end - if self:get_drawtype({x=p.x, y=p.y, z=p.z - 1}) == "fencelike" then - textures[4] = t[1] - end - object = minetest.add_entity(pos, "meshnode:mesh") - properties.textures = textures - properties.mesh = "meshnode_fence.x" - properties.visual = "mesh" - elseif item.drawtype == "plantlike" then - object = minetest.add_entity(pos, "meshnode:mesh") - properties.textures = {textures[1]} - properties.mesh = "meshnode_plant.x" - properties.visual = "mesh" - elseif string.find(node.name, "stairs:slab") then - object = minetest.add_entity(pos, "meshnode:mesh") - properties.textures = {textures[1]} - properties.mesh = "meshnode_slab.x" - properties.visual = "mesh" - elseif string.find(node.name, "stairs:stair") then - object = minetest.add_entity(pos, "meshnode:mesh") - properties.textures = {textures[1]} - properties.mesh = "meshnode_stair.x" - properties.visual = "mesh" - elseif item.drawtype == "normal" or - item.drawtype == "allfaces_optional" or - item.drawtype == "glasslike" then - object = minetest.add_entity(pos, "meshnode:mesh") - properties.visual = "cube" - end - if object then - object:set_properties(properties) - local facedir = node.param2 - if item.paramtype2 == "facedir" and facedir then - rotation = self.face_rotation[facedir + 1] - end - if parent then - local offset = vector.subtract(pos, parent:getpos()) - offset = vector.multiply(offset, {x=10,y=10,z=10}) - object:set_attach(parent, "", offset, rotation) - end - end - end - end - return object, rotation -end - diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..2932564 --- /dev/null +++ b/mod.conf @@ -0,0 +1 @@ +name = meshnode diff --git a/models/meshnode_ctrl.b3d b/models/meshnode_ctrl.b3d new file mode 100644 index 0000000..f0fa340 Binary files /dev/null and b/models/meshnode_ctrl.b3d differ diff --git a/models/meshnode_ctrl.obj b/models/meshnode_ctrl.obj new file mode 100644 index 0000000..3b211dc --- /dev/null +++ b/models/meshnode_ctrl.obj @@ -0,0 +1,1348 @@ +# Blender v2.76 (sub 0) OBJ File: 'meshnode_obj.blend' +# www.blender.org +mtllib meshnode_ctrl.mtl +v -0.375000 -0.375000 0.375000 +v -0.375000 0.375000 0.375000 +v -0.375000 -0.375000 -0.375000 +v -0.375000 0.375000 -0.375000 +v 0.375000 -0.375000 0.375000 +v 0.375000 0.375000 0.375000 +v 0.375000 -0.375000 -0.375000 +v 0.375000 0.375000 -0.375000 +v -0.375000 0.000000 0.375000 +v -0.375000 0.375000 0.000000 +v -0.375000 0.000000 -0.375000 +v -0.375000 -0.375000 0.000000 +v 0.000000 0.375000 -0.375000 +v 0.375000 0.000000 -0.375000 +v 0.000000 -0.375000 -0.375000 +v 0.375000 0.375000 0.000000 +v 0.375000 0.000000 0.375000 +v 0.375000 -0.375000 0.000000 +v 0.000000 0.375000 0.375000 +v 0.000000 -0.375000 0.375000 +v 0.000000 0.375000 0.000000 +v 0.000000 -0.375000 0.000000 +v 0.000000 0.000000 0.375000 +v 0.375000 0.000000 0.000000 +v 0.000000 0.000000 -0.375000 +v -0.375000 0.000000 0.000000 +v -0.125000 0.250000 0.125000 +v -0.125000 0.500000 0.125000 +v -0.125000 0.250000 -0.125000 +v -0.125000 0.500000 -0.125000 +v 0.125000 0.250000 0.125000 +v 0.125000 0.500000 0.125000 +v 0.125000 0.250000 -0.125000 +v 0.125000 0.500000 -0.125000 +v -0.125000 0.375000 0.125000 +v -0.125000 0.500000 0.000000 +v -0.125000 0.375000 -0.125000 +v -0.125000 0.250000 0.000000 +v 0.000000 0.500000 -0.125000 +v 0.125000 0.375000 -0.125000 +v 0.000000 0.250000 -0.125000 +v 0.125000 0.500000 0.000000 +v 0.125000 0.375000 0.125000 +v 0.125000 0.250000 0.000000 +v 0.000000 0.500000 0.125000 +v 0.000000 0.250000 0.125000 +v 0.000000 0.500000 0.000000 +v 0.000000 0.250000 0.000000 +v 0.000000 0.375000 0.125000 +v 0.125000 0.375000 0.000000 +v 0.000000 0.375000 -0.125000 +v -0.125000 0.375000 0.000000 +v -0.125000 0.250000 -0.250000 +v -0.125000 0.500000 -0.250000 +v -0.125000 0.250000 -0.500000 +v -0.125000 0.500000 -0.500000 +v 0.125000 0.250000 -0.250000 +v 0.125000 0.500000 -0.250000 +v 0.125000 0.250000 -0.500000 +v 0.125000 0.500000 -0.500000 +v -0.125000 0.375000 -0.250000 +v -0.125000 0.500000 -0.375000 +v -0.125000 0.375000 -0.500000 +v -0.125000 0.250000 -0.375000 +v 0.000000 0.500000 -0.500000 +v 0.125000 0.375000 -0.500000 +v 0.000000 0.250000 -0.500000 +v 0.125000 0.500000 -0.375000 +v 0.125000 0.375000 -0.250000 +v 0.125000 0.250000 -0.375000 +v 0.000000 0.500000 -0.250000 +v 0.000000 0.250000 -0.250000 +v 0.000000 0.500000 -0.375000 +v 0.000000 0.250000 -0.375000 +v 0.000000 0.375000 -0.250000 +v 0.125000 0.375000 -0.375000 +v 0.000000 0.375000 -0.500000 +v -0.125000 0.375000 -0.375000 +v -0.125000 -0.125000 0.500000 +v -0.125000 0.125000 0.500000 +v -0.125000 -0.125000 0.250000 +v -0.125000 0.125000 0.250000 +v 0.125000 -0.125000 0.500000 +v 0.125000 0.125000 0.500000 +v 0.125000 -0.125000 0.250000 +v 0.125000 0.125000 0.250000 +v -0.125000 0.000000 0.500000 +v -0.125000 0.125000 0.375000 +v -0.125000 0.000000 0.250000 +v -0.125000 -0.125000 0.375000 +v 0.000000 0.125000 0.250000 +v 0.125000 0.000000 0.250000 +v 0.000000 -0.125000 0.250000 +v 0.125000 0.125000 0.375000 +v 0.125000 0.000000 0.500000 +v 0.125000 -0.125000 0.375000 +v 0.000000 0.125000 0.500000 +v 0.000000 -0.125000 0.500000 +v 0.000000 0.125000 0.375000 +v 0.000000 -0.125000 0.375000 +v 0.000000 0.000000 0.500000 +v 0.125000 0.000000 0.375000 +v 0.000000 0.000000 0.250000 +v -0.125000 0.000000 0.375000 +v 0.250000 -0.125000 0.125000 +v 0.250000 0.125000 0.125000 +v 0.250000 -0.125000 -0.125000 +v 0.250000 0.125000 -0.125000 +v 0.500000 -0.125000 0.125000 +v 0.500000 0.125000 0.125000 +v 0.500000 -0.125000 -0.125000 +v 0.500000 0.125000 -0.125000 +v 0.250000 0.000000 0.125000 +v 0.250000 0.125000 0.000000 +v 0.250000 0.000000 -0.125000 +v 0.250000 -0.125000 0.000000 +v 0.375000 0.125000 -0.125000 +v 0.500000 0.000000 -0.125000 +v 0.375000 -0.125000 -0.125000 +v 0.500000 0.125000 0.000000 +v 0.500000 0.000000 0.125000 +v 0.500000 -0.125000 0.000000 +v 0.375000 0.125000 0.125000 +v 0.375000 -0.125000 0.125000 +v 0.375000 0.125000 0.000000 +v 0.375000 -0.125000 0.000000 +v 0.375000 0.000000 0.125000 +v 0.500000 0.000000 0.000000 +v 0.375000 0.000000 -0.125000 +v 0.250000 0.000000 0.000000 +v 0.250000 -0.125000 -0.250000 +v 0.250000 0.125000 -0.250000 +v 0.250000 -0.125000 -0.500000 +v 0.250000 0.125000 -0.500000 +v 0.500000 -0.125000 -0.250000 +v 0.500000 0.125000 -0.250000 +v 0.500000 -0.125000 -0.500000 +v 0.500000 0.125000 -0.500000 +v 0.250000 0.000000 -0.250000 +v 0.250000 0.125000 -0.375000 +v 0.250000 0.000000 -0.500000 +v 0.250000 -0.125000 -0.375000 +v 0.375000 0.125000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.375000 -0.125000 -0.500000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.000000 -0.250000 +v 0.500000 -0.125000 -0.375000 +v 0.375000 0.125000 -0.250000 +v 0.375000 -0.125000 -0.250000 +v 0.375000 0.125000 -0.375000 +v 0.375000 -0.125000 -0.375000 +v 0.375000 0.000000 -0.250000 +v 0.500000 0.000000 -0.375000 +v 0.375000 0.000000 -0.500000 +v 0.250000 0.000000 -0.375000 +v 0.250000 -0.125000 0.500000 +v 0.250000 0.125000 0.500000 +v 0.250000 -0.125000 0.250000 +v 0.250000 0.125000 0.250000 +v 0.500000 -0.125000 0.500000 +v 0.500000 0.125000 0.500000 +v 0.500000 -0.125000 0.250000 +v 0.500000 0.125000 0.250000 +v 0.250000 0.000000 0.500000 +v 0.250000 0.125000 0.375000 +v 0.250000 0.000000 0.250000 +v 0.250000 -0.125000 0.375000 +v 0.375000 0.125000 0.250000 +v 0.500000 0.000000 0.250000 +v 0.375000 -0.125000 0.250000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.000000 0.500000 +v 0.500000 -0.125000 0.375000 +v 0.375000 0.125000 0.500000 +v 0.375000 -0.125000 0.500000 +v 0.375000 0.125000 0.375000 +v 0.375000 -0.125000 0.375000 +v 0.375000 0.000000 0.500000 +v 0.500000 0.000000 0.375000 +v 0.375000 0.000000 0.250000 +v 0.250000 0.000000 0.375000 +v -0.500000 -0.125000 0.125000 +v -0.500000 0.125000 0.125000 +v -0.500000 -0.125000 -0.125000 +v -0.500000 0.125000 -0.125000 +v -0.250000 -0.125000 0.125000 +v -0.250000 0.125000 0.125000 +v -0.250000 -0.125000 -0.125000 +v -0.250000 0.125000 -0.125000 +v -0.500000 0.000000 0.125000 +v -0.500000 0.125000 0.000000 +v -0.500000 0.000000 -0.125000 +v -0.500000 -0.125000 0.000000 +v -0.375000 0.125000 -0.125000 +v -0.250000 0.000000 -0.125000 +v -0.375000 -0.125000 -0.125000 +v -0.250000 0.125000 0.000000 +v -0.250000 0.000000 0.125000 +v -0.250000 -0.125000 0.000000 +v -0.375000 0.125000 0.125000 +v -0.375000 -0.125000 0.125000 +v -0.375000 0.125000 0.000000 +v -0.375000 -0.125000 0.000000 +v -0.375000 0.000000 0.125000 +v -0.250000 0.000000 0.000000 +v -0.375000 0.000000 -0.125000 +v -0.500000 0.000000 0.000000 +v -0.500000 -0.125000 -0.250000 +v -0.500000 0.125000 -0.250000 +v -0.500000 -0.125000 -0.500000 +v -0.500000 0.125000 -0.500000 +v -0.250000 -0.125000 -0.250000 +v -0.250000 0.125000 -0.250000 +v -0.250000 -0.125000 -0.500000 +v -0.250000 0.125000 -0.500000 +v -0.500000 0.000000 -0.250000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.125000 -0.375000 +v -0.375000 0.125000 -0.500000 +v -0.250000 0.000000 -0.500000 +v -0.375000 -0.125000 -0.500000 +v -0.250000 0.125000 -0.375000 +v -0.250000 0.000000 -0.250000 +v -0.250000 -0.125000 -0.375000 +v -0.375000 0.125000 -0.250000 +v -0.375000 -0.125000 -0.250000 +v -0.375000 0.125000 -0.375000 +v -0.375000 -0.125000 -0.375000 +v -0.375000 0.000000 -0.250000 +v -0.250000 0.000000 -0.375000 +v -0.375000 0.000000 -0.500000 +v -0.500000 0.000000 -0.375000 +v -0.500000 -0.125000 0.500000 +v -0.500000 0.125000 0.500000 +v -0.500000 -0.125000 0.250000 +v -0.500000 0.125000 0.250000 +v -0.250000 -0.125000 0.500000 +v -0.250000 0.125000 0.500000 +v -0.250000 -0.125000 0.250000 +v -0.250000 0.125000 0.250000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.000000 0.250000 +v -0.500000 -0.125000 0.375000 +v -0.375000 0.125000 0.250000 +v -0.250000 0.000000 0.250000 +v -0.375000 -0.125000 0.250000 +v -0.250000 0.125000 0.375000 +v -0.250000 0.000000 0.500000 +v -0.250000 -0.125000 0.375000 +v -0.375000 0.125000 0.500000 +v -0.375000 -0.125000 0.500000 +v -0.375000 0.125000 0.375000 +v -0.375000 -0.125000 0.375000 +v -0.375000 0.000000 0.500000 +v -0.250000 0.000000 0.375000 +v -0.375000 0.000000 0.250000 +v -0.500000 0.000000 0.375000 +v -0.125000 -0.125000 -0.250000 +v -0.125000 0.125000 -0.250000 +v -0.125000 -0.125000 -0.500000 +v -0.125000 0.125000 -0.500000 +v 0.125000 -0.125000 -0.250000 +v 0.125000 0.125000 -0.250000 +v 0.125000 -0.125000 -0.500000 +v 0.125000 0.125000 -0.500000 +v -0.125000 0.000000 -0.250000 +v -0.125000 0.125000 -0.375000 +v -0.125000 0.000000 -0.500000 +v -0.125000 -0.125000 -0.375000 +v 0.000000 0.125000 -0.500000 +v 0.125000 0.000000 -0.500000 +v 0.000000 -0.125000 -0.500000 +v 0.125000 0.125000 -0.375000 +v 0.125000 0.000000 -0.250000 +v 0.125000 -0.125000 -0.375000 +v 0.000000 0.125000 -0.250000 +v 0.000000 -0.125000 -0.250000 +v 0.000000 0.125000 -0.375000 +v 0.000000 -0.125000 -0.375000 +v 0.000000 0.000000 -0.250000 +v 0.125000 0.000000 -0.375000 +v 0.000000 0.000000 -0.500000 +v -0.125000 0.000000 -0.375000 +v -0.125000 -0.500000 -0.250000 +v -0.125000 -0.250000 -0.250000 +v -0.125000 -0.500000 -0.500000 +v -0.125000 -0.250000 -0.500000 +v 0.125000 -0.500000 -0.250000 +v 0.125000 -0.250000 -0.250000 +v 0.125000 -0.500000 -0.500000 +v 0.125000 -0.250000 -0.500000 +v -0.125000 -0.375000 -0.250000 +v -0.125000 -0.250000 -0.375000 +v -0.125000 -0.375000 -0.500000 +v -0.125000 -0.500000 -0.375000 +v 0.000000 -0.250000 -0.500000 +v 0.125000 -0.375000 -0.500000 +v 0.000000 -0.500000 -0.500000 +v 0.125000 -0.250000 -0.375000 +v 0.125000 -0.375000 -0.250000 +v 0.125000 -0.500000 -0.375000 +v 0.000000 -0.250000 -0.250000 +v 0.000000 -0.500000 -0.250000 +v 0.000000 -0.250000 -0.375000 +v 0.000000 -0.500000 -0.375000 +v 0.000000 -0.375000 -0.250000 +v 0.125000 -0.375000 -0.375000 +v 0.000000 -0.375000 -0.500000 +v -0.125000 -0.375000 -0.375000 +v -0.125000 0.250000 0.500000 +v -0.125000 0.500000 0.500000 +v -0.125000 0.250000 0.250000 +v -0.125000 0.500000 0.250000 +v 0.125000 0.250000 0.500000 +v 0.125000 0.500000 0.500000 +v 0.125000 0.250000 0.250000 +v 0.125000 0.500000 0.250000 +v -0.125000 0.375000 0.500000 +v -0.125000 0.500000 0.375000 +v -0.125000 0.375000 0.250000 +v -0.125000 0.250000 0.375000 +v 0.000000 0.500000 0.250000 +v 0.125000 0.375000 0.250000 +v 0.000000 0.250000 0.250000 +v 0.125000 0.500000 0.375000 +v 0.125000 0.375000 0.500000 +v 0.125000 0.250000 0.375000 +v 0.000000 0.500000 0.500000 +v 0.000000 0.250000 0.500000 +v 0.000000 0.500000 0.375000 +v 0.000000 0.250000 0.375000 +v 0.000000 0.375000 0.500000 +v 0.125000 0.375000 0.375000 +v 0.000000 0.375000 0.250000 +v -0.125000 0.375000 0.375000 +v -0.125000 -0.500000 0.500000 +v -0.125000 -0.250000 0.500000 +v -0.125000 -0.500000 0.250000 +v -0.125000 -0.250000 0.250000 +v 0.125000 -0.500000 0.500000 +v 0.125000 -0.250000 0.500000 +v 0.125000 -0.500000 0.250000 +v 0.125000 -0.250000 0.250000 +v -0.125000 -0.375000 0.500000 +v -0.125000 -0.250000 0.375000 +v -0.125000 -0.375000 0.250000 +v -0.125000 -0.500000 0.375000 +v 0.000000 -0.250000 0.250000 +v 0.125000 -0.375000 0.250000 +v 0.000000 -0.500000 0.250000 +v 0.125000 -0.250000 0.375000 +v 0.125000 -0.375000 0.500000 +v 0.125000 -0.500000 0.375000 +v 0.000000 -0.250000 0.500000 +v 0.000000 -0.500000 0.500000 +v 0.000000 -0.250000 0.375000 +v 0.000000 -0.500000 0.375000 +v 0.000000 -0.375000 0.500000 +v 0.125000 -0.375000 0.375000 +v 0.000000 -0.375000 0.250000 +v -0.125000 -0.375000 0.375000 +v 0.250000 -0.500000 0.500000 +v 0.250000 -0.250000 0.500000 +v 0.250000 -0.500000 0.250000 +v 0.250000 -0.250000 0.250000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.250000 0.500000 +v 0.500000 -0.500000 0.250000 +v 0.500000 -0.250000 0.250000 +v 0.250000 -0.375000 0.500000 +v 0.250000 -0.250000 0.375000 +v 0.250000 -0.375000 0.250000 +v 0.250000 -0.500000 0.375000 +v 0.375000 -0.250000 0.250000 +v 0.500000 -0.375000 0.250000 +v 0.375000 -0.500000 0.250000 +v 0.500000 -0.250000 0.375000 +v 0.500000 -0.375000 0.500000 +v 0.500000 -0.500000 0.375000 +v 0.375000 -0.250000 0.500000 +v 0.375000 -0.500000 0.500000 +v 0.375000 -0.250000 0.375000 +v 0.375000 -0.500000 0.375000 +v 0.375000 -0.375000 0.500000 +v 0.500000 -0.375000 0.375000 +v 0.375000 -0.375000 0.250000 +v 0.250000 -0.375000 0.375000 +v 0.250000 -0.500000 0.125000 +v 0.250000 -0.250000 0.125000 +v 0.250000 -0.500000 -0.125000 +v 0.250000 -0.250000 -0.125000 +v 0.500000 -0.500000 0.125000 +v 0.500000 -0.250000 0.125000 +v 0.500000 -0.500000 -0.125000 +v 0.500000 -0.250000 -0.125000 +v 0.250000 -0.375000 0.125000 +v 0.250000 -0.250000 0.000000 +v 0.250000 -0.375000 -0.125000 +v 0.250000 -0.500000 0.000000 +v 0.375000 -0.250000 -0.125000 +v 0.500000 -0.375000 -0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.500000 -0.250000 0.000000 +v 0.500000 -0.375000 0.125000 +v 0.500000 -0.500000 0.000000 +v 0.375000 -0.250000 0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 -0.250000 0.000000 +v 0.375000 -0.500000 0.000000 +v 0.375000 -0.375000 0.125000 +v 0.500000 -0.375000 0.000000 +v 0.375000 -0.375000 -0.125000 +v 0.250000 -0.375000 0.000000 +v 0.250000 -0.500000 -0.250000 +v 0.250000 -0.250000 -0.250000 +v 0.250000 -0.500000 -0.500000 +v 0.250000 -0.250000 -0.500000 +v 0.500000 -0.500000 -0.250000 +v 0.500000 -0.250000 -0.250000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.250000 -0.500000 +v 0.250000 -0.375000 -0.250000 +v 0.250000 -0.250000 -0.375000 +v 0.250000 -0.375000 -0.500000 +v 0.250000 -0.500000 -0.375000 +v 0.375000 -0.250000 -0.500000 +v 0.500000 -0.375000 -0.500000 +v 0.375000 -0.500000 -0.500000 +v 0.500000 -0.250000 -0.375000 +v 0.500000 -0.375000 -0.250000 +v 0.500000 -0.500000 -0.375000 +v 0.375000 -0.250000 -0.250000 +v 0.375000 -0.500000 -0.250000 +v 0.375000 -0.250000 -0.375000 +v 0.375000 -0.500000 -0.375000 +v 0.375000 -0.375000 -0.250000 +v 0.500000 -0.375000 -0.375000 +v 0.375000 -0.375000 -0.500000 +v 0.250000 -0.375000 -0.375000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.250000 0.500000 +v -0.500000 -0.500000 0.250000 +v -0.500000 -0.250000 0.250000 +v -0.250000 -0.500000 0.500000 +v -0.250000 -0.250000 0.500000 +v -0.250000 -0.500000 0.250000 +v -0.250000 -0.250000 0.250000 +v -0.500000 -0.375000 0.500000 +v -0.500000 -0.250000 0.375000 +v -0.500000 -0.375000 0.250000 +v -0.500000 -0.500000 0.375000 +v -0.375000 -0.250000 0.250000 +v -0.250000 -0.375000 0.250000 +v -0.375000 -0.500000 0.250000 +v -0.250000 -0.250000 0.375000 +v -0.250000 -0.375000 0.500000 +v -0.250000 -0.500000 0.375000 +v -0.375000 -0.250000 0.500000 +v -0.375000 -0.500000 0.500000 +v -0.375000 -0.250000 0.375000 +v -0.375000 -0.500000 0.375000 +v -0.375000 -0.375000 0.500000 +v -0.250000 -0.375000 0.375000 +v -0.375000 -0.375000 0.250000 +v -0.500000 -0.375000 0.375000 +v -0.500000 -0.500000 0.125000 +v -0.500000 -0.250000 0.125000 +v -0.500000 -0.500000 -0.125000 +v -0.500000 -0.250000 -0.125000 +v -0.250000 -0.500000 0.125000 +v -0.250000 -0.250000 0.125000 +v -0.250000 -0.500000 -0.125000 +v -0.250000 -0.250000 -0.125000 +v -0.500000 -0.375000 0.125000 +v -0.500000 -0.250000 0.000000 +v -0.500000 -0.375000 -0.125000 +v -0.500000 -0.500000 0.000000 +v -0.375000 -0.250000 -0.125000 +v -0.250000 -0.375000 -0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.250000 -0.250000 0.000000 +v -0.250000 -0.375000 0.125000 +v -0.250000 -0.500000 0.000000 +v -0.375000 -0.250000 0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 -0.250000 0.000000 +v -0.375000 -0.500000 0.000000 +v -0.375000 -0.375000 0.125000 +v -0.250000 -0.375000 0.000000 +v -0.375000 -0.375000 -0.125000 +v -0.500000 -0.375000 0.000000 +v -0.500000 -0.500000 -0.250000 +v -0.500000 -0.250000 -0.250000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.250000 -0.500000 +v -0.250000 -0.500000 -0.250000 +v -0.250000 -0.250000 -0.250000 +v -0.250000 -0.500000 -0.500000 +v -0.250000 -0.250000 -0.500000 +v -0.500000 -0.375000 -0.250000 +v -0.500000 -0.250000 -0.375000 +v -0.500000 -0.375000 -0.500000 +v -0.500000 -0.500000 -0.375000 +v -0.375000 -0.250000 -0.500000 +v -0.250000 -0.375000 -0.500000 +v -0.375000 -0.500000 -0.500000 +v -0.250000 -0.250000 -0.375000 +v -0.250000 -0.375000 -0.250000 +v -0.250000 -0.500000 -0.375000 +v -0.375000 -0.250000 -0.250000 +v -0.375000 -0.500000 -0.250000 +v -0.375000 -0.250000 -0.375000 +v -0.375000 -0.500000 -0.375000 +v -0.375000 -0.375000 -0.250000 +v -0.250000 -0.375000 -0.375000 +v -0.375000 -0.375000 -0.500000 +v -0.500000 -0.375000 -0.375000 +v -0.500000 0.250000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.250000 0.250000 +v -0.500000 0.500000 0.250000 +v -0.250000 0.250000 0.500000 +v -0.250000 0.500000 0.500000 +v -0.250000 0.250000 0.250000 +v -0.250000 0.500000 0.250000 +v -0.500000 0.375000 0.500000 +v -0.500000 0.500000 0.375000 +v -0.500000 0.375000 0.250000 +v -0.500000 0.250000 0.375000 +v -0.375000 0.500000 0.250000 +v -0.250000 0.375000 0.250000 +v -0.375000 0.250000 0.250000 +v -0.250000 0.500000 0.375000 +v -0.250000 0.375000 0.500000 +v -0.250000 0.250000 0.375000 +v -0.375000 0.500000 0.500000 +v -0.375000 0.250000 0.500000 +v -0.375000 0.500000 0.375000 +v -0.375000 0.250000 0.375000 +v -0.375000 0.375000 0.500000 +v -0.250000 0.375000 0.375000 +v -0.375000 0.375000 0.250000 +v -0.500000 0.375000 0.375000 +v -0.500000 0.250000 0.125000 +v -0.500000 0.500000 0.125000 +v -0.500000 0.250000 -0.125000 +v -0.500000 0.500000 -0.125000 +v -0.250000 0.250000 0.125000 +v -0.250000 0.500000 0.125000 +v -0.250000 0.250000 -0.125000 +v -0.250000 0.500000 -0.125000 +v -0.500000 0.375000 0.125000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.375000 -0.125000 +v -0.500000 0.250000 0.000000 +v -0.375000 0.500000 -0.125000 +v -0.250000 0.375000 -0.125000 +v -0.375000 0.250000 -0.125000 +v -0.250000 0.500000 0.000000 +v -0.250000 0.375000 0.125000 +v -0.250000 0.250000 0.000000 +v -0.375000 0.500000 0.125000 +v -0.375000 0.250000 0.125000 +v -0.375000 0.500000 0.000000 +v -0.375000 0.250000 0.000000 +v -0.375000 0.375000 0.125000 +v -0.250000 0.375000 0.000000 +v -0.375000 0.375000 -0.125000 +v -0.500000 0.375000 0.000000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.500000 -0.250000 +v -0.500000 0.250000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.500000 -0.250000 +v -0.250000 0.250000 -0.500000 +v -0.250000 0.500000 -0.500000 +v -0.500000 0.375000 -0.250000 +v -0.500000 0.500000 -0.375000 +v -0.500000 0.375000 -0.500000 +v -0.500000 0.250000 -0.375000 +v -0.375000 0.500000 -0.500000 +v -0.250000 0.375000 -0.500000 +v -0.375000 0.250000 -0.500000 +v -0.250000 0.500000 -0.375000 +v -0.250000 0.375000 -0.250000 +v -0.250000 0.250000 -0.375000 +v -0.375000 0.500000 -0.250000 +v -0.375000 0.250000 -0.250000 +v -0.375000 0.500000 -0.375000 +v -0.375000 0.250000 -0.375000 +v -0.375000 0.375000 -0.250000 +v -0.250000 0.375000 -0.375000 +v -0.375000 0.375000 -0.500000 +v -0.500000 0.375000 -0.375000 +v 0.250000 0.250000 0.500000 +v 0.250000 0.500000 0.500000 +v 0.250000 0.250000 0.250000 +v 0.250000 0.500000 0.250000 +v 0.500000 0.250000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.250000 0.250000 +v 0.500000 0.500000 0.250000 +v 0.250000 0.375000 0.500000 +v 0.250000 0.500000 0.375000 +v 0.250000 0.375000 0.250000 +v 0.250000 0.250000 0.375000 +v 0.375000 0.500000 0.250000 +v 0.500000 0.375000 0.250000 +v 0.375000 0.250000 0.250000 +v 0.500000 0.500000 0.375000 +v 0.500000 0.375000 0.500000 +v 0.500000 0.250000 0.375000 +v 0.375000 0.500000 0.500000 +v 0.375000 0.250000 0.500000 +v 0.375000 0.500000 0.375000 +v 0.375000 0.250000 0.375000 +v 0.375000 0.375000 0.500000 +v 0.500000 0.375000 0.375000 +v 0.375000 0.375000 0.250000 +v 0.250000 0.375000 0.375000 +v 0.250000 0.250000 0.125000 +v 0.250000 0.500000 0.125000 +v 0.250000 0.250000 -0.125000 +v 0.250000 0.500000 -0.125000 +v 0.500000 0.250000 0.125000 +v 0.500000 0.500000 0.125000 +v 0.500000 0.250000 -0.125000 +v 0.500000 0.500000 -0.125000 +v 0.250000 0.375000 0.125000 +v 0.250000 0.500000 0.000000 +v 0.250000 0.375000 -0.125000 +v 0.250000 0.250000 0.000000 +v 0.375000 0.500000 -0.125000 +v 0.500000 0.375000 -0.125000 +v 0.375000 0.250000 -0.125000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.375000 0.125000 +v 0.500000 0.250000 0.000000 +v 0.375000 0.500000 0.125000 +v 0.375000 0.250000 0.125000 +v 0.375000 0.500000 0.000000 +v 0.375000 0.250000 0.000000 +v 0.375000 0.375000 0.125000 +v 0.500000 0.375000 0.000000 +v 0.375000 0.375000 -0.125000 +v 0.250000 0.375000 0.000000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.500000 -0.250000 +v 0.250000 0.250000 -0.500000 +v 0.250000 0.500000 -0.500000 +v 0.500000 0.250000 -0.250000 +v 0.500000 0.500000 -0.250000 +v 0.500000 0.250000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.250000 0.375000 -0.250000 +v 0.250000 0.500000 -0.375000 +v 0.250000 0.375000 -0.500000 +v 0.250000 0.250000 -0.375000 +v 0.375000 0.500000 -0.500000 +v 0.500000 0.375000 -0.500000 +v 0.375000 0.250000 -0.500000 +v 0.500000 0.500000 -0.375000 +v 0.500000 0.375000 -0.250000 +v 0.500000 0.250000 -0.375000 +v 0.375000 0.500000 -0.250000 +v 0.375000 0.250000 -0.250000 +v 0.375000 0.500000 -0.375000 +v 0.375000 0.250000 -0.375000 +v 0.375000 0.375000 -0.250000 +v 0.500000 0.375000 -0.375000 +v 0.375000 0.375000 -0.500000 +v 0.250000 0.375000 -0.375000 +vt 0.625000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 1.000000 +vt 0.625000 1.000000 +vt 0.000000 0.625000 +vt 0.375000 0.625000 +vt 0.375000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 -0.000000 +vt 0.375000 -0.000000 +vt 0.375000 0.375000 +vt -0.000000 0.375000 +vt 0.625000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.375000 +vt 0.625000 0.375000 +vt 0.875000 0.875000 +vt 1.000000 0.875000 +vt 0.875000 1.000000 +vt 0.000000 0.875000 +vt 0.125000 0.875000 +vt 0.125000 1.000000 +vt 0.125000 -0.000000 +vt 0.125000 0.125000 +vt -0.000000 0.125000 +vt 0.875000 0.000000 +vt 1.000000 0.125000 +vt 0.875000 0.125000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +g Cube_Meshnode_Material_1 +usemtl Material_1 +s off +f 26/1/1 11/2/1 3/3/1 12/4/1 +f 25/1/2 14/2/2 7/3/2 15/4/2 +f 24/1/3 17/2/3 5/3/3 18/4/3 +f 23/1/4 9/2/4 1/3/4 20/4/4 +f 22/1/5 15/2/5 7/3/5 18/4/5 +f 21/1/6 13/2/6 4/3/6 10/4/6 +f 19/5/6 21/6/6 10/7/6 2/8/6 +f 6/9/6 16/10/6 21/11/6 19/12/6 +f 16/13/6 8/14/6 13/15/6 21/16/6 +f 20/5/5 22/6/5 18/7/5 5/8/5 +f 1/9/5 12/10/5 22/11/5 20/12/5 +f 12/13/5 3/14/5 15/15/5 22/16/5 +f 17/5/4 23/6/4 20/7/4 5/8/4 +f 6/9/4 19/10/4 23/11/4 17/12/4 +f 19/13/4 2/14/4 9/15/4 23/16/4 +f 14/5/3 24/6/3 18/7/3 7/8/3 +f 8/9/3 16/10/3 24/11/3 14/12/3 +f 16/13/3 6/14/3 17/15/3 24/16/3 +f 11/5/2 25/6/2 15/7/2 3/8/2 +f 4/9/2 13/10/2 25/11/2 11/12/2 +f 13/13/2 8/14/2 14/15/2 25/16/2 +f 9/5/1 26/6/1 12/7/1 1/8/1 +f 2/9/1 10/10/1 26/11/1 9/12/1 +f 10/13/1 4/14/1 11/15/1 26/16/1 +g Cube_Meshnode_Material_2 +usemtl Material_2 +f 52/17/1 37/18/1 29/3/1 38/19/1 +f 51/17/2 40/18/2 33/3/2 41/19/2 +f 50/17/3 43/18/3 31/3/3 44/19/3 +f 49/17/4 35/18/4 27/3/4 46/19/4 +f 48/17/5 41/18/5 33/3/5 44/19/5 +f 47/17/6 39/18/6 30/3/6 36/19/6 +f 45/20/6 47/21/6 36/22/6 28/8/6 +f 32/9/6 42/23/6 47/24/6 45/25/6 +f 42/26/6 34/14/6 39/27/6 47/28/6 +f 46/20/5 48/21/5 44/22/5 31/8/5 +f 27/9/5 38/23/5 48/24/5 46/25/5 +f 38/26/5 29/14/5 41/27/5 48/28/5 +f 43/20/4 49/21/4 46/22/4 31/8/4 +f 32/9/4 45/23/4 49/24/4 43/25/4 +f 45/26/4 28/14/4 35/27/4 49/28/4 +f 40/20/3 50/21/3 44/22/3 33/8/3 +f 34/9/3 42/23/3 50/24/3 40/25/3 +f 42/26/3 32/14/3 43/27/3 50/28/3 +f 37/20/2 51/21/2 41/22/2 29/8/2 +f 30/9/2 39/23/2 51/24/2 37/25/2 +f 39/26/2 34/14/2 40/27/2 51/28/2 +f 35/20/1 52/21/1 38/22/1 27/8/1 +f 28/9/1 36/23/1 52/24/1 35/25/1 +f 36/26/1 30/14/1 37/27/1 52/28/1 +g Cube_Meshnode_Material_3 +usemtl Material_3 +f 78/17/1 63/18/1 55/3/1 64/19/1 +f 77/17/2 66/18/2 59/3/2 67/19/2 +f 76/17/3 69/18/3 57/3/3 70/19/3 +f 75/17/4 61/18/4 53/3/4 72/19/4 +f 74/17/5 67/18/5 59/3/5 70/19/5 +f 73/17/6 65/18/6 56/3/6 62/19/6 +f 71/20/6 73/21/6 62/22/6 54/8/6 +f 58/9/6 68/23/6 73/24/6 71/25/6 +f 68/26/6 60/14/6 65/27/6 73/28/6 +f 72/20/5 74/21/5 70/22/5 57/8/5 +f 53/9/5 64/23/5 74/24/5 72/25/5 +f 64/26/5 55/14/5 67/27/5 74/28/5 +f 69/20/4 75/21/4 72/22/4 57/8/4 +f 58/9/4 71/23/4 75/24/4 69/25/4 +f 71/26/4 54/14/4 61/27/4 75/28/4 +f 66/20/3 76/21/3 70/22/3 59/8/3 +f 60/9/3 68/23/3 76/24/3 66/25/3 +f 68/26/3 58/14/3 69/27/3 76/28/3 +f 63/20/2 77/21/2 67/22/2 55/8/2 +f 56/9/2 65/23/2 77/24/2 63/25/2 +f 65/26/2 60/14/2 66/27/2 77/28/2 +f 61/20/1 78/21/1 64/22/1 53/8/1 +f 54/9/1 62/23/1 78/24/1 61/25/1 +f 62/26/1 56/14/1 63/27/1 78/28/1 +f 130/17/1 115/18/1 107/3/1 116/19/1 +f 129/17/2 118/18/2 111/3/2 119/19/2 +f 128/17/3 121/18/3 109/3/3 122/19/3 +f 127/17/4 113/18/4 105/3/4 124/19/4 +f 126/17/5 119/18/5 111/3/5 122/19/5 +f 125/17/6 117/18/6 108/3/6 114/19/6 +f 123/20/6 125/21/6 114/22/6 106/8/6 +f 110/9/6 120/23/6 125/24/6 123/25/6 +f 120/26/6 112/14/6 117/27/6 125/28/6 +f 124/20/5 126/21/5 122/22/5 109/8/5 +f 105/9/5 116/23/5 126/24/5 124/25/5 +f 116/26/5 107/14/5 119/27/5 126/28/5 +f 121/20/4 127/21/4 124/22/4 109/8/4 +f 110/9/4 123/23/4 127/24/4 121/25/4 +f 123/26/4 106/14/4 113/27/4 127/28/4 +f 118/20/3 128/21/3 122/22/3 111/8/3 +f 112/9/3 120/23/3 128/24/3 118/25/3 +f 120/26/3 110/14/3 121/27/3 128/28/3 +f 115/20/2 129/21/2 119/22/2 107/8/2 +f 108/9/2 117/23/2 129/24/2 115/25/2 +f 117/26/2 112/14/2 118/27/2 129/28/2 +f 113/20/1 130/21/1 116/22/1 105/8/1 +f 106/9/1 114/23/1 130/24/1 113/25/1 +f 114/26/1 108/14/1 115/27/1 130/28/1 +f 156/17/1 141/18/1 133/3/1 142/19/1 +f 155/17/2 144/18/2 137/3/2 145/19/2 +f 154/17/3 147/18/3 135/3/3 148/19/3 +f 153/17/4 139/18/4 131/3/4 150/19/4 +f 152/17/5 145/18/5 137/3/5 148/19/5 +f 151/17/6 143/18/6 134/3/6 140/19/6 +f 149/20/6 151/21/6 140/22/6 132/8/6 +f 136/9/6 146/23/6 151/24/6 149/25/6 +f 146/26/6 138/14/6 143/27/6 151/28/6 +f 150/20/5 152/21/5 148/22/5 135/8/5 +f 131/9/5 142/23/5 152/24/5 150/25/5 +f 142/26/5 133/14/5 145/27/5 152/28/5 +f 147/20/4 153/21/4 150/22/4 135/8/4 +f 136/9/4 149/23/4 153/24/4 147/25/4 +f 149/26/4 132/14/4 139/27/4 153/28/4 +f 144/20/3 154/21/3 148/22/3 137/8/3 +f 138/9/3 146/23/3 154/24/3 144/25/3 +f 146/26/3 136/14/3 147/27/3 154/28/3 +f 141/20/2 155/21/2 145/22/2 133/8/2 +f 134/9/2 143/23/2 155/24/2 141/25/2 +f 143/26/2 138/14/2 144/27/2 155/28/2 +f 139/20/1 156/21/1 142/22/1 131/8/1 +f 132/9/1 140/23/1 156/24/1 139/25/1 +f 140/26/1 134/14/1 141/27/1 156/28/1 +f 182/17/1 167/18/1 159/3/1 168/19/1 +f 181/17/2 170/18/2 163/3/2 171/19/2 +f 180/17/3 173/18/3 161/3/3 174/19/3 +f 179/17/4 165/18/4 157/3/4 176/19/4 +f 178/17/5 171/18/5 163/3/5 174/19/5 +f 177/17/6 169/18/6 160/3/6 166/19/6 +f 175/20/6 177/21/6 166/22/6 158/8/6 +f 162/9/6 172/23/6 177/24/6 175/25/6 +f 172/26/6 164/14/6 169/27/6 177/28/6 +f 176/20/5 178/21/5 174/22/5 161/8/5 +f 157/9/5 168/23/5 178/24/5 176/25/5 +f 168/26/5 159/14/5 171/27/5 178/28/5 +f 173/20/4 179/21/4 176/22/4 161/8/4 +f 162/9/4 175/23/4 179/24/4 173/25/4 +f 175/26/4 158/14/4 165/27/4 179/28/4 +f 170/20/3 180/21/3 174/22/3 163/8/3 +f 164/9/3 172/23/3 180/24/3 170/25/3 +f 172/26/3 162/14/3 173/27/3 180/28/3 +f 167/20/2 181/21/2 171/22/2 159/8/2 +f 160/9/2 169/23/2 181/24/2 167/25/2 +f 169/26/2 164/14/2 170/27/2 181/28/2 +f 165/20/1 182/21/1 168/22/1 157/8/1 +f 158/9/1 166/23/1 182/24/1 165/25/1 +f 166/26/1 160/14/1 167/27/1 182/28/1 +f 208/17/1 193/18/1 185/3/1 194/19/1 +f 207/17/2 196/18/2 189/3/2 197/19/2 +f 206/17/3 199/18/3 187/3/3 200/19/3 +f 205/17/4 191/18/4 183/3/4 202/19/4 +f 204/17/5 197/18/5 189/3/5 200/19/5 +f 203/17/6 195/18/6 186/3/6 192/19/6 +f 201/20/6 203/21/6 192/22/6 184/8/6 +f 188/9/6 198/23/6 203/24/6 201/25/6 +f 198/26/6 190/14/6 195/27/6 203/28/6 +f 202/20/5 204/21/5 200/22/5 187/8/5 +f 183/9/5 194/23/5 204/24/5 202/25/5 +f 194/26/5 185/14/5 197/27/5 204/28/5 +f 199/20/4 205/21/4 202/22/4 187/8/4 +f 188/9/4 201/23/4 205/24/4 199/25/4 +f 201/26/4 184/14/4 191/27/4 205/28/4 +f 196/20/3 206/21/3 200/22/3 189/8/3 +f 190/9/3 198/23/3 206/24/3 196/25/3 +f 198/26/3 188/14/3 199/27/3 206/28/3 +f 193/20/2 207/21/2 197/22/2 185/8/2 +f 186/9/2 195/23/2 207/24/2 193/25/2 +f 195/26/2 190/14/2 196/27/2 207/28/2 +f 191/20/1 208/21/1 194/22/1 183/8/1 +f 184/9/1 192/23/1 208/24/1 191/25/1 +f 192/26/1 186/14/1 193/27/1 208/28/1 +f 234/17/1 219/18/1 211/3/1 220/19/1 +f 233/17/2 222/18/2 215/3/2 223/19/2 +f 232/17/3 225/18/3 213/3/3 226/19/3 +f 231/17/4 217/18/4 209/3/4 228/19/4 +f 230/17/5 223/18/5 215/3/5 226/19/5 +f 229/17/6 221/18/6 212/3/6 218/19/6 +f 227/20/6 229/21/6 218/22/6 210/8/6 +f 214/9/6 224/23/6 229/24/6 227/25/6 +f 224/26/6 216/14/6 221/27/6 229/28/6 +f 228/20/5 230/21/5 226/22/5 213/8/5 +f 209/9/5 220/23/5 230/24/5 228/25/5 +f 220/26/5 211/14/5 223/27/5 230/28/5 +f 225/20/4 231/21/4 228/22/4 213/8/4 +f 214/9/4 227/23/4 231/24/4 225/25/4 +f 227/26/4 210/14/4 217/27/4 231/28/4 +f 222/20/3 232/21/3 226/22/3 215/8/3 +f 216/9/3 224/23/3 232/24/3 222/25/3 +f 224/26/3 214/14/3 225/27/3 232/28/3 +f 219/20/2 233/21/2 223/22/2 211/8/2 +f 212/9/2 221/23/2 233/24/2 219/25/2 +f 221/26/2 216/14/2 222/27/2 233/28/2 +f 217/20/1 234/21/1 220/22/1 209/8/1 +f 210/9/1 218/23/1 234/24/1 217/25/1 +f 218/26/1 212/14/1 219/27/1 234/28/1 +f 260/17/1 245/18/1 237/3/1 246/19/1 +f 259/17/2 248/18/2 241/3/2 249/19/2 +f 258/17/3 251/18/3 239/3/3 252/19/3 +f 257/17/4 243/18/4 235/3/4 254/19/4 +f 256/17/5 249/18/5 241/3/5 252/19/5 +f 255/17/6 247/18/6 238/3/6 244/19/6 +f 253/20/6 255/21/6 244/22/6 236/8/6 +f 240/9/6 250/23/6 255/24/6 253/25/6 +f 250/26/6 242/14/6 247/27/6 255/28/6 +f 254/20/5 256/21/5 252/22/5 239/8/5 +f 235/9/5 246/23/5 256/24/5 254/25/5 +f 246/26/5 237/14/5 249/27/5 256/28/5 +f 251/20/4 257/21/4 254/22/4 239/8/4 +f 240/9/4 253/23/4 257/24/4 251/25/4 +f 253/26/4 236/14/4 243/27/4 257/28/4 +f 248/20/3 258/21/3 252/22/3 241/8/3 +f 242/9/3 250/23/3 258/24/3 248/25/3 +f 250/26/3 240/14/3 251/27/3 258/28/3 +f 245/20/2 259/21/2 249/22/2 237/8/2 +f 238/9/2 247/23/2 259/24/2 245/25/2 +f 247/26/2 242/14/2 248/27/2 259/28/2 +f 243/20/1 260/21/1 246/22/1 235/8/1 +f 236/9/1 244/23/1 260/24/1 243/25/1 +f 244/26/1 238/14/1 245/27/1 260/28/1 +f 312/17/1 297/18/1 289/3/1 298/19/1 +f 311/17/2 300/18/2 293/3/2 301/19/2 +f 310/17/3 303/18/3 291/3/3 304/19/3 +f 309/17/4 295/18/4 287/3/4 306/19/4 +f 308/17/5 301/18/5 293/3/5 304/19/5 +f 307/17/6 299/18/6 290/3/6 296/19/6 +f 305/20/6 307/21/6 296/22/6 288/8/6 +f 292/9/6 302/23/6 307/24/6 305/25/6 +f 302/26/6 294/14/6 299/27/6 307/28/6 +f 306/20/5 308/21/5 304/22/5 291/8/5 +f 287/9/5 298/23/5 308/24/5 306/25/5 +f 298/26/5 289/14/5 301/27/5 308/28/5 +f 303/20/4 309/21/4 306/22/4 291/8/4 +f 292/9/4 305/23/4 309/24/4 303/25/4 +f 305/26/4 288/14/4 295/27/4 309/28/4 +f 300/20/3 310/21/3 304/22/3 293/8/3 +f 294/9/3 302/23/3 310/24/3 300/25/3 +f 302/26/3 292/14/3 303/27/3 310/28/3 +f 297/20/2 311/21/2 301/22/2 289/8/2 +f 290/9/2 299/23/2 311/24/2 297/25/2 +f 299/26/2 294/14/2 300/27/2 311/28/2 +f 295/20/1 312/21/1 298/22/1 287/8/1 +f 288/9/1 296/23/1 312/24/1 295/25/1 +f 296/26/1 290/14/1 297/27/1 312/28/1 +f 338/17/1 323/18/1 315/3/1 324/19/1 +f 337/17/2 326/18/2 319/3/2 327/19/2 +f 336/17/3 329/18/3 317/3/3 330/19/3 +f 335/17/4 321/18/4 313/3/4 332/19/4 +f 334/17/5 327/18/5 319/3/5 330/19/5 +f 333/17/6 325/18/6 316/3/6 322/19/6 +f 331/20/6 333/21/6 322/22/6 314/8/6 +f 318/9/6 328/23/6 333/24/6 331/25/6 +f 328/26/6 320/14/6 325/27/6 333/28/6 +f 332/20/5 334/21/5 330/22/5 317/8/5 +f 313/9/5 324/23/5 334/24/5 332/25/5 +f 324/26/5 315/14/5 327/27/5 334/28/5 +f 329/20/4 335/21/4 332/22/4 317/8/4 +f 318/9/4 331/23/4 335/24/4 329/25/4 +f 331/26/4 314/14/4 321/27/4 335/28/4 +f 326/20/3 336/21/3 330/22/3 319/8/3 +f 320/9/3 328/23/3 336/24/3 326/25/3 +f 328/26/3 318/14/3 329/27/3 336/28/3 +f 323/20/2 337/21/2 327/22/2 315/8/2 +f 316/9/2 325/23/2 337/24/2 323/25/2 +f 325/26/2 320/14/2 326/27/2 337/28/2 +f 321/20/1 338/21/1 324/22/1 313/8/1 +f 314/9/1 322/23/1 338/24/1 321/25/1 +f 322/26/1 316/14/1 323/27/1 338/28/1 +f 364/17/1 349/18/1 341/3/1 350/19/1 +f 363/17/2 352/18/2 345/3/2 353/19/2 +f 362/17/3 355/18/3 343/3/3 356/19/3 +f 361/17/4 347/18/4 339/3/4 358/19/4 +f 360/17/5 353/18/5 345/3/5 356/19/5 +f 359/17/6 351/18/6 342/3/6 348/19/6 +f 357/20/6 359/21/6 348/22/6 340/8/6 +f 344/9/6 354/23/6 359/24/6 357/25/6 +f 354/26/6 346/14/6 351/27/6 359/28/6 +f 358/20/5 360/21/5 356/22/5 343/8/5 +f 339/9/5 350/23/5 360/24/5 358/25/5 +f 350/26/5 341/14/5 353/27/5 360/28/5 +f 355/20/4 361/21/4 358/22/4 343/8/4 +f 344/9/4 357/23/4 361/24/4 355/25/4 +f 357/26/4 340/14/4 347/27/4 361/28/4 +f 352/20/3 362/21/3 356/22/3 345/8/3 +f 346/9/3 354/23/3 362/24/3 352/25/3 +f 354/26/3 344/14/3 355/27/3 362/28/3 +f 349/20/2 363/21/2 353/22/2 341/8/2 +f 342/9/2 351/23/2 363/24/2 349/25/2 +f 351/26/2 346/14/2 352/27/2 363/28/2 +f 347/20/1 364/21/1 350/22/1 339/8/1 +f 340/9/1 348/23/1 364/24/1 347/25/1 +f 348/26/1 342/14/1 349/27/1 364/28/1 +f 390/17/1 375/18/1 367/3/1 376/19/1 +f 389/17/2 378/18/2 371/3/2 379/19/2 +f 388/17/3 381/18/3 369/3/3 382/19/3 +f 387/17/4 373/18/4 365/3/4 384/19/4 +f 386/17/5 379/18/5 371/3/5 382/19/5 +f 385/17/6 377/18/6 368/3/6 374/19/6 +f 383/20/6 385/21/6 374/22/6 366/8/6 +f 370/9/6 380/23/6 385/24/6 383/25/6 +f 380/26/6 372/14/6 377/27/6 385/28/6 +f 384/20/5 386/21/5 382/22/5 369/8/5 +f 365/9/5 376/23/5 386/24/5 384/25/5 +f 376/26/5 367/14/5 379/27/5 386/28/5 +f 381/20/4 387/21/4 384/22/4 369/8/4 +f 370/9/4 383/23/4 387/24/4 381/25/4 +f 383/26/4 366/14/4 373/27/4 387/28/4 +f 378/20/3 388/21/3 382/22/3 371/8/3 +f 372/9/3 380/23/3 388/24/3 378/25/3 +f 380/26/3 370/14/3 381/27/3 388/28/3 +f 375/20/2 389/21/2 379/22/2 367/8/2 +f 368/9/2 377/23/2 389/24/2 375/25/2 +f 377/26/2 372/14/2 378/27/2 389/28/2 +f 373/20/1 390/21/1 376/22/1 365/8/1 +f 366/9/1 374/23/1 390/24/1 373/25/1 +f 374/26/1 368/14/1 375/27/1 390/28/1 +f 416/17/1 401/18/1 393/3/1 402/19/1 +f 415/17/2 404/18/2 397/3/2 405/19/2 +f 414/17/3 407/18/3 395/3/3 408/19/3 +f 413/17/4 399/18/4 391/3/4 410/19/4 +f 412/17/5 405/18/5 397/3/5 408/19/5 +f 411/17/6 403/18/6 394/3/6 400/19/6 +f 409/20/6 411/21/6 400/22/6 392/8/6 +f 396/9/6 406/23/6 411/24/6 409/25/6 +f 406/26/6 398/14/6 403/27/6 411/28/6 +f 410/20/5 412/21/5 408/22/5 395/8/5 +f 391/9/5 402/23/5 412/24/5 410/25/5 +f 402/26/5 393/14/5 405/27/5 412/28/5 +f 407/20/4 413/21/4 410/22/4 395/8/4 +f 396/9/4 409/23/4 413/24/4 407/25/4 +f 409/26/4 392/14/4 399/27/4 413/28/4 +f 404/20/3 414/21/3 408/22/3 397/8/3 +f 398/9/3 406/23/3 414/24/3 404/25/3 +f 406/26/3 396/14/3 407/27/3 414/28/3 +f 401/20/2 415/21/2 405/22/2 393/8/2 +f 394/9/2 403/23/2 415/24/2 401/25/2 +f 403/26/2 398/14/2 404/27/2 415/28/2 +f 399/20/1 416/21/1 402/22/1 391/8/1 +f 392/9/1 400/23/1 416/24/1 399/25/1 +f 400/26/1 394/14/1 401/27/1 416/28/1 +f 442/17/1 427/18/1 419/3/1 428/19/1 +f 441/17/2 430/18/2 423/3/2 431/19/2 +f 440/17/3 433/18/3 421/3/3 434/19/3 +f 439/17/4 425/18/4 417/3/4 436/19/4 +f 438/17/5 431/18/5 423/3/5 434/19/5 +f 437/17/6 429/18/6 420/3/6 426/19/6 +f 435/20/6 437/21/6 426/22/6 418/8/6 +f 422/9/6 432/23/6 437/24/6 435/25/6 +f 432/26/6 424/14/6 429/27/6 437/28/6 +f 436/20/5 438/21/5 434/22/5 421/8/5 +f 417/9/5 428/23/5 438/24/5 436/25/5 +f 428/26/5 419/14/5 431/27/5 438/28/5 +f 433/20/4 439/21/4 436/22/4 421/8/4 +f 422/9/4 435/23/4 439/24/4 433/25/4 +f 435/26/4 418/14/4 425/27/4 439/28/4 +f 430/20/3 440/21/3 434/22/3 423/8/3 +f 424/9/3 432/23/3 440/24/3 430/25/3 +f 432/26/3 422/14/3 433/27/3 440/28/3 +f 427/20/2 441/21/2 431/22/2 419/8/2 +f 420/9/2 429/23/2 441/24/2 427/25/2 +f 429/26/2 424/14/2 430/27/2 441/28/2 +f 425/20/1 442/21/1 428/22/1 417/8/1 +f 418/9/1 426/23/1 442/24/1 425/25/1 +f 426/26/1 420/14/1 427/27/1 442/28/1 +f 468/17/1 453/18/1 445/3/1 454/19/1 +f 467/17/2 456/18/2 449/3/2 457/19/2 +f 466/17/3 459/18/3 447/3/3 460/19/3 +f 465/17/4 451/18/4 443/3/4 462/19/4 +f 464/17/5 457/18/5 449/3/5 460/19/5 +f 463/17/6 455/18/6 446/3/6 452/19/6 +f 461/20/6 463/21/6 452/22/6 444/8/6 +f 448/9/6 458/23/6 463/24/6 461/25/6 +f 458/26/6 450/14/6 455/27/6 463/28/6 +f 462/20/5 464/21/5 460/22/5 447/8/5 +f 443/9/5 454/23/5 464/24/5 462/25/5 +f 454/26/5 445/14/5 457/27/5 464/28/5 +f 459/20/4 465/21/4 462/22/4 447/8/4 +f 448/9/4 461/23/4 465/24/4 459/25/4 +f 461/26/4 444/14/4 451/27/4 465/28/4 +f 456/20/3 466/21/3 460/22/3 449/8/3 +f 450/9/3 458/23/3 466/24/3 456/25/3 +f 458/26/3 448/14/3 459/27/3 466/28/3 +f 453/20/2 467/21/2 457/22/2 445/8/2 +f 446/9/2 455/23/2 467/24/2 453/25/2 +f 455/26/2 450/14/2 456/27/2 467/28/2 +f 451/20/1 468/21/1 454/22/1 443/8/1 +f 444/9/1 452/23/1 468/24/1 451/25/1 +f 452/26/1 446/14/1 453/27/1 468/28/1 +f 494/17/1 479/18/1 471/3/1 480/19/1 +f 493/17/2 482/18/2 475/3/2 483/19/2 +f 492/17/3 485/18/3 473/3/3 486/19/3 +f 491/17/4 477/18/4 469/3/4 488/19/4 +f 490/17/5 483/18/5 475/3/5 486/19/5 +f 489/17/6 481/18/6 472/3/6 478/19/6 +f 487/20/6 489/21/6 478/22/6 470/8/6 +f 474/9/6 484/23/6 489/24/6 487/25/6 +f 484/26/6 476/14/6 481/27/6 489/28/6 +f 488/20/5 490/21/5 486/22/5 473/8/5 +f 469/9/5 480/23/5 490/24/5 488/25/5 +f 480/26/5 471/14/5 483/27/5 490/28/5 +f 485/20/4 491/21/4 488/22/4 473/8/4 +f 474/9/4 487/23/4 491/24/4 485/25/4 +f 487/26/4 470/14/4 477/27/4 491/28/4 +f 482/20/3 492/21/3 486/22/3 475/8/3 +f 476/9/3 484/23/3 492/24/3 482/25/3 +f 484/26/3 474/14/3 485/27/3 492/28/3 +f 479/20/2 493/21/2 483/22/2 471/8/2 +f 472/9/2 481/23/2 493/24/2 479/25/2 +f 481/26/2 476/14/2 482/27/2 493/28/2 +f 477/20/1 494/21/1 480/22/1 469/8/1 +f 470/9/1 478/23/1 494/24/1 477/25/1 +f 478/26/1 472/14/1 479/27/1 494/28/1 +f 520/17/1 505/18/1 497/3/1 506/19/1 +f 519/17/2 508/18/2 501/3/2 509/19/2 +f 518/17/3 511/18/3 499/3/3 512/19/3 +f 517/17/4 503/18/4 495/3/4 514/19/4 +f 516/17/5 509/18/5 501/3/5 512/19/5 +f 515/17/6 507/18/6 498/3/6 504/19/6 +f 513/20/6 515/21/6 504/22/6 496/8/6 +f 500/9/6 510/23/6 515/24/6 513/25/6 +f 510/26/6 502/14/6 507/27/6 515/28/6 +f 514/20/5 516/21/5 512/22/5 499/8/5 +f 495/9/5 506/23/5 516/24/5 514/25/5 +f 506/26/5 497/14/5 509/27/5 516/28/5 +f 511/20/4 517/21/4 514/22/4 499/8/4 +f 500/9/4 513/23/4 517/24/4 511/25/4 +f 513/26/4 496/14/4 503/27/4 517/28/4 +f 508/20/3 518/21/3 512/22/3 501/8/3 +f 502/9/3 510/23/3 518/24/3 508/25/3 +f 510/26/3 500/14/3 511/27/3 518/28/3 +f 505/20/2 519/21/2 509/22/2 497/8/2 +f 498/9/2 507/23/2 519/24/2 505/25/2 +f 507/26/2 502/14/2 508/27/2 519/28/2 +f 503/20/1 520/21/1 506/22/1 495/8/1 +f 496/9/1 504/23/1 520/24/1 503/25/1 +f 504/26/1 498/14/1 505/27/1 520/28/1 +f 546/17/1 531/18/1 523/3/1 532/19/1 +f 545/17/2 534/18/2 527/3/2 535/19/2 +f 544/17/3 537/18/3 525/3/3 538/19/3 +f 543/17/4 529/18/4 521/3/4 540/19/4 +f 542/17/5 535/18/5 527/3/5 538/19/5 +f 541/17/6 533/18/6 524/3/6 530/19/6 +f 539/20/6 541/21/6 530/22/6 522/8/6 +f 526/9/6 536/23/6 541/24/6 539/25/6 +f 536/26/6 528/14/6 533/27/6 541/28/6 +f 540/20/5 542/21/5 538/22/5 525/8/5 +f 521/9/5 532/23/5 542/24/5 540/25/5 +f 532/26/5 523/14/5 535/27/5 542/28/5 +f 537/20/4 543/21/4 540/22/4 525/8/4 +f 526/9/4 539/23/4 543/24/4 537/25/4 +f 539/26/4 522/14/4 529/27/4 543/28/4 +f 534/20/3 544/21/3 538/22/3 527/8/3 +f 528/9/3 536/23/3 544/24/3 534/25/3 +f 536/26/3 526/14/3 537/27/3 544/28/3 +f 531/20/2 545/21/2 535/22/2 523/8/2 +f 524/9/2 533/23/2 545/24/2 531/25/2 +f 533/26/2 528/14/2 534/27/2 545/28/2 +f 529/20/1 546/21/1 532/22/1 521/8/1 +f 522/9/1 530/23/1 546/24/1 529/25/1 +f 530/26/1 524/14/1 531/27/1 546/28/1 +f 572/17/1 557/18/1 549/3/1 558/19/1 +f 571/17/2 560/18/2 553/3/2 561/19/2 +f 570/17/3 563/18/3 551/3/3 564/19/3 +f 569/17/4 555/18/4 547/3/4 566/19/4 +f 568/17/5 561/18/5 553/3/5 564/19/5 +f 567/17/6 559/18/6 550/3/6 556/19/6 +f 565/20/6 567/21/6 556/22/6 548/8/6 +f 552/9/6 562/23/6 567/24/6 565/25/6 +f 562/26/6 554/14/6 559/27/6 567/28/6 +f 566/20/5 568/21/5 564/22/5 551/8/5 +f 547/9/5 558/23/5 568/24/5 566/25/5 +f 558/26/5 549/14/5 561/27/5 568/28/5 +f 563/20/4 569/21/4 566/22/4 551/8/4 +f 552/9/4 565/23/4 569/24/4 563/25/4 +f 565/26/4 548/14/4 555/27/4 569/28/4 +f 560/20/3 570/21/3 564/22/3 553/8/3 +f 554/9/3 562/23/3 570/24/3 560/25/3 +f 562/26/3 552/14/3 563/27/3 570/28/3 +f 557/20/2 571/21/2 561/22/2 549/8/2 +f 550/9/2 559/23/2 571/24/2 557/25/2 +f 559/26/2 554/14/2 560/27/2 571/28/2 +f 555/20/1 572/21/1 558/22/1 547/8/1 +f 548/9/1 556/23/1 572/24/1 555/25/1 +f 556/26/1 550/14/1 557/27/1 572/28/1 +f 598/17/1 583/18/1 575/3/1 584/19/1 +f 597/17/2 586/18/2 579/3/2 587/19/2 +f 596/17/3 589/18/3 577/3/3 590/19/3 +f 595/17/4 581/18/4 573/3/4 592/19/4 +f 594/17/5 587/18/5 579/3/5 590/19/5 +f 593/17/6 585/18/6 576/3/6 582/19/6 +f 591/20/6 593/21/6 582/22/6 574/8/6 +f 578/9/6 588/23/6 593/24/6 591/25/6 +f 588/26/6 580/14/6 585/27/6 593/28/6 +f 592/20/5 594/21/5 590/22/5 577/8/5 +f 573/9/5 584/23/5 594/24/5 592/25/5 +f 584/26/5 575/14/5 587/27/5 594/28/5 +f 589/20/4 595/21/4 592/22/4 577/8/4 +f 578/9/4 591/23/4 595/24/4 589/25/4 +f 591/26/4 574/14/4 581/27/4 595/28/4 +f 586/20/3 596/21/3 590/22/3 579/8/3 +f 580/9/3 588/23/3 596/24/3 586/25/3 +f 588/26/3 578/14/3 589/27/3 596/28/3 +f 583/20/2 597/21/2 587/22/2 575/8/2 +f 576/9/2 585/23/2 597/24/2 583/25/2 +f 585/26/2 580/14/2 586/27/2 597/28/2 +f 581/20/1 598/21/1 584/22/1 573/8/1 +f 574/9/1 582/23/1 598/24/1 581/25/1 +f 582/26/1 576/14/1 583/27/1 598/28/1 +f 624/17/1 609/18/1 601/3/1 610/19/1 +f 623/17/2 612/18/2 605/3/2 613/19/2 +f 622/17/3 615/18/3 603/3/3 616/19/3 +f 621/17/4 607/18/4 599/3/4 618/19/4 +f 620/17/5 613/18/5 605/3/5 616/19/5 +f 619/17/6 611/18/6 602/3/6 608/19/6 +f 617/20/6 619/21/6 608/22/6 600/8/6 +f 604/9/6 614/23/6 619/24/6 617/25/6 +f 614/26/6 606/14/6 611/27/6 619/28/6 +f 618/20/5 620/21/5 616/22/5 603/8/5 +f 599/9/5 610/23/5 620/24/5 618/25/5 +f 610/26/5 601/14/5 613/27/5 620/28/5 +f 615/20/4 621/21/4 618/22/4 603/8/4 +f 604/9/4 617/23/4 621/24/4 615/25/4 +f 617/26/4 600/14/4 607/27/4 621/28/4 +f 612/20/3 622/21/3 616/22/3 605/8/3 +f 606/9/3 614/23/3 622/24/3 612/25/3 +f 614/26/3 604/14/3 615/27/3 622/28/3 +f 609/20/2 623/21/2 613/22/2 601/8/2 +f 602/9/2 611/23/2 623/24/2 609/25/2 +f 611/26/2 606/14/2 612/27/2 623/28/2 +f 607/20/1 624/21/1 610/22/1 599/8/1 +f 600/9/1 608/23/1 624/24/1 607/25/1 +f 608/26/1 602/14/1 609/27/1 624/28/1 +f 650/17/1 635/18/1 627/3/1 636/19/1 +f 649/17/2 638/18/2 631/3/2 639/19/2 +f 648/17/3 641/18/3 629/3/3 642/19/3 +f 647/17/4 633/18/4 625/3/4 644/19/4 +f 646/17/5 639/18/5 631/3/5 642/19/5 +f 645/17/6 637/18/6 628/3/6 634/19/6 +f 643/20/6 645/21/6 634/22/6 626/8/6 +f 630/9/6 640/23/6 645/24/6 643/25/6 +f 640/26/6 632/14/6 637/27/6 645/28/6 +f 644/20/5 646/21/5 642/22/5 629/8/5 +f 625/9/5 636/23/5 646/24/5 644/25/5 +f 636/26/5 627/14/5 639/27/5 646/28/5 +f 641/20/4 647/21/4 644/22/4 629/8/4 +f 630/9/4 643/23/4 647/24/4 641/25/4 +f 643/26/4 626/14/4 633/27/4 647/28/4 +f 638/20/3 648/21/3 642/22/3 631/8/3 +f 632/9/3 640/23/3 648/24/3 638/25/3 +f 640/26/3 630/14/3 641/27/3 648/28/3 +f 635/20/2 649/21/2 639/22/2 627/8/2 +f 628/9/2 637/23/2 649/24/2 635/25/2 +f 637/26/2 632/14/2 638/27/2 649/28/2 +f 633/20/1 650/21/1 636/22/1 625/8/1 +f 626/9/1 634/23/1 650/24/1 633/25/1 +f 634/26/1 628/14/1 635/27/1 650/28/1 +f 676/17/1 661/18/1 653/3/1 662/19/1 +f 675/17/2 664/18/2 657/3/2 665/19/2 +f 674/17/3 667/18/3 655/3/3 668/19/3 +f 673/17/4 659/18/4 651/3/4 670/19/4 +f 672/17/5 665/18/5 657/3/5 668/19/5 +f 671/17/6 663/18/6 654/3/6 660/19/6 +f 669/20/6 671/21/6 660/22/6 652/8/6 +f 656/9/6 666/23/6 671/24/6 669/25/6 +f 666/26/6 658/14/6 663/27/6 671/28/6 +f 670/20/5 672/21/5 668/22/5 655/8/5 +f 651/9/5 662/23/5 672/24/5 670/25/5 +f 662/26/5 653/14/5 665/27/5 672/28/5 +f 667/20/4 673/21/4 670/22/4 655/8/4 +f 656/9/4 669/23/4 673/24/4 667/25/4 +f 669/26/4 652/14/4 659/27/4 673/28/4 +f 664/20/3 674/21/3 668/22/3 657/8/3 +f 658/9/3 666/23/3 674/24/3 664/25/3 +f 666/26/3 656/14/3 667/27/3 674/28/3 +f 661/20/2 675/21/2 665/22/2 653/8/2 +f 654/9/2 663/23/2 675/24/2 661/25/2 +f 663/26/2 658/14/2 664/27/2 675/28/2 +f 659/20/1 676/21/1 662/22/1 651/8/1 +f 652/9/1 660/23/1 676/24/1 659/25/1 +f 660/26/1 654/14/1 661/27/1 676/28/1 +g Cube_Meshnode_Material_4 +usemtl Material_4 +f 286/17/1 271/18/1 263/3/1 272/19/1 +f 285/17/2 274/18/2 267/3/2 275/19/2 +f 284/17/3 277/18/3 265/3/3 278/19/3 +f 283/17/4 269/18/4 261/3/4 280/19/4 +f 282/17/5 275/18/5 267/3/5 278/19/5 +f 281/17/6 273/18/6 264/3/6 270/19/6 +f 279/20/6 281/21/6 270/22/6 262/8/6 +f 266/9/6 276/23/6 281/24/6 279/25/6 +f 276/26/6 268/14/6 273/27/6 281/28/6 +f 280/20/5 282/21/5 278/22/5 265/8/5 +f 261/9/5 272/23/5 282/24/5 280/25/5 +f 272/26/5 263/14/5 275/27/5 282/28/5 +f 277/20/4 283/21/4 280/22/4 265/8/4 +f 266/9/4 279/23/4 283/24/4 277/25/4 +f 279/26/4 262/14/4 269/27/4 283/28/4 +f 274/20/3 284/21/3 278/22/3 267/8/3 +f 268/9/3 276/23/3 284/24/3 274/25/3 +f 276/26/3 266/14/3 277/27/3 284/28/3 +f 271/20/2 285/21/2 275/22/2 263/8/2 +f 264/9/2 273/23/2 285/24/2 271/25/2 +f 273/26/2 268/14/2 274/27/2 285/28/2 +f 269/20/1 286/21/1 272/22/1 261/8/1 +f 262/9/1 270/23/1 286/24/1 269/25/1 +f 270/26/1 264/14/1 271/27/1 286/28/1 +g Cube_Meshnode_Material_5 +usemtl Material_5 +f 104/17/1 89/18/1 81/3/1 90/19/1 +f 103/17/2 92/18/2 85/3/2 93/19/2 +f 102/17/3 95/18/3 83/3/3 96/19/3 +f 101/17/4 87/18/4 79/3/4 98/19/4 +f 100/17/5 93/18/5 85/3/5 96/19/5 +f 99/17/6 91/18/6 82/3/6 88/19/6 +f 97/20/6 99/21/6 88/22/6 80/8/6 +f 84/9/6 94/23/6 99/24/6 97/25/6 +f 94/26/6 86/14/6 91/27/6 99/28/6 +f 98/20/5 100/21/5 96/22/5 83/8/5 +f 79/9/5 90/23/5 100/24/5 98/25/5 +f 90/26/5 81/14/5 93/27/5 100/28/5 +f 95/20/4 101/21/4 98/22/4 83/8/4 +f 84/9/4 97/23/4 101/24/4 95/25/4 +f 97/26/4 80/14/4 87/27/4 101/28/4 +f 92/20/3 102/21/3 96/22/3 85/8/3 +f 86/9/3 94/23/3 102/24/3 92/25/3 +f 94/26/3 84/14/3 95/27/3 102/28/3 +f 89/20/2 103/21/2 93/22/2 81/8/2 +f 82/9/2 91/23/2 103/24/2 89/25/2 +f 91/26/2 86/14/2 92/27/2 103/28/2 +f 87/20/1 104/21/1 90/22/1 79/8/1 +f 80/9/1 88/23/1 104/24/1 87/25/1 +f 88/26/1 82/14/1 89/27/1 104/28/1 diff --git a/models/meshnode_fence.obj b/models/meshnode_fence.obj new file mode 100644 index 0000000..58143bc --- /dev/null +++ b/models/meshnode_fence.obj @@ -0,0 +1,166 @@ +# Blender v2.76 (sub 0) OBJ File: 'meshnode_fence.blend' +# www.blender.org +mtllib meshnode_fence.mtl +v 0.625000 1.875000 -5.000000 +v 0.625000 1.875000 -1.250000 +v -0.625000 1.875000 -1.250000 +v -0.625000 1.875000 -5.000000 +v 0.625000 3.125000 -5.000000 +v 0.625000 3.125000 -1.250000 +v -0.625000 3.125000 -1.250000 +v -0.625000 3.125000 -5.000000 +v -0.625000 -1.875000 -5.000000 +v -0.625000 -1.875000 -1.250000 +v 0.625000 -1.875000 -1.250000 +v 0.625000 -1.875000 -5.000000 +v -0.625000 -3.125000 -5.000000 +v -0.625000 -3.125000 -1.250000 +v 0.625000 -3.125000 -1.250000 +v 0.625000 -3.125000 -5.000000 +v -5.000000 1.875000 -0.624998 +v -1.250000 1.875000 -0.625000 +v -1.250000 1.875000 0.625000 +v -5.000000 1.875000 0.625002 +v -5.000000 3.125000 -0.624998 +v -1.250000 3.125000 -0.625000 +v -1.250000 3.125000 0.625000 +v -5.000000 3.125000 0.625002 +v -5.000000 -1.875000 0.625002 +v -1.250000 -1.875000 0.625000 +v -1.250000 -1.875000 -0.625000 +v -5.000000 -1.875000 -0.624998 +v -5.000000 -3.125000 0.625002 +v -1.250000 -3.125000 0.625000 +v -1.250000 -3.125000 -0.625000 +v -5.000000 -3.125000 -0.624998 +v 1.250004 1.875000 -0.624998 +v 5.000004 1.875000 -0.625000 +v 5.000005 1.875000 0.625000 +v 1.250005 1.875000 0.625002 +v 1.250005 3.125000 -0.624998 +v 5.000005 3.125000 -0.625000 +v 5.000005 3.125000 0.625000 +v 1.250005 3.125000 0.625002 +v 1.250005 -1.875000 0.625002 +v 5.000005 -1.875000 0.625000 +v 5.000005 -1.875000 -0.625000 +v 1.250005 -1.875000 -0.624998 +v 1.250005 -3.125000 0.625002 +v 5.000005 -3.125000 0.625000 +v 5.000004 -3.125000 -0.625000 +v 1.250004 -3.125000 -0.624998 +v 0.625000 1.875000 1.250006 +v 0.625000 1.875000 5.000006 +v -0.625000 1.875000 5.000006 +v -0.625000 1.875000 1.250005 +v 0.625000 3.125000 1.250006 +v 0.625000 3.125000 5.000006 +v -0.625000 3.125000 5.000005 +v -0.625000 3.125000 1.250006 +v -0.625000 -1.875000 1.250006 +v -0.625000 -1.875000 5.000005 +v 0.625000 -1.875000 5.000006 +v 0.625000 -1.875000 1.250006 +v -0.625000 -3.125000 1.250005 +v -0.625000 -3.125000 5.000006 +v 0.625000 -3.125000 5.000006 +v 0.625000 -3.125000 1.250006 +v 1.250000 -5.000000 -1.250000 +v 1.250000 -5.000000 1.250000 +v -1.250000 -5.000000 1.250000 +v -1.250000 -5.000000 -1.250000 +v 1.250000 5.000000 -1.250000 +v 1.250000 5.000000 1.250000 +v -1.250000 5.000000 1.250000 +v -1.250000 5.000000 -1.250000 +vt 0.375000 0.625000 +vt 0.375000 0.375000 +vt 0.625000 0.375000 +vt 0.625000 0.625000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.000000 +vt 1.000000 0.750000 +vt 0.625000 0.750000 +vt 1.000000 0.625000 +vt 1.000000 0.875000 +vt 1.000000 1.000000 +vt 0.625000 0.875000 +vt 0.625000 0.500000 +vt 1.000000 0.500000 +vt 0.625000 0.125000 +vt 1.000000 0.000000 +vt 1.000000 0.125000 +vt 1.000000 0.250000 +vt 1.000000 0.375000 +vt 0.625000 0.250000 +vt 0.375000 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.375000 0.875000 +vt -0.000000 1.000000 +vt 0.000000 0.875000 +vt -0.000000 0.500000 +vt 0.375000 0.500000 +vt -0.000000 0.125000 +vt 0.000000 -0.000000 +vt 0.375000 0.125000 +vt 0.375000 0.250000 +vt -0.000000 0.375000 +vt -0.000000 0.250000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -0.000000 -0.000000 1.000000 +vn -1.000000 -0.000000 -0.000000 +vn 0.000000 0.000000 -1.000000 +g Cube_Cube_post +usemtl post +s off +f 65/1/1 66/2/1 67/3/1 68/4/1 +f 69/2/2 72/3/2 71/4/2 70/1/2 +f 65/5/3 69/6/3 70/7/3 66/8/3 +f 66/5/4 70/6/4 71/7/4 67/8/4 +f 67/5/5 71/6/5 72/7/5 68/8/5 +f 69/7/6 65/8/6 68/5/6 72/6/6 +g Cube_Cube_rail_1 +usemtl rail_1 +f 1/9/1 2/10/1 3/4/1 4/11/1 +f 5/12/2 8/13/2 7/6/2 6/14/2 +f 1/9/3 5/12/3 6/14/3 2/10/3 +f 3/4/5 7/15/5 8/16/5 4/11/5 +f 14/17/5 10/5/5 9/18/5 13/19/5 +f 16/20/3 12/21/3 11/3/3 15/22/3 +f 12/21/2 9/16/2 10/15/2 11/3/2 +f 16/20/1 15/22/1 14/17/1 13/19/1 +g Cube_Cube_rail_2 +usemtl rail_2 +f 33/4/1 34/11/1 35/9/1 36/10/1 +f 37/6/2 40/14/2 39/12/2 38/13/2 +f 33/4/6 37/15/6 38/16/6 34/11/6 +f 35/9/4 39/12/4 40/14/4 36/10/4 +f 46/20/4 42/21/4 41/3/4 45/22/4 +f 48/18/6 44/19/6 43/17/6 47/5/6 +f 44/15/2 41/3/2 42/21/2 43/16/2 +f 48/17/1 47/19/1 46/20/1 45/22/1 +g Cube_Cube_rail_3 +usemtl rail_3 +f 49/23/1 50/24/1 51/25/1 52/1/1 +f 53/26/2 56/7/2 55/27/2 54/28/2 +f 49/23/3 53/26/3 54/28/3 50/24/3 +f 51/25/5 55/29/5 56/30/5 52/1/5 +f 62/31/5 58/32/5 57/8/5 61/33/5 +f 64/34/3 60/2/3 59/35/3 63/36/3 +f 60/2/2 57/30/2 58/29/2 59/35/2 +f 64/34/1 63/36/1 62/31/1 61/33/1 +g Cube_Cube_rail_4 +usemtl rail_4 +f 17/25/1 18/1/1 19/23/1 20/24/1 +f 21/27/2 24/28/2 23/26/2 22/7/2 +f 17/25/6 21/29/6 22/30/6 18/1/6 +f 19/23/4 23/26/4 24/28/4 20/24/4 +f 30/34/4 26/2/4 25/35/4 29/36/4 +f 32/31/6 28/32/6 27/8/6 31/33/6 +f 28/29/2 25/35/2 26/2/2 27/30/2 +f 32/31/1 31/33/1 30/34/1 29/36/1 diff --git a/models/meshnode_fence.x b/models/meshnode_fence.x deleted file mode 100644 index f1cf367..0000000 --- a/models/meshnode_fence.x +++ /dev/null @@ -1,633 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 1.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Cube { - FrameTransformMatrix { - 1.250000, 0.000000, 0.000000, 0.000000, - 0.000000, 1.250000, 0.000000, 0.000000, - 0.000000, 0.000000, 5.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { //Cube_007 Mesh - 152; - -0.500000; 4.000000; 0.475000;, - -0.500000; 1.000000; 0.475000;, - 0.500000; 1.000000; 0.475000;, - 0.500000; 4.000000; 0.475000;, - 0.500000; 1.000000; 0.725000;, - -0.500000; 1.000000; 0.725000;, - -0.500000; 4.000000; 0.725000;, - 0.500000; 4.000000; 0.725000;, - 0.500000; 1.000000; 0.475000;, - 0.500000; 1.000000; 0.725000;, - 0.500000; 4.000000; 0.725000;, - 0.500000; 4.000000; 0.475000;, - -0.500000; 4.000000; 0.475000;, - -0.500000; 4.000000; 0.725000;, - -0.500000; 1.000000; 0.725000;, - -0.500000; 1.000000; 0.475000;, - -0.500000; 4.000000;-0.712500;, - -0.500000; 4.000000;-0.462500;, - -0.500000; 1.000000;-0.462500;, - -0.500000; 1.000000;-0.712500;, - 0.500000; 1.000000;-0.712500;, - 0.500000; 1.000000;-0.462500;, - 0.500000; 4.000000;-0.462500;, - 0.500000; 4.000000;-0.712500;, - 0.500000; 1.000000;-0.462500;, - -0.500000; 1.000000;-0.462500;, - -0.500000; 4.000000;-0.462500;, - 0.500000; 4.000000;-0.462500;, - -0.500000; 4.000000;-0.712500;, - -0.500000; 1.000000;-0.712500;, - 0.500000; 1.000000;-0.712500;, - 0.500000; 4.000000;-0.712500;, - -4.000000;-0.500001; 0.475000;, - -1.000000;-0.500000; 0.475000;, - -1.000000; 0.500000; 0.475000;, - -4.000000; 0.499998; 0.475000;, - -1.000000; 0.500000; 0.725000;, - -1.000000;-0.500000; 0.725000;, - -4.000000;-0.500001; 0.725000;, - -4.000000; 0.499999; 0.725000;, - -1.000000; 0.500000; 0.475000;, - -1.000000; 0.500000; 0.725000;, - -4.000000; 0.499999; 0.725000;, - -4.000000; 0.499998; 0.475000;, - -4.000000;-0.500001; 0.475000;, - -4.000000;-0.500001; 0.725000;, - -1.000000;-0.500000; 0.725000;, - -1.000000;-0.500000; 0.475000;, - -4.000000;-0.500001;-0.712500;, - -4.000000;-0.500001;-0.462500;, - -1.000000;-0.500000;-0.462500;, - -1.000000;-0.500000;-0.712500;, - -1.000000; 0.500000;-0.712500;, - -1.000000; 0.500000;-0.462500;, - -4.000000; 0.499999;-0.462500;, - -4.000000; 0.499998;-0.712500;, - -1.000000; 0.500000;-0.462500;, - -1.000000;-0.500000;-0.462500;, - -4.000000;-0.500001;-0.462500;, - -4.000000; 0.499999;-0.462500;, - -4.000000;-0.500001;-0.712500;, - -1.000000;-0.500000;-0.712500;, - -1.000000; 0.500000;-0.712500;, - -4.000000; 0.499998;-0.712500;, - 1.000004;-0.500001; 0.475000;, - 4.000004;-0.500000; 0.475000;, - 4.000003; 0.500000; 0.475000;, - 1.000003; 0.499998; 0.475000;, - 4.000004; 0.500000; 0.725000;, - 4.000004;-0.500000; 0.725000;, - 1.000004;-0.500001; 0.725000;, - 1.000004; 0.499999; 0.725000;, - 4.000003; 0.500000; 0.475000;, - 4.000004; 0.500000; 0.725000;, - 1.000004; 0.499999; 0.725000;, - 1.000003; 0.499998; 0.475000;, - 1.000004;-0.500001; 0.475000;, - 1.000004;-0.500001; 0.725000;, - 4.000004;-0.500000; 0.725000;, - 4.000004;-0.500000; 0.475000;, - 1.000004;-0.500001;-0.712500;, - 1.000004;-0.500001;-0.462500;, - 4.000004;-0.500000;-0.462500;, - 4.000004;-0.500000;-0.712500;, - 4.000003; 0.500000;-0.712500;, - 4.000004; 0.500000;-0.462500;, - 1.000004; 0.499999;-0.462500;, - 1.000003; 0.499998;-0.712500;, - 4.000004; 0.500000;-0.462500;, - 4.000004;-0.500000;-0.462500;, - 1.000004;-0.500001;-0.462500;, - 1.000004; 0.499999;-0.462500;, - 1.000004;-0.500001;-0.712500;, - 4.000004;-0.500000;-0.712500;, - 4.000003; 0.500000;-0.712500;, - 1.000003; 0.499998;-0.712500;, - -0.500000;-1.000004; 0.475000;, - -0.500000;-4.000005; 0.475000;, - 0.500000;-4.000005; 0.475000;, - 0.500000;-1.000005; 0.475000;, - 0.500000;-4.000005; 0.725000;, - -0.500000;-4.000004; 0.725000;, - -0.500000;-1.000005; 0.725000;, - 0.500000;-1.000005; 0.725000;, - 0.500000;-4.000005; 0.475000;, - 0.500000;-4.000005; 0.725000;, - 0.500000;-1.000005; 0.725000;, - 0.500000;-1.000005; 0.475000;, - -0.500000;-1.000004; 0.475000;, - -0.500000;-1.000005; 0.725000;, - -0.500000;-4.000004; 0.725000;, - -0.500000;-4.000005; 0.475000;, - -0.500000;-1.000004;-0.712500;, - -0.500000;-1.000005;-0.462500;, - -0.500000;-4.000004;-0.462500;, - -0.500000;-4.000005;-0.712500;, - 0.500000;-4.000005;-0.712500;, - 0.500000;-4.000005;-0.462500;, - 0.500000;-1.000005;-0.462500;, - 0.500000;-1.000005;-0.712500;, - 0.500000;-4.000005;-0.462500;, - -0.500000;-4.000004;-0.462500;, - -0.500000;-1.000005;-0.462500;, - 0.500000;-1.000005;-0.462500;, - -0.500000;-1.000004;-0.712500;, - -0.500000;-4.000005;-0.712500;, - 0.500000;-4.000005;-0.712500;, - 0.500000;-1.000005;-0.712500;, - -1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000;-1.000000; 1.000000;, - -1.000000;-1.000000; 1.000000;, - -1.000000; 1.000000; 1.000000;, - 1.000000; 1.000000; 1.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000; 1.000000;, - 1.000000; 1.000000; 1.000000;, - 1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000;-1.000000; 1.000000;, - 1.000000;-1.000000; 1.000000;, - 1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000;-1.000000;, - -1.000000; 1.000000; 1.000000;, - -1.000000;-1.000000; 1.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000; 1.000000;, - -1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000; 1.000000;; - 38; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;, - 4;44;45;46;47;, - 4;48;49;50;51;, - 4;52;53;54;55;, - 4;56;57;58;59;, - 4;60;61;62;63;, - 4;64;65;66;67;, - 4;68;69;70;71;, - 4;72;73;74;75;, - 4;76;77;78;79;, - 4;80;81;82;83;, - 4;84;85;86;87;, - 4;88;89;90;91;, - 4;92;93;94;95;, - 4;96;97;98;99;, - 4;100;101;102;103;, - 4;104;105;106;107;, - 4;108;109;110;111;, - 4;112;113;114;115;, - 4;116;117;118;119;, - 4;120;121;122;123;, - 4;124;125;126;127;, - 4;128;129;130;131;, - 4;132;133;134;135;, - 4;136;137;138;139;, - 4;140;141;142;143;, - 4;144;145;146;147;, - 4;148;149;150;151;; - MeshNormals { //Cube_007 Normals - 152; - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - 0.000001;-1.000000;-0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - -0.000001; 1.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - -1.000000; 0.000000;-0.000001;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;; - 38; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;, - 4;44;45;46;47;, - 4;48;49;50;51;, - 4;52;53;54;55;, - 4;56;57;58;59;, - 4;60;61;62;63;, - 4;64;65;66;67;, - 4;68;69;70;71;, - 4;72;73;74;75;, - 4;76;77;78;79;, - 4;80;81;82;83;, - 4;84;85;86;87;, - 4;88;89;90;91;, - 4;92;93;94;95;, - 4;96;97;98;99;, - 4;100;101;102;103;, - 4;104;105;106;107;, - 4;108;109;110;111;, - 4;112;113;114;115;, - 4;116;117;118;119;, - 4;120;121;122;123;, - 4;124;125;126;127;, - 4;128;129;130;131;, - 4;132;133;134;135;, - 4;136;137;138;139;, - 4;140;141;142;143;, - 4;144;145;146;147;, - 4;148;149;150;151;; - } //End of Cube_007 Normals - MeshMaterialList { //Cube_007 Material List - 5; - 38; - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 4, - 4, - 4, - 4, - 4, - 4;; - Material rail_1 { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.500000; 0.500000; 0.500000;; - 0.000000; 0.000000; 0.000000;; - } - Material rail_4 { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.500000; 0.500000; 0.500000;; - 0.000000; 0.000000; 0.000000;; - } - Material rail_2 { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.500000; 0.500000; 0.500000;; - 0.000000; 0.000000; 0.000000;; - } - Material rail_3 { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.500000; 0.500000; 0.500000;; - 0.000000; 0.000000; 0.000000;; - } - Material post { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.073171; 0.073171; 0.073171;; - 0.000000; 0.000000; 0.000000;; - } - } //End of Cube_007 Material List - MeshTextureCoords { //Cube_007 UV Coordinates - 152; - 0.500000; 0.750000;, - 1.000000; 0.750000;, - 1.000000; 0.875000;, - 0.500000; 0.875000;, - 0.500000; 0.562500;, - 0.500000; 0.437500;, - 1.000000; 0.437500;, - 1.000000; 0.562500;, - 0.500000; 0.500000;, - 0.500000; 0.375000;, - 1.000000; 0.375000;, - 1.000000; 0.500000;, - 0.500000; 0.687500;, - 0.500000; 0.562500;, - 1.000000; 0.562500;, - 1.000000; 0.687500;, - 0.500000; 0.687500;, - 0.500000; 0.562500;, - 1.000000; 0.562500;, - 1.000000; 0.687500;, - 0.500000; 0.500000;, - 0.500000; 0.375000;, - 1.000000; 0.375000;, - 1.000000; 0.500000;, - 0.500000; 0.562500;, - 0.500000; 0.437500;, - 1.000000; 0.437500;, - 1.000000; 0.562500;, - 0.500000; 0.750000;, - 1.000000; 0.750000;, - 1.000000; 0.875000;, - 0.500000; 0.875000;, - 0.562500; 0.375000;, - 0.000000; 0.375000;, - 0.000000; 0.250000;, - 0.562500; 0.250000;, - 0.000000; 0.187500;, - 0.000000; 0.062500;, - 0.500000; 0.062500;, - 0.500000; 0.187500;, - 0.000000; 1.000000;, - 0.000000; 0.875000;, - 0.500000; 0.875000;, - 0.500000; 1.000000;, - 0.500000; 0.625000;, - 0.500000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 0.625000;, - 0.500000; 0.625000;, - 0.500000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 0.625000;, - 0.000000; 1.000000;, - 0.000000; 0.875000;, - 0.500000; 0.875000;, - 0.500000; 1.000000;, - 0.000000; 0.187500;, - 0.000000; 0.062500;, - 0.500000; 0.062500;, - 0.500000; 0.187500;, - 0.562500; 0.375000;, - 0.000000; 0.375000;, - 0.000000; 0.250000;, - 0.562500; 0.250000;, - 1.000000; 0.375000;, - 0.500000; 0.375000;, - 0.500000; 0.250000;, - 1.000000; 0.250000;, - 0.500000; 0.187500;, - 0.500000; 0.062500;, - 1.000000; 0.062500;, - 1.000000; 0.187500;, - 0.500000; 1.000000;, - 0.500000; 0.875000;, - 1.000000; 0.875000;, - 1.000000; 1.000000;, - 0.000000; 0.625000;, - 0.000000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 0.625000;, - 0.000000; 0.625000;, - 0.000000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 0.625000;, - 0.500000; 1.000000;, - 0.500000; 0.875000;, - 1.000000; 0.875000;, - 1.000000; 1.000000;, - 0.500000; 0.187500;, - 0.500000; 0.062500;, - 1.000000; 0.062500;, - 1.000000; 0.187500;, - 1.000000; 0.375000;, - 0.500000; 0.375000;, - 0.500000; 0.250000;, - 1.000000; 0.250000;, - 0.500000; 0.875000;, - 0.000000; 0.875000;, - 0.000000; 0.750000;, - 0.500000; 0.750000;, - 0.500000; 0.437500;, - 0.500000; 0.562500;, - 0.000000; 0.562500;, - 0.000000; 0.437500;, - 0.000000; 0.500000;, - 0.000000; 0.375000;, - 0.500000; 0.375000;, - 0.500000; 0.500000;, - 0.000000; 0.687500;, - 0.000000; 0.562500;, - 0.500000; 0.562500;, - 0.500000; 0.687500;, - 0.000000; 0.687500;, - 0.000000; 0.562500;, - 0.500000; 0.562500;, - 0.500000; 0.687500;, - 0.000000; 0.500000;, - 0.000000; 0.375000;, - 0.500000; 0.375000;, - 0.500000; 0.500000;, - 0.500000; 0.437500;, - 0.500000; 0.562500;, - 0.000000; 0.562500;, - 0.000000; 0.437500;, - 0.500000; 0.875000;, - 0.000000; 0.875000;, - 0.000000; 0.750000;, - 0.500000; 0.750000;, - 0.375000; 0.375000;, - 0.625000; 0.375000;, - 0.625000; 0.625000;, - 0.375000; 0.625000;, - 0.375000; 0.625000;, - 0.375000; 0.375000;, - 0.625000; 0.375000;, - 0.625000; 0.625000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.250000;, - 0.000000; 0.250000;, - 0.000000; 0.750000;, - 1.000000; 0.750000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.250000;, - 1.000000; 0.250000;, - 1.000000; 0.500000;, - 0.000000; 0.500000;, - 1.000000; 0.750000;, - 0.000000; 0.750000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;; - } //End of Cube_007 UV Coordinates - } //End of Cube_007 Mesh - } //End of Cube -} //End of Root Frame diff --git a/models/meshnode_pane.obj b/models/meshnode_pane.obj new file mode 100644 index 0000000..542a31b --- /dev/null +++ b/models/meshnode_pane.obj @@ -0,0 +1,86 @@ +# Blender v2.76 (sub 0) OBJ File: 'meshnode_pane.blend' +# www.blender.org +mtllib meshnode_pane.mtl +v -0.312500 -5.000000 -5.000000 +v -0.312500 5.000000 -5.000000 +v 0.312500 5.000000 -5.000000 +v 0.312500 -5.000000 -5.000000 +v -0.312500 5.000000 0.000000 +v -0.312500 -5.000000 0.000000 +v 0.312500 5.000000 0.000000 +v 0.312500 -5.000000 0.000000 +v 5.000000 -5.000000 -0.312500 +v 5.000000 5.000000 -0.312500 +v 5.000000 5.000000 0.312500 +v 5.000000 -5.000000 0.312500 +v 0.000000 5.000000 -0.312500 +v 0.000000 -5.000000 -0.312500 +v 0.000000 5.000000 0.312500 +v 0.000000 -5.000000 0.312500 +v -0.312500 -5.000000 5.000000 +v -0.312500 5.000000 5.000000 +v 0.312500 5.000000 5.000000 +v 0.312500 -5.000000 5.000000 +v -0.312500 5.000000 0.000000 +v -0.312500 -5.000000 0.000000 +v 0.312500 5.000000 0.000000 +v 0.312500 -5.000000 0.000000 +v -5.000000 -5.000000 -0.312500 +v -5.000000 5.000000 -0.312500 +v -5.000000 5.000000 0.312500 +v -5.000000 -5.000000 0.312500 +v 0.000000 5.000000 -0.312500 +v 0.000000 -5.000000 -0.312500 +v 0.000000 5.000000 0.312500 +v 0.000000 -5.000000 0.312500 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.937500 +vt 1.000000 0.937500 +vt 1.000000 0.062500 +vt 0.500000 0.062500 +vt 0.937500 1.000000 +vt 0.937500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.062500 1.000000 +vt 0.062500 0.000000 +vt 0.000000 0.937500 +vt 0.000000 0.062500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +g Cube_Cube.001_Pane_1 +usemtl Pane_1 +s off +f 5/1/1 2/2/1 1/3/1 6/4/1 +f 7/5/2 3/6/2 2/2/2 5/1/2 +f 6/4/3 1/3/3 4/7/3 8/8/3 +f 2/9/4 3/2/4 4/3/4 1/10/4 +f 4/3/5 3/2/5 7/1/5 8/4/5 +g Cube_Cube.001_Pane_2 +usemtl Pane_2 +f 13/1/4 10/11/4 9/12/4 14/4/4 +f 10/11/5 11/13/5 12/14/5 9/12/5 +f 10/15/2 13/5/2 15/1/2 11/11/2 +f 12/12/3 16/4/3 14/8/3 9/16/3 +f 11/11/6 15/1/6 16/4/6 12/12/6 +g Cube_Cube.001_Pane_3 +usemtl Pane_3 +f 19/11/6 18/13/6 17/14/6 20/12/6 +f 17/12/3 22/4/3 24/8/3 20/16/3 +f 19/15/2 23/5/2 21/1/2 18/11/2 +f 18/11/1 21/1/1 22/4/1 17/12/1 +f 19/11/5 20/12/5 24/4/5 23/1/5 +g Cube_Cube.001_Pane_4 +usemtl Pane_4 +f 27/9/1 26/2/1 25/3/1 28/10/1 +f 32/4/3 28/3/3 25/7/3 30/8/3 +f 29/5/2 26/6/2 27/2/2 31/1/2 +f 28/3/6 32/4/6 31/1/6 27/2/6 +f 26/2/4 29/1/4 30/4/4 25/3/4 diff --git a/models/meshnode_plant.obj b/models/meshnode_plant.obj new file mode 100644 index 0000000..792cf78 --- /dev/null +++ b/models/meshnode_plant.obj @@ -0,0 +1,34 @@ +# Blender v2.76 (sub 0) OBJ File: 'meshnode_plant.blend' +# www.blender.org +mtllib meshnode_plant.mtl +o Cube +v -3.531999 5.000000 3.539069 +v 3.539071 5.000000 -3.531997 +v 3.531999 5.000000 -3.539069 +v -3.539071 5.000000 3.531997 +v -3.532001 -5.000000 3.539069 +v 3.539071 -5.000000 -3.531996 +v 3.531999 -5.000000 -3.539069 +v -3.539070 -5.000000 3.531997 +v -3.539068 -5.000000 -3.532000 +v -3.531997 -5.000000 -3.539071 +v 3.539068 -5.000000 3.532000 +v 3.531995 -5.000000 3.539071 +v -3.539069 5.000000 -3.531999 +v -3.531997 5.000000 -3.539071 +v 3.539069 5.000000 3.531999 +v 3.531997 5.000000 3.539071 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.000000 -0.000000 +vt 0.000000 1.000000 +vn 0.707100 -0.000000 0.707100 +vn -0.707100 -0.000000 -0.707100 +vn 0.707100 -0.000000 -0.707100 +vn -0.707100 0.000000 0.707100 +usemtl Material +s off +f 1/1/1 5/2/1 6/3/1 2/4/1 +f 8/2/2 4/1/2 3/4/2 7/3/2 +f 10/2/3 14/1/3 15/4/3 11/3/3 +f 13/1/4 9/2/4 12/3/4 16/4/4 diff --git a/models/meshnode_plant.x b/models/meshnode_plant.x deleted file mode 100644 index 657d128..0000000 --- a/models/meshnode_plant.x +++ /dev/null @@ -1,99 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 1.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Cube { - FrameTransformMatrix { - 3.535533,-3.535535, 0.000000, 0.000000, - 3.535535, 3.535533, 0.000000, 0.000000, - 0.000000, 0.000000, 5.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { //Cube_003 Mesh - 16; - -0.001000;-1.000000; 1.000000;, - -0.001000;-1.000000;-1.000000;, - -0.001000; 1.000000;-1.000000;, - -0.001000; 1.000000; 1.000000;, - 0.001000;-1.000000;-1.000000;, - 0.001000;-1.000000; 1.000000;, - 0.001000; 1.000000; 1.000000;, - 0.001000; 1.000000;-1.000000;, - -1.000000;-0.001000;-1.000000;, - -1.000000;-0.001000; 1.000000;, - 1.000000;-0.001000; 1.000000;, - 1.000000;-0.001000;-1.000000;, - -1.000000; 0.001000; 1.000000;, - -1.000000; 0.001000;-1.000000;, - 1.000000; 0.001000;-1.000000;, - 1.000000; 0.001000; 1.000000;; - 4; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;; - MeshNormals { //Cube_003 Normals - 16; - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;; - 4; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;; - } //End of Cube_003 Normals - MeshMaterialList { //Cube_003 Material List - 1; - 4; - 0, - 0, - 0, - 0;; - Material Material { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.073171; 0.073171; 0.073171;; - 0.000000; 0.000000; 0.000000;; - } - } //End of Cube_003 Material List - MeshTextureCoords { //Cube_003 UV Coordinates - 16; - 0.000000; 0.000000;, - 0.000000; 1.000000;, - 1.000000; 1.000000;, - 1.000000; 0.000000;, - -0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 0.000000;, - 0.000000; 1.000000;, - 1.000000; 1.000000;, - 1.000000; 0.000000;; - } //End of Cube_003 UV Coordinates - } //End of Cube_003 Mesh - } //End of Cube -} //End of Root Frame diff --git a/models/meshnode_slab.x b/models/meshnode_slab.x deleted file mode 100644 index 1b5ec68..0000000 --- a/models/meshnode_slab.x +++ /dev/null @@ -1,130 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 1.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Cube { - FrameTransformMatrix { - 5.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 5.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 5.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { //Cube_001 Mesh - 24; - -1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000;-1.000000; 0.000000;, - -1.000000;-1.000000; 0.000000;, - -1.000000; 1.000000; 0.000000;, - 1.000000; 1.000000; 0.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000; 0.000000;, - 1.000000; 1.000000; 0.000000;, - 1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000;-1.000000; 0.000000;, - 1.000000;-1.000000; 0.000000;, - 1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000;-1.000000;, - -1.000000; 1.000000; 0.000000;, - -1.000000;-1.000000; 0.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000; 0.000000;, - -1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000; 0.000000;; - 6; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;; - MeshNormals { //Cube_001 Normals - 24; - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;; - 6; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;; - } //End of Cube_001 Normals - MeshMaterialList { //Cube_001 Material List - 1; - 6; - 0, - 0, - 0, - 0, - 0, - 0;; - Material Material { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.073171; 0.073171; 0.073171;; - 0.000000; 0.000000; 0.000000;; - TextureFilename {"wood.png";} - } - } //End of Cube_001 Material List - MeshTextureCoords { //Cube_001 UV Coordinates - 24; - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;; - } //End of Cube_001 UV Coordinates - } //End of Cube_001 Mesh - } //End of Cube -} //End of Root Frame diff --git a/models/meshnode_stair.x b/models/meshnode_stair.x deleted file mode 100644 index b3d4a02..0000000 --- a/models/meshnode_stair.x +++ /dev/null @@ -1,204 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 1.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Cube { - FrameTransformMatrix { - 5.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 5.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 5.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { //Cube_002 Mesh - 44; - 1.000000; 0.000000; 1.000000;, - -1.000000; 0.000000; 1.000000;, - -1.000000; 1.000000; 1.000000;, - 1.000000; 1.000000; 1.000000;, - 1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 1.000000;, - 1.000000; 1.000000; 1.000000;, - 1.000000; 1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 1.000000;, - 1.000000; 0.000000; 1.000000;, - 1.000000; 0.000000; 0.000000;, - -1.000000; 1.000000; 0.000000;, - -1.000000; 1.000000; 1.000000;, - -1.000000; 0.000000; 1.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 1.000000; 1.000000;, - -1.000000; 1.000000; 0.000000;, - 1.000000; 1.000000; 0.000000;, - 1.000000; 1.000000; 1.000000;, - -1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000;-1.000000;-1.000000;, - 1.000000;-1.000000; 0.000000;, - 1.000000; 1.000000; 0.000000;, - 1.000000; 1.000000;-1.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000;-1.000000; 0.000000;, - 1.000000;-1.000000; 0.000000;, - 1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000;-1.000000;, - -1.000000; 1.000000; 0.000000;, - -1.000000;-1.000000; 0.000000;, - -1.000000;-1.000000;-1.000000;, - -1.000000; 1.000000; 0.000000;, - -1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000;-1.000000;, - 1.000000; 1.000000; 0.000000;, - 1.000000;-1.000000; 0.000000;, - -1.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 0.000000;; - 11; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;; - MeshNormals { //Cube_002 Normals - 44; - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000;-1.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - 1.000000;-0.000000; 0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000; 1.000000;; - 11; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;; - } //End of Cube_002 Normals - MeshMaterialList { //Cube_002 Material List - 1; - 11; - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0;; - Material Material { - 0.640000; 0.640000; 0.640000; 1.000000;; - 96.078431; - 0.073171; 0.073171; 0.073171;; - 0.000000; 0.000000; 0.000000;; - } - } //End of Cube_002 Material List - MeshTextureCoords { //Cube_002 UV Coordinates - 44; - 1.000000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 0.500000; 0.500000;, - 0.500000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.000000;, - 0.500000; 0.000000;, - 0.500000; 0.500000;, - 1.000000; 0.000000;, - 1.000000; 0.500000;, - 0.000000; 0.500000;, - -0.000000; 0.000000;, - -0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - -0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - -0.000000; 1.000000;, - 0.000000; 0.498216;, - 1.000000; 0.498216;, - 1.000000; 1.000000;, - 1.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.500000;, - 1.000000; 0.500000;; - } //End of Cube_002 UV Coordinates - } //End of Cube_002 Mesh - } //End of Cube -} //End of Root Frame diff --git a/models/meshnode_wall.obj b/models/meshnode_wall.obj new file mode 100644 index 0000000..246e448 --- /dev/null +++ b/models/meshnode_wall.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'meshnode_wall.blend' +# www.blender.org +mtllib meshnode_wall.mtl +v -2.500000 -5.000000 2.500000 +v -2.500000 5.000000 2.500000 +v -2.500000 -5.000000 -2.500000 +v -2.500000 5.000000 -2.500000 +v 2.500000 -5.000000 2.500000 +v 2.500000 5.000000 2.500000 +v 2.500000 -5.000000 -2.500000 +v 2.500000 5.000000 -2.500000 +v 2.500000 -5.000000 1.875000 +v 2.500000 3.750000 1.875000 +v 2.500000 -5.000000 -1.875000 +v 2.500000 3.750000 -1.875000 +v 5.000000 -5.000000 1.875000 +v 5.000000 3.750000 1.875000 +v 5.000000 -5.000000 -1.875000 +v 5.000000 3.750000 -1.875000 +v -2.500000 -5.000000 -1.875000 +v -2.500000 3.750000 -1.875000 +v -2.500000 -5.000000 1.875000 +v -2.500000 3.750000 1.875000 +v -5.000000 -5.000000 -1.875000 +v -5.000000 3.750000 -1.875000 +v -5.000000 -5.000000 1.875000 +v -5.000000 3.750000 1.875000 +v 1.875000 -5.000000 -2.500000 +v 1.875000 3.750000 -2.500000 +v -1.875000 -5.000000 -2.500000 +v -1.875000 3.750000 -2.500000 +v 1.875000 -5.000000 -5.000000 +v 1.875000 3.750000 -5.000000 +v -1.875000 -5.000000 -5.000000 +v -1.875000 3.750000 -5.000000 +v -1.875000 -5.000000 2.500000 +v -1.875000 3.750000 2.500000 +v 1.875000 -5.000000 2.500000 +v 1.875000 3.750000 2.500000 +v -1.875000 -5.000000 5.000000 +v -1.875000 3.750000 5.000000 +v 1.875000 -5.000000 5.000000 +v 1.875000 3.750000 5.000000 +vt 0.750000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.750000 0.000000 +vt 0.750000 0.250000 +vt 0.750000 0.750000 +vt 0.250000 0.750000 +vt 0.250000 0.250000 +vt 0.250000 0.875000 +vt 0.000000 0.875000 +vt 0.000000 0.000000 +vt 1.000000 0.875000 +vt 0.750000 0.875000 +vt 1.000000 -0.000000 +vt 0.312500 0.750000 +vt 0.687500 0.750000 +vt 0.687500 1.000000 +vt 0.312500 1.000000 +vt 0.312500 0.000000 +vt 0.687500 0.000000 +vt 0.687500 0.250000 +vt 0.312500 0.250000 +vt 0.250000 0.312500 +vt 0.250000 0.687500 +vt 0.000000 0.687500 +vt 0.000000 0.312500 +vt 0.750000 0.687500 +vt 0.750000 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.687500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +g Cube_Cube.001_Pillar +usemtl Pillar +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/1/2 8/2/2 7/3/2 3/4/2 +f 8/1/3 6/2/3 5/3/3 7/4/3 +f 6/1/4 2/2/4 1/3/4 5/4/4 +f 1/5/5 3/6/5 7/7/5 5/8/5 +f 6/7/6 8/8/6 4/5/6 2/6/6 +g Cube_Cube.001_Wall_1 +usemtl Wall_1 +f 28/9/1 32/10/1 31/11/1 27/3/1 +f 30/12/3 26/13/3 25/4/3 29/14/3 +f 25/15/5 27/16/5 31/17/5 29/18/5 +f 30/19/6 32/20/6 28/21/6 26/22/6 +g Cube_Cube.001_Wall_2 +usemtl Wall_2 +f 12/9/2 16/10/2 15/11/2 11/3/2 +f 14/12/4 10/13/4 9/4/4 13/14/4 +f 9/23/5 11/24/5 15/25/5 13/26/5 +f 14/25/6 16/26/6 12/23/6 10/24/6 +g Cube_Cube.001_Wall_3 +usemtl Wall_3 +f 36/9/3 40/10/3 39/11/3 35/3/3 +f 38/12/1 34/13/1 33/4/1 37/14/1 +f 33/21/5 35/22/5 39/19/5 37/20/5 +f 38/17/6 40/18/6 36/15/6 34/16/6 +g Cube_Cube.001_Wall_4 +usemtl Wall_4 +f 20/9/4 24/10/4 23/11/4 19/3/4 +f 22/12/2 18/13/2 17/4/2 21/14/2 +f 17/27/5 19/28/5 23/29/5 21/30/5 +f 22/29/6 24/30/6 20/27/6 18/28/6 diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..ca8a5e3 Binary files /dev/null and b/screenshot.png differ diff --git a/textures/meshnode_glue.png b/textures/meshnode_glue.png new file mode 100644 index 0000000..154e2bc Binary files /dev/null and b/textures/meshnode_glue.png differ diff --git a/textures/meshnode_highlight.png b/textures/meshnode_highlight.png new file mode 100644 index 0000000..cfa0aec Binary files /dev/null and b/textures/meshnode_highlight.png differ diff --git a/textures/meshnode_side.png b/textures/meshnode_side.png deleted file mode 100644 index 7dff41a..0000000 Binary files a/textures/meshnode_side.png and /dev/null differ diff --git a/textures/meshnode_top.png b/textures/meshnode_top.png deleted file mode 100644 index 26da8ad..0000000 Binary files a/textures/meshnode_top.png and /dev/null differ diff --git a/textures/meshnode_trans.png b/textures/meshnode_trans.png index a82df66..5d0fc1b 100644 Binary files a/textures/meshnode_trans.png and b/textures/meshnode_trans.png differ