{"id":4,"date":"2020-10-15T16:38:26","date_gmt":"2020-10-15T16:38:26","guid":{"rendered":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/?page_id=4"},"modified":"2021-11-11T19:19:06","modified_gmt":"2021-11-11T19:19:06","slug":"calculator","status":"publish","type":"page","link":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/calculator\/","title":{"rendered":"calculator"},"content":{"rendered":"  <link rel=\"stylesheet\" href=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/css\/block_calculator.css\">\n   <link rel=\"stylesheet\" href=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/css\/nice-select.css\">  \n  <link rel=\"stylesheet\" href=\"\/\/maxcdn.bootstrapcdn.com\/font-awesome\/4.3.0\/css\/font-awesome.min.css\">\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/three.min.js\"><\/script>\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/OBJLoader.js\"><\/script>\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/OBJMTLLoader.js\"><\/script>\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/physi.js\"><\/script>\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/FirstPersonControls.js\"><\/script>\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/Projector.js\"><\/script>\n\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/MTLLoader.js\"><\/script>\n<!--  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/OrbitControls.js\"><\/script>-->\n  <script src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/TrackballControls.js\"><\/script>\n \n\n<script>\n\nfunction webgl_detect() {\n    if (!!window.WebGLRenderingContext) {\n        var canvas = document.createElement(\"canvas\"),\n             names = [\"webgl\", \"experimental-webgl\", \"moz-webgl\"],\n                gl = false;\n \n        for(var i in names) {\n            try {\n                gl = canvas.getContext(names[i]);\n                if (gl && typeof gl.getParameter == \"function\") {\n                    \/* WebGL is enabled *\/\n                    \/* return true; *\/\n                    return names[i];\n                }\n            } catch(e) {}\n        }\n \n        \/* WebGL is supported, but disabled *\/\n        return false;\n    }\n \n    \/* WebGL not supported*\/\n    return false;\n}\n\nvar do_stats = 0;\n\n \tvar use_canvas = !(  webgl_detect() );\t\n\n\t\n\tnewPositions = [];\n\tif(use_canvas) {\n\t\tvar render_ss = false;\n\t\tvar render_aa = false;\n\t\tvar render_gr = false;\n\t\tvar render_tx = false;\n\t\tvar render_su = false;\n\t\t\n\t} else {\n\t\tvar render_ss = true;var render_aa = true;var render_gr = false;var render_tx = true;var render_su = true;\t}\n \tvar render_ma = true;var render_lp = true;\t\n<\/script>\n\n<div id=\"unitsContainer\" class=\"unitsContainer blockContainer\" style=\"display: block;\"> \n\n\n<div class=\"calcPage roundedCorners shade\">  \n\n        <!--<div id = \"v_itemChooserLocation\" class=\"oneHalfBut v_mode visModes activeVis\">\n        \n        <span>        <span class=\"breaker1\"><\/span>\n        <span class=\"breaker2\"><\/span><\/span>\n        <span class=\"breaker1\"><\/span>\n        <i class=\"fa fa-check-square-o\"><\/i><\/div> -->\n        \n        <div id = \"v_itemChooser\" class=\"oneHalfBut v_mode visModes activeVis\">\n        \n        <span>Add your items        <span class=\"breaker1\"><\/span>\n        <span class=\"breaker2\"><\/span><\/span>\n        <span class=\"breaker1\"><\/span>\n        <i class=\"fa fa-check-square-o\"><\/i><\/div>\n        \n        <div id = \"v_virtualUnit\" class=\"oneHalfBut v_mode visModes\">\n        <span>See your packed unit        <span class=\"breaker1\"><\/span>\n        <span class=\"breaker2\"><\/span><\/span>\n        <span class=\"breaker1\"><\/span>\n        <i class=\"fa fa-square-o\"><\/i><\/div>\n        \n        \n        \n<div class=\"calcContainer\">\n\n    <div class=\"infoTop\">\n    \n        <div class=\"moveMode addItem\">Add Items &amp; Calculate<\/div>\n        <div class=\"moveMode moveCamera\">Move Camera Position<\/div>\n        <div class=\"moveMode moveItem\">Move Selected Item<\/div>\n        <div class=\"clear\"><\/div>\n        <!--<div class = \"content_selector m_itemChooserLocation\"> \n          \n                \n        <\/div>          -->   \n        \n      \n        <div class = \"content_selector m_itemChooser\">\n            <div class=\"selector sel_boxes storage_calc_modal modal_a_item\">\n                    <div class= \"stepTitle\" >0) Select the contents you would like to store (All item sizes in inches)<\/div><div class=\"presetSelectorContainer\"><div class = \"presetCardSelector activeContentMode\" id=\"select_preset\">Use preset contents<span class=\"breaker2\"><\/span><span class=\"breaker2\"><\/span><\/div><div class = \"presetCardSelector\" id=\"select_custom\"><span class=\"breaker2\"><\/span>Customize your stored items<\/div><\/div><div class = \"presetContainer\" ><div class=\"np_butt prevCats\"><i class=\"fa fa-chevron-left\"><\/i><\/div><div class=\"np_butt nextCats\"><i class=\"fa fa-chevron-right\"><\/i><\/div>\t<div class = \"presetContainerInner scroller_viewport\" ><div class = \"scroller_item presetCard\" id=\"pre_one_bedroom\"><div class = \"presetTitle\">One Bedroom<\/div><div class = \"presetTImg\"><img decoding=\"async\" width = 200 height =120 alt=\"Show One Bedroom\" src=\"  https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/images\/presetThumbs\/1bed.jpg\" \/><\/div><div class = \"presetDesc\">An average one bedroom house\/apt<\/div><\/div><div class = \"scroller_item presetCard\" id=\"pre_two_bedroom\"><div class = \"presetTitle\">Two Bedroom<\/div><div class = \"presetTImg\"><img decoding=\"async\" width = 200 height =120 alt=\"Show Two Bedroom\" src=\"  https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/images\/presetThumbs\/2bed.jpg\" \/><\/div><div class = \"presetDesc\">An average two bedroom house\/apt<\/div><\/div><div class = \"scroller_item presetCard\" id=\"pre_Three Bedrooms\"><div class = \"presetTitle\">Three Bedrooms<\/div><div class = \"presetTImg\"><img decoding=\"async\" width = 200 height =120 alt=\"Show Three Bedrooms\" src=\"  https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/images\/presetThumbs\/3bed.jpg\" \/><\/div><div class = \"presetDesc\">An average three bedroom house\/apt<\/div><\/div><div class = \"scroller_item presetCard\" id=\"pre_Four Bedrooms\"><div class = \"presetTitle\">Four Bedrooms<\/div><div class = \"presetTImg\"><img decoding=\"async\" width = 200 height =120 alt=\"Show Four Bedrooms\" src=\"  https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/images\/presetThumbs\/4bed.jpg\" \/><\/div><div class = \"presetDesc\">An average four bedroom house\/apt<\/div><\/div>\t<\/div><\/div><div class=\"catContainer customContent\"><div class=\"np_butt prevCats\"><i class=\"fa fa-chevron-left\"><\/i><\/div><div class=\"np_butt nextCats\"><i class=\"fa fa-chevron-right\"><\/i><\/div><div id=\"packingContents\"  class=\"scroller_viewport\"><div class=\"catDiv scroller_item\"><span id = \"catDiv_bedroom\" class = \"cat_lab\">Bedroom<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Bedroom\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/bedroom.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_living-room\" class = \"cat_lab\">Living Room<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Living-room\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/living-room.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_dining-room\" class = \"cat_lab\">Dining Room<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Dining-room\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/dining-room.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_study\" class = \"cat_lab\">Study<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Study\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/study.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_kitchen\" class = \"cat_lab\">Kitchen<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Kitchen\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/kitchen.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_garage\" class = \"cat_lab\">Garage<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Garage\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/garage.jpg\" \/><\/span><\/div><div class=\"catDiv scroller_item\"><span id = \"catDiv_misc\" class = \"cat_lab\">Misc<span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span><span class = \"catThumb\"><img decoding=\"async\" alt=\"Misc\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/presetThumbs\/misc.jpg\" \/><\/span><\/div>           <\/div>\n    <\/div>\n           \n           \n           \n<div class=\"catDivItems catItems_bedroom\"><div class=\"catDivTitle\">Bedroom<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">32in TV (18.5x29.2x5.7)<\/span><input type=\"number\" tabindex = \"1\" id=\"objRef_bedroom_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Armoire (69.6x28.9x21.6)<\/span><input type=\"number\" tabindex = \"2\" id=\"objRef_bedroom_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Chest (19.4x37.5x20.1)<\/span><input type=\"number\" tabindex = \"3\" id=\"objRef_bedroom_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Drawers (28.75x31.0x16.25)<\/span><input type=\"number\" tabindex = \"4\" id=\"objRef_bedroom_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Dresser with Mirror (75.3x61.3x18.8)<\/span><input type=\"number\" tabindex = \"5\" id=\"objRef_bedroom_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">End Table (29.1x16x12)<\/span><input type=\"number\" tabindex = \"6\" id=\"objRef_bedroom_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Full Bed (75.7x55.1x39.6)<\/span><input type=\"number\" tabindex = \"7\" id=\"objRef_bedroom_6\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">King Bed (81.2x77.0x40.2)<\/span><input type=\"number\" tabindex = \"8\" id=\"objRef_bedroom_7\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Night Stand (23.6x15.75x12.2)<\/span><input type=\"number\" tabindex = \"9\" id=\"objRef_bedroom_8\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Queen Bed (81.1x60.9x37.1)<\/span><input type=\"number\" tabindex = \"10\" id=\"objRef_bedroom_9\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Twin Bed (75.4x39.7x27.3)<\/span><input type=\"number\" tabindex = \"11\" id=\"objRef_bedroom_10\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Wardrobe (71.2x29.1x22.3)<\/span><input type=\"number\" tabindex = \"12\" id=\"objRef_bedroom_11\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_living-room\"><div class=\"catDivTitle\">Living Room<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">32in TV (18.5x29.2x5.7)<\/span><input type=\"number\" tabindex = \"13\" id=\"objRef_living-room_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">55in TV (23.9x31.7x9.4)<\/span><input type=\"number\" tabindex = \"14\" id=\"objRef_living-room_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Air Conditioner (13.2x23x12.8)<\/span><input type=\"number\" tabindex = \"15\" id=\"objRef_living-room_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Armchair (35x32x32)<\/span><input type=\"number\" tabindex = \"16\" id=\"objRef_living-room_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Armoire (69.6x28.9x21.6)<\/span><input type=\"number\" tabindex = \"17\" id=\"objRef_living-room_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Bookcase (47.5x25x9.5)<\/span><input type=\"number\" tabindex = \"18\" id=\"objRef_living-room_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Chest (19.4x37.5x20.1)<\/span><input type=\"number\" tabindex = \"19\" id=\"objRef_living-room_6\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Coffee Table (16.9x35x19.5)<\/span><input type=\"number\" tabindex = \"20\" id=\"objRef_living-room_7\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">DVD Player (2.0x10.0x9.0)<\/span><input type=\"number\" tabindex = \"21\" id=\"objRef_living-room_8\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">End Table (29.1x16x12)<\/span><input type=\"number\" tabindex = \"22\" id=\"objRef_living-room_9\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Floor Lamp (69.5x24.1x24.1)<\/span><input type=\"number\" tabindex = \"23\" id=\"objRef_living-room_10\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Floor Speakers Pair (37.6x28.4x13.5)<\/span><input type=\"number\" tabindex = \"24\" id=\"objRef_living-room_11\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Game Console (2.2x12x10.8)<\/span><input type=\"number\" tabindex = \"25\" id=\"objRef_living-room_12\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Love Seat (35x59x33.1)<\/span><input type=\"number\" tabindex = \"26\" id=\"objRef_living-room_13\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Love Seat (59x35x33.1)<\/span><input type=\"number\" tabindex = \"27\" id=\"objRef_living-room_14\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">ottoman (16.1x29x19)<\/span><input type=\"number\" tabindex = \"28\" id=\"objRef_living-room_15\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">piano (48.2x60.1x24.1)<\/span><input type=\"number\" tabindex = \"29\" id=\"objRef_living-room_16\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">recliner (38.7x37.3x35.8)<\/span><input type=\"number\" tabindex = \"30\" id=\"objRef_living-room_17\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">sofa (32.8x73.3x31.9)<\/span><input type=\"number\" tabindex = \"31\" id=\"objRef_living-room_18\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">stereo (13.7x12.1x9.3)<\/span><input type=\"number\" tabindex = \"32\" id=\"objRef_living-room_19\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">TV Stand (21.25x60.88x15.63)<\/span><input type=\"number\" tabindex = \"33\" id=\"objRef_living-room_20\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_dining-room\"><div class=\"catDivTitle\">Dining Room<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Buffet Table (32.2x47.6x18.2)<\/span><input type=\"number\" tabindex = \"34\" id=\"objRef_dining-room_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">China Cabinet (50x36.5x16)<\/span><input type=\"number\" tabindex = \"35\" id=\"objRef_dining-room_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Dining chairs pair (35.4x17.3x19.3)<\/span><input type=\"number\" tabindex = \"36\" id=\"objRef_dining-room_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Dining Set (35.7x45.6x34.5)<\/span><input type=\"number\" tabindex = \"37\" id=\"objRef_dining-room_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_study\"><div class=\"catDivTitle\">Study<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\"> 32in monitor (18.5x29.2x5.7)<\/span><input type=\"number\" tabindex = \"38\" id=\"objRef_study_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Bookcase (47.5x25x9.5)<\/span><input type=\"number\" tabindex = \"39\" id=\"objRef_study_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Desk (30x47x18.7)<\/span><input type=\"number\" tabindex = \"40\" id=\"objRef_study_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Drawers (28.75x31.0x16.25)<\/span><input type=\"number\" tabindex = \"41\" id=\"objRef_study_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">File Cabinet (Large) (50.8x15.8x17.3)<\/span><input type=\"number\" tabindex = \"42\" id=\"objRef_study_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">File Cabinet (Small) (26x15.56x16)<\/span><input type=\"number\" tabindex = \"43\" id=\"objRef_study_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Office Chair (39.0x20.0x19.0)<\/span><input type=\"number\" tabindex = \"44\" id=\"objRef_study_6\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">pc (12.3x6.6x15)<\/span><input type=\"number\" tabindex = \"45\" id=\"objRef_study_7\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_kitchen\"><div class=\"catDivTitle\">Kitchen<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Bar Stool (30.8x25.4x25.13)<\/span><input type=\"number\" tabindex = \"46\" id=\"objRef_kitchen_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Kitchen Table (35.75x38x38)<\/span><input type=\"number\" tabindex = \"47\" id=\"objRef_kitchen_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Large Fridge (72x36x36)<\/span><input type=\"number\" tabindex = \"48\" id=\"objRef_kitchen_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">microwave (12.8x21.8x11.8)<\/span><input type=\"number\" tabindex = \"49\" id=\"objRef_kitchen_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Small Fridge (68x25x29)<\/span><input type=\"number\" tabindex = \"50\" id=\"objRef_kitchen_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Stove (48x32x32)<\/span><input type=\"number\" tabindex = \"51\" id=\"objRef_kitchen_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_garage\"><div class=\"catDivTitle\">Garage<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Mountain Bike (42x22x70)<\/span><input type=\"number\" tabindex = \"52\" id=\"objRef_garage_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Road Bike (40x18x68)<\/span><input type=\"number\" tabindex = \"53\" id=\"objRef_garage_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Dryer (38.7x27.5x33.5)<\/span><input type=\"number\" tabindex = \"54\" id=\"objRef_garage_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Freezer (42.1x36x27.5)<\/span><input type=\"number\" tabindex = \"55\" id=\"objRef_garage_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Generator (15.4x24.5x18.5)<\/span><input type=\"number\" tabindex = \"56\" id=\"objRef_garage_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Ladder (47x18x4)<\/span><input type=\"number\" tabindex = \"57\" id=\"objRef_garage_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Lawnmower (41x22x61)<\/span><input type=\"number\" tabindex = \"58\" id=\"objRef_garage_6\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Tool Box (31.25x28.1x19.2)<\/span><input type=\"number\" tabindex = \"59\" id=\"objRef_garage_7\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Washer (38.7x27.5x33.5)<\/span><input type=\"number\" tabindex = \"60\" id=\"objRef_garage_8\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div><div class=\"catDivItems catItems_misc\"><div class=\"catDivTitle\">Misc<\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Box Large (18.0x18.0x24.0)<\/span><input type=\"number\" tabindex = \"61\" id=\"objRef_misc_0\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Box Medium (18.0x18.0x16.0)<\/span><input type=\"number\" tabindex = \"62\" id=\"objRef_misc_1\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Box Small (12.5x12.5x16.0)<\/span><input type=\"number\" tabindex = \"63\" id=\"objRef_misc_2\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Floor Fan (22.5x22.5x5.4)<\/span><input type=\"number\" tabindex = \"64\" id=\"objRef_misc_3\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Patio Chair Pair (49.5x24.0x23.2)<\/span><input type=\"number\" tabindex = \"65\" id=\"objRef_misc_4\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Patio Lounger (44.5x9.2x23.8)<\/span><input type=\"number\" tabindex = \"66\" id=\"objRef_misc_5\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Patio Set (33.9x48.1x56.8)<\/span><input type=\"number\" tabindex = \"67\" id=\"objRef_misc_6\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Suite Case (29.8x18.4x11.1)<\/span><input type=\"number\" tabindex = \"68\" id=\"objRef_misc_7\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><div class=\"catInputContainer\"><span class=\"itemLabel\">Treadmill (54x23x18.5)<\/span><input type=\"number\" tabindex = \"69\" id=\"objRef_misc_8\" class=\"content_obj itemsSelect\" min = \"0\"  max=\"100\" style=\"color:#000; !important;\"> <br><\/div><\/div> \n            \n           <div class=\"submit_details customContent\">\n           \n          <!--  <div class= \"resTitle xtraPad\" >Then calculate the size...<\/div> -->\n             \n             <!-- <div class = \"fillPercIndi\">\n              How Full?\n              <\/div>\n              \n              <div class = \"submit_divIndi\">\n              Find Size\n              <\/div>\n              \n              <div class = \"res_divIndi\">\n              Recommended Size\n              <\/div>\n              \n              <div class = \"clear\"><\/div>\n              \n                     \n             \n              <div class = \"fillPercIndiLine\">\n\n              <\/div>\n              \n              <div class = \"submit_divIndiLine\">\n\n              <\/div>\n              \n              <div class = \"res_divIndiLine\">\n\n              <\/div>\n              \n              <div class = \"clear\"><\/div> -->\n              \n              \n             \n             \n             \n                <div class = \"fillPerc\">\n                    <span class=\"itemLabel\">How full should the unit be?<\/span>\n                    <select id=\"fillPercent\" class=\"content_obj\">\n                        <option value=\"none\" >NO item stacking (Reduced accuracy but no items will hover)<\/option>\n                        <option value=\"preset\" >SOME item stacking (Medium accuracy)<\/option>\n                        <option value=\"full\" >FULL item stacking (Best accuracy but some objects may hover)<\/option>\n                    <\/select>\n                <\/div>\n                \n                <div class = \"submit_div\">\n                    <div class=\"clear\" id=\"contentBuild\">Calculate<\/div>\n                <\/div>\n                \n               <div class = \"reset_div\">\n                     <div class=\"clear\" id=\"resetBuild\">Reset<\/div>\n                <\/div> \n                \n                <div class = \"res_div\">\n                \t<div class=\"mainResult\"> = \n                    <span class=\"containerUnitName unknownRes\">???<\/span>\n                    <\/div>\n                <\/div>\n                \n            <\/div>\n            \n            \n        <\/div>\n        \n        <div class = \"packErrorDisplay\"><\/div>\n     \n    <\/div>\n    \n    \n    <\/div>\n    \n    <div class = \"stepTitle xtraPad m_virtualUnit\">\n       Here is your packed unit <span class=\"presetIndicator\"> <span class = \"virtualPreset\"><\/span><\/span>\n    <\/div>\n        \n    <div class=\"renderDiv m_virtualUnit\">\n    \n\t    <div class=\"containerContents  m_virtualUnit\">\n        \t<span class=\"unitCardDet\">Selected Item:<\/span><span class=\"containerContentsIns cal_highlight\">None<\/span>\n        \t<span class=\"unitCardDet\">Volume:<\/span><span class=\"containerContentsVol cal_highlight\"> -- <\/span>\n            <span class=\"unitCardDet\">Size:<\/span><span class=\"containerContentsSize cal_highlight\"> -- <\/span>\n        <\/div>\n        \n        <div id=\"mod_fps\"><\/div>\n         <div id=\"load_scrim\"><img decoding=\"async\" src=\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/loader2.gif\" alt=\"loading\" \/><br \/>Please wait... Loading<\/div> \n        \n        \n        <div class=\"containerUnitTitle hud_unitsize\">\n        \tSHOWING UNIT SIZE        \t<div class=\"containerUnitName\"><\/div>\n        <\/div>\n        \n        <\/div>\n    <\/div>\n    \n   <div class=\"settingsContainer m_virtualUnit\">\n        <div class=\"dPadTitle resetView\">Reset View<\/div>\n        <div class=\"dPadTitle orbitView\">Orbit View<\/div>\n        <div class=\"oc_setting_details\">\n        3D Settings <span class = \"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span>\n        <\/div>\n        \n        <div class=\"setting_details\">\n        \n                                \n            <div class=\"detWrap\"><div class=\"settingCont s_ma\">\n                <input class=\"setting_input\" id= \"r_ma\" name = \"ma\" type = \"checkbox\"   \/>\n               <span class=\"settingLabel\">Rules\/Markers<\/span>\n            <\/div><\/div>\n            \n            <div class=\"detWrap\"><div class=\"settingCont s_ss\">\n                <input class=\"setting_input\" id= \"r_ss\"  name = \"ss\" type = \"checkbox\"   \/>\n               <span class=\"settingLabel\">Shadow<\/span>\n            <\/div><\/div>\n            \n            <div class=\"detWrap\"><div class=\"settingCont s_su\">\n                <input class=\"setting_input\" id= \"r_su\"  name = \"su\" type = \"checkbox\"   \/>\n               <span class=\"settingLabel\">Effects<\/span>\n            <\/div><\/div>\n            \n             <div class=\"detWrap\"><div class=\"settingCont s_gr\">\n                <input class=\"setting_input\" id= \"r_gr\"  name = \"gr\" type = \"checkbox\"   \/>\n               <span class=\"settingLabel\">Gravity<\/span>\n            <\/div><\/div>\n            \n            <div class=\"detWrap\"><div class=\"settingCont s_aa\">\n                <input class=\"setting_input\" id= \"r_aa\"  name = \"aa\" type = \"checkbox\"   \/>\n               <span class=\"settingLabel\">Antialias<\/span>\n            <\/div><\/div>\n            \n            <div class=\"detWrap\"><div class=\"settingCont s_tx\">\n                <input class=\"setting_input\" id= \"r_tx\"  name = \"tx\" type = \"checkbox\"  \/>\n               <span class=\"settingLabel\">Textures<\/span>\n            <\/div><\/div>\n            \n            <div class=\"detWrap\"><div class=\"settingCont s_lp\">\n                <input class=\"setting_input\" id= \"r_lp\"  name = \"lp\" type = \"checkbox\"  \/>\n               <span class=\"settingLabel\">3D Models<\/span>\n            <\/div><\/div>\n            \n            <div class=\"settingSubmit\">\n               Change Settings\n            <\/div>\n          \n        <\/div>\n    <\/div> \n    \n    <div class=\"UnitDetails \"> \n\t\t<div class = \"recommendedUnitDiv  m_virtualUnit\">\n            <span  class=\"resTitle\" > Recommended Unit:<\/span >\n            <span  class=\"resTitle containerUnitName cal_highlight cal_Result\" >None<\/span >\n            <input id=\"volume-url\" name=\"volume-url\" type=\"hidden\" value=\"\" \/>\n                        <span class = \"unitDetsToggle\" >Show Info<span class=\"oc_ico\"><i class=\"fa fa-sort-desc\"><\/i><\/span><\/span>\n            \n            <span class = \"unitDets\" >\n            <span class=\"detWrap\"><span class=\"unitCardDet\">Unit Size:<\/span><span class=\"containerUnitSize cal_highlight\"> -- <\/span><\/span>\n            <span class=\"detWrap\"><span class=\"unitCardDet\">Unit Volume:<\/span><span class=\"containerUnitVol cal_highlight\"> -- <\/span><\/span>\n            <span class=\"detWrap\"><span class=\"unitCardDet\">Used Space:<\/span><span class=\"containerUsedSpace cal_highlight\"> -- <\/span><\/span>\n            <span class=\"detWrap\"><span class=\"unitCardDet\">Items Packed:<\/span><span class=\"containerItemsPacked cal_highlight\"> -- <\/span><\/span>\n            <\/span>\n         <\/div>\n         \n         <div class = \"unitsDiv m_recommended\"> \n                           <div class = \"stepTitle xtraPad incUnits\">\n                   Here are our available units <span class=\"containerUnitName\"><\/span> and larger\n                 <\/div>\n                         <\/div>  \n   \t<\/div>\n    \n<\/div>\n<\/div>\n\n<div class=\"caveats\">\n    Storage calculator is for conceptual purposes only. Unit and item sizes are approximate and may vary. Item dimensions are based on common sizes and may vary. Powered by <a href = \"https:\/\/www.clickandstor.com\/\" target = \"_blank\" >ClickandStor&reg;<\/a>\n<\/div>\n    \n<\/div>\n\n<script src =\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/js\/CanvasRenderer.js\"><\/script>\n<script>\n    if (!window.$){ window.$ = jQuery.noConflict(); }\n\n\tfunction calc3DloadCalculationsRequest(ajaxData, funcData){\n      funcData = funcData && (typeof funcData == 'object' || typeof funcData == 'array') ? funcData : [];\n      \n      jQuery.ajax({\n         type: 'POST',\n         url: \"https:\\\/\\\/iframe.live-pinnacle.com\\\/3d-calculator\\\/wp-admin\\\/admin-ajax.php\",\n         data: {\n            action: 'calc_3dcalculations', \/\/ PHP function from candee.php\n            ajax_data: ajaxData,\n         },\n         success: function(data){\n            if (funcData['build'] && typeof funcData['build'] == 'function'){ funcData['build'](data); }\n         },\n         fail: function(data){ \/\/ Empty element and show warning if failed\n            console.log('fail');\n            console.log(data);\n            if (funcData['fail'] && typeof funcData['fail'] == 'function'){ funcData['fail'](data); }\n         }\n     });\n   }\n\n    \/\/ Set jQuery as '$' if noConflict is activated to prevent incompatibility issues\n\tPhysijs.scripts.worker = \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/js\/physijs_worker.js\";\n\tPhysijs.scripts.ammo = 'ammo.js';\n\t\n\t        m_path = \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/models\/\";\n    \t\t\n\tvar uW, \n\t\tuL , \n\t\tuH;\t\n\n\tvar container, \n\t\tstats;\n\n\tvar camera, \n\t\torbitcamera, \n\t\tscene, \n\t\trenderer, \n\t\tmanager, \n\t\tdirectionalLight, \n\t\tcontrols = [] , \n\t\tunitContent, \n\t\tob3d = [], \n\t\tdropList = [], \n\t\tob3dCt = 0, \n\t\ttargetPosition={},_vY;\n\t\n\tvar cameraCube, sceneCube;\n\t\n\tvar itemsToPack = [], packing = [], loadOrder=[];\n\tvar unit_data = [];\n\t\tunit_data.dcWidth = 10;\n\t\tunit_data.dcLength = 10;\n\t\tunit_data.dcHeight = 8;\n\t\n\tvar preset = 'empty';\n\t\n\tvar mouseX = 0, \n\t\tmouseY = 0, \n\t\torbit = true, \n\t\tdpad=false, \n\t\tcanMoveCam = false;\n\n\n\tvar canvasPrevWidth = 0;\n\tvar aspectRatio = [];\t\n\taspectRatio.x = $('body').width(); aspectRatio.y = (9*aspectRatio.x\/16);\n\tvar canvasWidth = $('.calcContainer').innerWidth();\n\tvar canvasHeight =  parseInt(canvasWidth * ( aspectRatio.y\/aspectRatio.x) ) - 60;\n\tvar windowHalfX = canvasWidth \/ 2;\n\tvar windowHalfY = canvasHeight \/ 2;\n\t\n\tvar firstRun = true;\n\t\n\tvar item_count = 0;\n\tvar offset = [];\n\tvar itemDrop = 0;\n\tvar hasDropped = false;\n\tvar thisDrop = 0;\n\tvar dropItem = 0;\n\tvar isPaused = false;\n\tvar drop_newYpos = 0;\n\tvar canDoDrop = false;\n\tvar dropObj\n\n\tvar\tlookInterval = 100;\n\tvar\tlookspeed = .7;\n\tvar camStartX=0, camStartY=0, camStartZ=0;\n\n\tvar  contentVisible = true;\n\t\n\tvar _calcModal = \"a_item\";\n\t\n\tvar volume = 0;\n\t\n\tvar waiting = false;\n\t\n\tvar applyForce, \n\t\tsetMousePosition, \n\t\tmouse_position, \n\t\tprojector;\n\n\tvar selected_block = null, \n\t\tintersect_plane, \n\t\tmouse_position = new THREE.Vector3, \n\t\tblock_offset = new THREE.Vector3, \n\t\t_i, \n\t\t_v3 = new THREE.Vector3, \n\t\tselectBox,\n\t\tcameraTargetBox;\n\t\n\tvar mouse = new THREE.Vector2();\n\t\n\tvar scale_mult = 12, \n\t\tbaseMult = 20;\n\t\n\tvar clock = new THREE.Clock();\n\t\n\tvar fps, fps_timer,fps_lap_end = 0;\n    var mMult = 1;\n\tvar presetsTemp  = '{\"empty\":[],\"one_bedroom\":{\"img\":\"1bed.jpg\",\"desc\":\"An average one bedroom house\\\/apt\",\"contents\":[\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.obj\",\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.obj\",\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"living-room.End-Table.size29.1x16x12x0x1x0.obj\",\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"misc.Treadmill.9.size54x23x18.5x0x1x0u.obj\",\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\",\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\",\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\"]},\"two_bedroom\":{\"img\":\"2bed.jpg\",\"desc\":\"An average two bedroom house\\\/apt\",\"contents\":[\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.obj\",\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.obj\",\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"living-room.End-Table.size29.1x16x12x0x1x0.obj\",\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"misc.Treadmill.9.size54x23x18.5x0x1x0u.obj\",\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\"]},\"Three Bedrooms\":{\"img\":\"3bed.jpg\",\"desc\":\"An average three bedroom house\\\/apt\",\"contents\":[\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.obj\",\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.obj\",\"garage.Washer.size38.7x27.5x33.5x0x1x0.obj\",\"garage.Dryer.size38.7x27.5x33.5x0x1x0.obj\",\"kitchen.Small-Fridge.size68x25x29x0x1x0.obj\",\"kitchen.Stove.1.size48x32x32x0x1x0.obj\"]},\"Four Bedrooms\":{\"img\":\"4bed.jpg\",\"desc\":\"An average four bedroom house\\\/apt\",\"contents\":[\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.obj\",\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.obj\",\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.obj\",\"garage.Washer.size38.7x27.5x33.5x0x1x0.obj\",\"garage.Dryer.size38.7x27.5x33.5x0x1x0.obj\",\"kitchen.Small-Fridge.size68x25x29x0x1x0.obj\",\"kitchen.Stove.1.size48x32x32x0x1x0.obj\"]}}';var objXrefTemp  = '{\"bedroom\":[{\"category\":\"bedroom\",\"name\":\"32in-TV\",\"order\":\"5\",\"obj\":\"bedroom.32in-TV.5.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"bedroom.32in-TV.5.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14,\"niceName\":\"32in TV (18.5x29.2x5.7)\"},{\"category\":\"bedroom\",\"name\":\"Armoire\",\"order\":33,\"obj\":\"bedroom.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"mtl\":\"bedroom.Armoire.size69.6x28.9x21.6x0x1x0u.mtl\",\"len_x\":\"69.6\",\"len_y\":\"28.9\",\"len_z\":\"21.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":43447.104,\"niceName\":\"Armoire (69.6x28.9x21.6)\"},{\"category\":\"bedroom\",\"name\":\"Chest\",\"order\":33,\"obj\":\"bedroom.Chest.size19.4x37.5x20.1x0x1x0.obj\",\"mtl\":\"bedroom.Chest.size19.4x37.5x20.1x0x1x0.mtl\",\"len_x\":\"19.4\",\"len_y\":\"37.5\",\"len_z\":\"20.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14622.750000000002,\"niceName\":\"Chest (19.4x37.5x20.1)\"},{\"category\":\"bedroom\",\"name\":\"Drawers\",\"order\":\"6\",\"obj\":\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.obj\",\"mtl\":\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.mtl\",\"len_x\":\"28.75\",\"len_y\":\"31.0\",\"len_z\":\"16.25\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14482.8125,\"niceName\":\"Drawers (28.75x31.0x16.25)\"},{\"category\":\"bedroom\",\"name\":\"Dresser-with-Mirror\",\"order\":33,\"obj\":\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.obj\",\"mtl\":\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.mtl\",\"len_x\":\"75.3\",\"len_y\":\"61.3\",\"len_z\":\"18.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":86778.73199999999,\"niceName\":\"Dresser with Mirror (75.3x61.3x18.8)\"},{\"category\":\"bedroom\",\"name\":\"End-Table\",\"order\":33,\"obj\":\"bedroom.End-Table.size29.1x16x12x0x1x0.obj\",\"mtl\":\"bedroom.End-Table.size29.1x16x12x0x1x0.mtl\",\"len_x\":\"29.1\",\"len_y\":\"16\",\"len_z\":\"12\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5587.200000000001,\"niceName\":\"End Table (29.1x16x12)\"},{\"category\":\"bedroom\",\"name\":\"Full-Bed\",\"order\":\"2\",\"obj\":\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"mtl\":\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.mtl\",\"len_x\":\"75.7\",\"len_y\":\"55.1\",\"len_z\":\"39.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":165174.37200000003,\"niceName\":\"Full Bed (75.7x55.1x39.6)\"},{\"category\":\"bedroom\",\"name\":\"King-Bed\",\"order\":\"4\",\"obj\":\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"mtl\":\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.mtl\",\"len_x\":\"81.2\",\"len_y\":\"77.0\",\"len_z\":\"40.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":251346.48000000004,\"niceName\":\"King Bed (81.2x77.0x40.2)\"},{\"category\":\"bedroom\",\"name\":\"Night-Stand\",\"order\":\"7\",\"obj\":\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.obj\",\"mtl\":\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.mtl\",\"len_x\":\"23.6\",\"len_y\":\"15.75\",\"len_z\":\"12.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":4534.740000000001,\"niceName\":\"Night Stand (23.6x15.75x12.2)\"},{\"category\":\"bedroom\",\"name\":\"Queen-Bed\",\"order\":\"3\",\"obj\":\"bedroom.Queen-Bed.3.size81.1x60.9x37.1x0x1x0u.obj\",\"mtl\":\"bedroom.Queen-Bed.3.size81.1x60.9x37.1x0x1x0u.mtl\",\"len_x\":\"81.1\",\"len_y\":\"60.9\",\"len_z\":\"37.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":183236.529,\"niceName\":\"Queen Bed (81.1x60.9x37.1)\"},{\"category\":\"bedroom\",\"name\":\"Twin-Bed\",\"order\":\"1\",\"obj\":\"bedroom.Twin-Bed.1.size75.4x39.7x27.3x0x1x0u.obj\",\"mtl\":\"bedroom.Twin-Bed.1.size75.4x39.7x27.3x0x1x0u.mtl\",\"len_x\":\"75.4\",\"len_y\":\"39.7\",\"len_z\":\"27.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":81719.27400000002,\"niceName\":\"Twin Bed (75.4x39.7x27.3)\"},{\"category\":\"bedroom\",\"name\":\"Wardrobe\",\"order\":33,\"obj\":\"bedroom.Wardrobe.size71.2x29.1x22.3x0x1x0.obj\",\"mtl\":\"bedroom.Wardrobe.size71.2x29.1x22.3x0x1x0.mtl\",\"len_x\":\"71.2\",\"len_y\":\"29.1\",\"len_z\":\"22.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":46203.816000000006,\"niceName\":\"Wardrobe (71.2x29.1x22.3)\"}],\"living-room\":[{\"category\":\"living-room\",\"name\":\"32in-TV\",\"order\":\"8\",\"obj\":\"living-room.32in-TV.8.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"living-room.32in-TV.8.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14,\"niceName\":\"32in TV (18.5x29.2x5.7)\"},{\"category\":\"living-room\",\"name\":\"55in-TV\",\"order\":\"8\",\"obj\":\"living-room.55in-TV.8.size23.9x31.7x9.4x0x1x0.obj\",\"mtl\":\"living-room.55in-TV.8.size23.9x31.7x9.4x0x1x0.mtl\",\"len_x\":\"23.9\",\"len_y\":\"31.7\",\"len_z\":\"9.4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":7121.721999999999,\"niceName\":\"55in TV (23.9x31.7x9.4)\"},{\"category\":\"living-room\",\"name\":\"Air-Conditioner\",\"order\":\"40\",\"obj\":\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\",\"mtl\":\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.mtl\",\"len_x\":\"13.2\",\"len_y\":\"23\",\"len_z\":\"12.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3886.08,\"niceName\":\"Air Conditioner (13.2x23x12.8)\"},{\"category\":\"living-room\",\"name\":\"Armchair\",\"order\":\"4\",\"obj\":\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"mtl\":\"living-room.Armchair.4.size35x32x32x0x1x0.mtl\",\"len_x\":\"35\",\"len_y\":\"32\",\"len_z\":\"32\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35840,\"niceName\":\"Armchair (35x32x32)\"},{\"category\":\"living-room\",\"name\":\"Armoire\",\"order\":33,\"obj\":\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"mtl\":\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.mtl\",\"len_x\":\"69.6\",\"len_y\":\"28.9\",\"len_z\":\"21.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":43447.104,\"niceName\":\"Armoire (69.6x28.9x21.6)\"},{\"category\":\"living-room\",\"name\":\"Bookcase\",\"order\":\"7\",\"obj\":\"living-room.Bookcase.7.size47.5x25x9.5x0x1x0.obj\",\"mtl\":\"living-room.Bookcase.7.size47.5x25x9.5x0x1x0.mtl\",\"len_x\":\"47.5\",\"len_y\":\"25\",\"len_z\":\"9.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11281.25,\"niceName\":\"Bookcase (47.5x25x9.5)\"},{\"category\":\"living-room\",\"name\":\"Chest\",\"order\":\"5\",\"obj\":\"living-room.Chest.5.size19.4x37.5x20.1x0x1x0.obj\",\"mtl\":\"living-room.Chest.5.size19.4x37.5x20.1x0x1x0.mtl\",\"len_x\":\"19.4\",\"len_y\":\"37.5\",\"len_z\":\"20.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14622.750000000002,\"niceName\":\"Chest (19.4x37.5x20.1)\"},{\"category\":\"living-room\",\"name\":\"Coffee-Table\",\"order\":33,\"obj\":\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.obj\",\"mtl\":\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.mtl\",\"len_x\":\"16.9\",\"len_y\":\"35\",\"len_z\":\"19.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11534.25,\"niceName\":\"Coffee Table (16.9x35x19.5)\"},{\"category\":\"living-room\",\"name\":\"DVD-Player\",\"order\":\"12\",\"obj\":\"living-room.DVD-Player.12.size2.0x10.0x9.0x0x1x0.obj\",\"mtl\":\"living-room.DVD-Player.12.size2.0x10.0x9.0x0x1x0.mtl\",\"len_x\":\"2.0\",\"len_y\":\"10.0\",\"len_z\":\"9.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":180,\"niceName\":\"DVD Player (2.0x10.0x9.0)\"},{\"category\":\"living-room\",\"name\":\"End-Table\",\"order\":33,\"obj\":\"living-room.End-Table.size29.1x16x12x0x1x0.obj\",\"mtl\":\"living-room.End-Table.size29.1x16x12x0x1x0.mtl\",\"len_x\":\"29.1\",\"len_y\":\"16\",\"len_z\":\"12\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5587.200000000001,\"niceName\":\"End Table (29.1x16x12)\"},{\"category\":\"living-room\",\"name\":\"Floor-Lamp\",\"order\":33,\"obj\":\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.obj\",\"mtl\":\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.mtl\",\"len_x\":\"69.5\",\"len_y\":\"24.1\",\"len_z\":\"24.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":40366.295000000006,\"niceName\":\"Floor Lamp (69.5x24.1x24.1)\"},{\"category\":\"living-room\",\"name\":\"Floor-Speakers-(pair)\",\"order\":33,\"obj\":\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"mtl\":\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.mtl\",\"len_x\":\"37.6\",\"len_y\":\"28.4\",\"len_z\":\"13.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14415.839999999998,\"niceName\":\"Floor Speakers Pair (37.6x28.4x13.5)\"},{\"category\":\"living-room\",\"name\":\"Game-Console\",\"order\":\"10\",\"obj\":\"living-room.Game-Console.10.size2.2x12x10.8x0x1x0.obj\",\"mtl\":\"living-room.Game-Console.10.size2.2x12x10.8x0x1x0.mtl\",\"len_x\":\"2.2\",\"len_y\":\"12\",\"len_z\":\"10.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":285.12000000000006,\"niceName\":\"Game Console (2.2x12x10.8)\"},{\"category\":\"living-room\",\"name\":\"Love-Seat\",\"order\":\"6\",\"obj\":\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"mtl\":\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.mtl\",\"len_x\":\"35\",\"len_y\":\"59\",\"len_z\":\"33.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":68351.5,\"niceName\":\"Love Seat (35x59x33.1)\"},{\"category\":\"living-room\",\"name\":\"Love-Seat\",\"order\":\"6\",\"obj\":\"living-room.Love-Seat.6.size59x35x33.1x0x1x0.obj\",\"mtl\":\"living-room.Love-Seat.6.size59x35x33.1x0x1x0.mtl\",\"len_x\":\"59\",\"len_y\":\"35\",\"len_z\":\"33.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":68351.5,\"niceName\":\"Love Seat (59x35x33.1)\"},{\"category\":\"living-room\",\"name\":\"Ottoman\",\"order\":\"9\",\"obj\":\"living-room.Ottoman.9.size16.1x29x19x0x1x0.obj\",\"mtl\":\"living-room.Ottoman.9.size16.1x29x19x0x1x0.mtl\",\"len_x\":\"16.1\",\"len_y\":\"29\",\"len_z\":\"19\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":8871.1,\"niceName\":\"ottoman (16.1x29x19)\"},{\"category\":\"living-room\",\"name\":\"Piano\",\"order\":\"41\",\"obj\":\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.obj\",\"mtl\":\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.mtl\",\"len_x\":\"48.2\",\"len_y\":\"60.1\",\"len_z\":\"24.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":69813.36200000001,\"niceName\":\"piano (48.2x60.1x24.1)\"},{\"category\":\"living-room\",\"name\":\"Recliner\",\"order\":\"3\",\"obj\":\"living-room.Recliner.3.size38.7x37.3x35.8x0x1x0.obj\",\"mtl\":\"living-room.Recliner.3.size38.7x37.3x35.8x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"37.3\",\"len_z\":\"35.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":51677.657999999996,\"niceName\":\"recliner (38.7x37.3x35.8)\"},{\"category\":\"living-room\",\"name\":\"Sofa\",\"order\":\"1\",\"obj\":\"living-room.Sofa.1.size32.8x73.3x31.9x0x1x0.obj\",\"mtl\":\"living-room.Sofa.1.size32.8x73.3x31.9x0x1x0.mtl\",\"len_x\":\"32.8\",\"len_y\":\"73.3\",\"len_z\":\"31.9\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":76695.256,\"niceName\":\"sofa (32.8x73.3x31.9)\"},{\"category\":\"living-room\",\"name\":\"Stereo\",\"order\":\"11\",\"obj\":\"living-room.Stereo.11.size13.7x12.1x9.3x0x1x0.obj\",\"mtl\":\"living-room.Stereo.11.size13.7x12.1x9.3x0x1x0.mtl\",\"len_x\":\"13.7\",\"len_y\":\"12.1\",\"len_z\":\"9.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":1541.661,\"niceName\":\"stereo (13.7x12.1x9.3)\"},{\"category\":\"living-room\",\"name\":\"TV-Stand\",\"order\":\"2\",\"obj\":\"living-room.TV-Stand.2.size21.25x60.88x15.63x0x1x0.obj\",\"mtl\":\"living-room.TV-Stand.2.size21.25x60.88x15.63x0x1x0.mtl\",\"len_x\":\"21.25\",\"len_y\":\"60.88\",\"len_z\":\"15.63\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":20220.531000000003,\"niceName\":\"TV Stand (21.25x60.88x15.63)\"}],\"dining-room\":[{\"category\":\"dining-room\",\"name\":\"Buffet-Table\",\"order\":33,\"obj\":\"dining-room.Buffet-Table.size32.2x47.6x18.2x0x1x0.obj\",\"mtl\":\"dining-room.Buffet-Table.size32.2x47.6x18.2x0x1x0.mtl\",\"len_x\":\"32.2\",\"len_y\":\"47.6\",\"len_z\":\"18.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":27895.504000000004,\"niceName\":\"Buffet Table (32.2x47.6x18.2)\"},{\"category\":\"dining-room\",\"name\":\"China-Cabinet\",\"order\":33,\"obj\":\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.obj\",\"mtl\":\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.mtl\",\"len_x\":\"50\",\"len_y\":\"36.5\",\"len_z\":\"16\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":29200,\"niceName\":\"China Cabinet (50x36.5x16)\"},{\"category\":\"dining-room\",\"name\":\"Dining-Chairs-(pair)\",\"order\":\"2\",\"obj\":\"dining-room.Dining-Chairs-(pair).2.size35.4x17.3x19.3x0x1x0u.obj\",\"mtl\":\"dining-room.Dining-Chairs-(pair).2.size35.4x17.3x19.3x0x1x0u.mtl\",\"len_x\":\"35.4\",\"len_y\":\"17.3\",\"len_z\":\"19.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11819.706,\"niceName\":\"Dining chairs pair (35.4x17.3x19.3)\"},{\"category\":\"dining-room\",\"name\":\"Dining-Set\",\"order\":\"1\",\"obj\":\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"mtl\":\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.mtl\",\"len_x\":\"35.7\",\"len_y\":\"45.6\",\"len_z\":\"34.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":56163.240000000005,\"niceName\":\"Dining Set (35.7x45.6x34.5)\"}],\"study\":[{\"category\":\"study\",\"name\":\"32in-Monitor\",\"order\":33,\"obj\":\"study.32in-Monitor.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"study.32in-Monitor.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14,\"niceName\":\" 32in monitor (18.5x29.2x5.7)\"},{\"category\":\"study\",\"name\":\"Bookcase\",\"order\":\"4\",\"obj\":\"study.Bookcase.4.size47.5x25x9.5x0x1x0.obj\",\"mtl\":\"study.Bookcase.4.size47.5x25x9.5x0x1x0.mtl\",\"len_x\":\"47.5\",\"len_y\":\"25\",\"len_z\":\"9.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11281.25,\"niceName\":\"Bookcase (47.5x25x9.5)\"},{\"category\":\"study\",\"name\":\"Desk\",\"order\":\"1\",\"obj\":\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"mtl\":\"study.Desk.1.size30x47x18.7x0x1x0.mtl\",\"len_x\":\"30\",\"len_y\":\"47\",\"len_z\":\"18.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":26367,\"niceName\":\"Desk (30x47x18.7)\"},{\"category\":\"study\",\"name\":\"Drawers\",\"order\":33,\"obj\":\"study.Drawers.size28.75x31.0x16.25x0x1x0.obj\",\"mtl\":\"study.Drawers.size28.75x31.0x16.25x0x1x0.mtl\",\"len_x\":\"28.75\",\"len_y\":\"31.0\",\"len_z\":\"16.25\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14482.8125,\"niceName\":\"Drawers (28.75x31.0x16.25)\"},{\"category\":\"study\",\"name\":\"File-Cabinet-(large)\",\"order\":33,\"obj\":\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.obj\",\"mtl\":\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.mtl\",\"len_x\":\"50.8\",\"len_y\":\"15.8\",\"len_z\":\"17.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":13885.672,\"niceName\":\"File Cabinet (Large) (50.8x15.8x17.3)\"},{\"category\":\"study\",\"name\":\"File-Cabinet-(small)\",\"order\":33,\"obj\":\"study.File-Cabinet-(small).size26x15.56x16x0x1x0.obj\",\"mtl\":\"study.File-Cabinet-(small).size26x15.56x16x0x1x0.mtl\",\"len_x\":\"26\",\"len_y\":\"15.56\",\"len_z\":\"16\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6472.96,\"niceName\":\"File Cabinet (Small) (26x15.56x16)\"},{\"category\":\"study\",\"name\":\"Office-Chair\",\"order\":\"2\",\"obj\":\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"mtl\":\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.mtl\",\"len_x\":\"39.0\",\"len_y\":\"20.0\",\"len_z\":\"19.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14820,\"niceName\":\"Office Chair (39.0x20.0x19.0)\"},{\"category\":\"study\",\"name\":\"PC\",\"order\":33,\"obj\":\"study.PC.size12.3x6.6x15x0x1x0.obj\",\"mtl\":\"study.PC.size12.3x6.6x15x0x1x0.mtl\",\"len_x\":\"12.3\",\"len_y\":\"6.6\",\"len_z\":\"15\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":1217.7,\"niceName\":\"pc (12.3x6.6x15)\"}],\"kitchen\":[{\"category\":\"kitchen\",\"name\":\"Bar-Stool\",\"order\":33,\"obj\":\"kitchen.Bar-Stool.size30.8x25.4x25.13x0x1x0.obj\",\"mtl\":\"kitchen.Bar-Stool.size30.8x25.4x25.13x0x1x0.mtl\",\"len_x\":\"30.8\",\"len_y\":\"25.4\",\"len_z\":\"25.13\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":19659.701599999997,\"niceName\":\"Bar Stool (30.8x25.4x25.13)\"},{\"category\":\"kitchen\",\"name\":\"Kitchen-Table\",\"order\":33,\"obj\":\"kitchen.Kitchen-Table.size35.75x38x38x0x1x0.obj\",\"mtl\":\"kitchen.Kitchen-Table.size35.75x38x38x0x1x0.mtl\",\"len_x\":\"35.75\",\"len_y\":\"38\",\"len_z\":\"38\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":51623,\"niceName\":\"Kitchen Table (35.75x38x38)\"},{\"category\":\"kitchen\",\"name\":\"Large-Fridge\",\"order\":\"2\",\"obj\":\"kitchen.Large-Fridge.2.size72x36x36x0x1x0.obj\",\"mtl\":\"kitchen.Large-Fridge.2.size72x36x36x0x1x0.mtl\",\"len_x\":\"72\",\"len_y\":\"36\",\"len_z\":\"36\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":93312,\"niceName\":\"Large Fridge (72x36x36)\"},{\"category\":\"kitchen\",\"name\":\"Microwave\",\"order\":33,\"obj\":\"kitchen.Microwave.size12.8x21.8x11.8x0x1x0.obj\",\"mtl\":\"kitchen.Microwave.size12.8x21.8x11.8x0x1x0.mtl\",\"len_x\":\"12.8\",\"len_y\":\"21.8\",\"len_z\":\"11.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3292.6720000000005,\"niceName\":\"microwave (12.8x21.8x11.8)\"},{\"category\":\"kitchen\",\"name\":\"Small-Fridge\",\"order\":33,\"obj\":\"kitchen.Small-Fridge.size68x25x29x0x1x0.obj\",\"mtl\":\"kitchen.Small-Fridge.size68x25x29x0x1x0.mtl\",\"len_x\":\"68\",\"len_y\":\"25\",\"len_z\":\"29\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":49300,\"niceName\":\"Small Fridge (68x25x29)\"},{\"category\":\"kitchen\",\"name\":\"Stove\",\"order\":\"1\",\"obj\":\"kitchen.Stove.1.size48x32x32x0x1x0.obj\",\"mtl\":\"kitchen.Stove.1.size48x32x32x0x1x0.mtl\",\"len_x\":\"48\",\"len_y\":\"32\",\"len_z\":\"32\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":49152,\"niceName\":\"Stove (48x32x32)\"}],\"garage\":[{\"category\":\"garage\",\"name\":\"Bike-(Mountain)\",\"order\":33,\"obj\":\"garage.Bike-(Mountain).size42x22x70x0x1x0u.obj\",\"mtl\":\"garage.Bike-(Mountain).size42x22x70x0x1x0u.mtl\",\"len_x\":\"42\",\"len_y\":\"22\",\"len_z\":\"70\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":64680,\"niceName\":\"Mountain Bike (42x22x70)\"},{\"category\":\"garage\",\"name\":\"Bike-(Road)\",\"order\":33,\"obj\":\"garage.Bike-(Road).size40x18x68x0x1x0u.obj\",\"mtl\":\"garage.Bike-(Road).size40x18x68x0x1x0u.mtl\",\"len_x\":\"40\",\"len_y\":\"18\",\"len_z\":\"68\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":48960,\"niceName\":\"Road Bike (40x18x68)\"},{\"category\":\"garage\",\"name\":\"Dryer\",\"order\":33,\"obj\":\"garage.Dryer.size38.7x27.5x33.5x0x1x0.obj\",\"mtl\":\"garage.Dryer.size38.7x27.5x33.5x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"27.5\",\"len_z\":\"33.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35652.375,\"niceName\":\"Dryer (38.7x27.5x33.5)\"},{\"category\":\"garage\",\"name\":\"Freezer\",\"order\":33,\"obj\":\"garage.Freezer.size42.1x36x27.5x0x1x0.obj\",\"mtl\":\"garage.Freezer.size42.1x36x27.5x0x1x0.mtl\",\"len_x\":\"42.1\",\"len_y\":\"36\",\"len_z\":\"27.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":41679.00000000001,\"niceName\":\"Freezer (42.1x36x27.5)\"},{\"category\":\"garage\",\"name\":\"Generator\",\"order\":\"2\",\"obj\":\"garage.Generator.2.size15.4x24.5x18.5x0x1x0u.obj\",\"mtl\":\"garage.Generator.2.size15.4x24.5x18.5x0x1x0u.mtl\",\"len_x\":\"15.4\",\"len_y\":\"24.5\",\"len_z\":\"18.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6980.05,\"niceName\":\"Generator (15.4x24.5x18.5)\"},{\"category\":\"garage\",\"name\":\"ladder\",\"order\":33,\"obj\":\"garage.ladder.size47x18x4x0x1x0.obj\",\"mtl\":\"garage.ladder.size47x18x4x0x1x0.mtl\",\"len_x\":\"47\",\"len_y\":\"18\",\"len_z\":\"4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3384,\"niceName\":\"Ladder (47x18x4)\"},{\"category\":\"garage\",\"name\":\"lawnmower\",\"order\":33,\"obj\":\"garage.lawnmower.size41x22x61x0x1x0u.obj\",\"mtl\":\"garage.lawnmower.size41x22x61x0x1x0u.mtl\",\"len_x\":\"41\",\"len_y\":\"22\",\"len_z\":\"61\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":55022,\"niceName\":\"Lawnmower (41x22x61)\"},{\"category\":\"garage\",\"name\":\"Tool-Box\",\"order\":\"1\",\"obj\":\"garage.Tool-Box.1.size31.25x28.1x19.2x0x1x0.obj\",\"mtl\":\"garage.Tool-Box.1.size31.25x28.1x19.2x0x1x0.mtl\",\"len_x\":\"31.25\",\"len_y\":\"28.1\",\"len_z\":\"19.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":16860,\"niceName\":\"Tool Box (31.25x28.1x19.2)\"},{\"category\":\"garage\",\"name\":\"Washer\",\"order\":33,\"obj\":\"garage.Washer.size38.7x27.5x33.5x0x1x0.obj\",\"mtl\":\"garage.Washer.size38.7x27.5x33.5x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"27.5\",\"len_z\":\"33.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35652.375,\"niceName\":\"Washer (38.7x27.5x33.5)\"}],\"misc\":[{\"category\":\"misc\",\"name\":\"Box-(Large)\",\"order\":33,\"obj\":\"misc.Box-(Large).size18.0x18.0x24.0x0x1x0.obj\",\"mtl\":\"misc.Box-(Large).size18.0x18.0x24.0x0x1x0.mtl\",\"len_x\":\"18.0\",\"len_y\":\"18.0\",\"len_z\":\"24.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":7776,\"niceName\":\"Box Large (18.0x18.0x24.0)\"},{\"category\":\"misc\",\"name\":\"Box-(Medium)\",\"order\":33,\"obj\":\"misc.Box-(Medium).size18.0x18.0x16.0x1x1x1.obj\",\"mtl\":\"misc.Box-(Medium).size18.0x18.0x16.0x1x1x1.mtl\",\"len_x\":\"18.0\",\"len_y\":\"18.0\",\"len_z\":\"16.0\",\"rot_x\":\"1\",\"rot_y\":\"1\",\"rot_z\":\"1\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5184,\"niceName\":\"Box Medium (18.0x18.0x16.0)\"},{\"category\":\"misc\",\"name\":\"Box-(Small)\",\"order\":33,\"obj\":\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"mtl\":\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.mtl\",\"len_x\":\"12.5\",\"len_y\":\"12.5\",\"len_z\":\"16.0\",\"rot_x\":\"1\",\"rot_y\":\"1\",\"rot_z\":\"1\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":2500,\"niceName\":\"Box Small (12.5x12.5x16.0)\"},{\"category\":\"misc\",\"name\":\"Floor-Fan\",\"order\":\"10\",\"obj\":\"misc.Floor-Fan.10.size22.5x22.5x5.4x0x1x0.obj\",\"mtl\":\"misc.Floor-Fan.10.size22.5x22.5x5.4x0x1x0.mtl\",\"len_x\":\"22.5\",\"len_y\":\"22.5\",\"len_z\":\"5.4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":2733.75,\"niceName\":\"Floor Fan (22.5x22.5x5.4)\"},{\"category\":\"misc\",\"name\":\"Patio-Chairs-(pair)\",\"order\":\"6\",\"obj\":\"misc.Patio-Chairs-(pair).6.size49.5x24.0x23.2x0x1x0u.obj\",\"mtl\":\"misc.Patio-Chairs-(pair).6.size49.5x24.0x23.2x0x1x0u.mtl\",\"len_x\":\"49.5\",\"len_y\":\"24.0\",\"len_z\":\"23.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":27561.6,\"niceName\":\"Patio Chair Pair (49.5x24.0x23.2)\"},{\"category\":\"misc\",\"name\":\"Patio-Lounger\",\"order\":\"7\",\"obj\":\"misc.Patio-Lounger.7.size44.5x9.2x23.8x0x1x0u.obj\",\"mtl\":\"misc.Patio-Lounger.7.size44.5x9.2x23.8x0x1x0u.mtl\",\"len_x\":\"44.5\",\"len_y\":\"9.2\",\"len_z\":\"23.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":9743.72,\"niceName\":\"Patio Lounger (44.5x9.2x23.8)\"},{\"category\":\"misc\",\"name\":\"Patio-Set\",\"order\":\"4\",\"obj\":\"misc.Patio-Set.4.size33.9x48.1x56.8x0x1x0u.obj\",\"mtl\":\"misc.Patio-Set.4.size33.9x48.1x56.8x0x1x0u.mtl\",\"len_x\":\"33.9\",\"len_y\":\"48.1\",\"len_z\":\"56.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":92617.51199999999,\"niceName\":\"Patio Set (33.9x48.1x56.8)\"},{\"category\":\"misc\",\"name\":\"Suitcase\",\"order\":33,\"obj\":\"misc.Suitcase.size29.8x18.4x11.1x0x1x0.obj\",\"mtl\":\"misc.Suitcase.size29.8x18.4x11.1x0x1x0.mtl\",\"len_x\":\"29.8\",\"len_y\":\"18.4\",\"len_z\":\"11.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6086.351999999999,\"niceName\":\"Suite Case (29.8x18.4x11.1)\"},{\"category\":\"misc\",\"name\":\"Treadmill\",\"order\":\"9\",\"obj\":\"misc.Treadmill.9.size54x23x18.5x0x1x0u.obj\",\"mtl\":\"misc.Treadmill.9.size54x23x18.5x0x1x0u.mtl\",\"len_x\":\"54\",\"len_y\":\"23\",\"len_z\":\"18.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":22977,\"niceName\":\"Treadmill (54x23x18.5)\"}]}';var objByFileNameTemp  = '{\"bedroom.32in-TV.5.size18.5x29.2x5.7x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"32in-TV\",\"order\":\"5\",\"obj\":\"bedroom.32in-TV.5.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"bedroom.32in-TV.5.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14},\"bedroom.Armoire.size69.6x28.9x21.6x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"Armoire\",\"order\":33,\"obj\":\"bedroom.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"mtl\":\"bedroom.Armoire.size69.6x28.9x21.6x0x1x0u.mtl\",\"len_x\":\"69.6\",\"len_y\":\"28.9\",\"len_z\":\"21.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":43447.104},\"bedroom.Chest.size19.4x37.5x20.1x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"Chest\",\"order\":33,\"obj\":\"bedroom.Chest.size19.4x37.5x20.1x0x1x0.obj\",\"mtl\":\"bedroom.Chest.size19.4x37.5x20.1x0x1x0.mtl\",\"len_x\":\"19.4\",\"len_y\":\"37.5\",\"len_z\":\"20.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14622.750000000002},\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"Drawers\",\"order\":\"6\",\"obj\":\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.obj\",\"mtl\":\"bedroom.Drawers.6.size28.75x31.0x16.25x0x1x0.mtl\",\"len_x\":\"28.75\",\"len_y\":\"31.0\",\"len_z\":\"16.25\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14482.8125},\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"Dresser-with-Mirror\",\"order\":33,\"obj\":\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.obj\",\"mtl\":\"bedroom.Dresser-with-Mirror.size75.3x61.3x18.8x0x1x0u.mtl\",\"len_x\":\"75.3\",\"len_y\":\"61.3\",\"len_z\":\"18.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":86778.73199999999},\"bedroom.End-Table.size29.1x16x12x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"End-Table\",\"order\":33,\"obj\":\"bedroom.End-Table.size29.1x16x12x0x1x0.obj\",\"mtl\":\"bedroom.End-Table.size29.1x16x12x0x1x0.mtl\",\"len_x\":\"29.1\",\"len_y\":\"16\",\"len_z\":\"12\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5587.200000000001},\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"Full-Bed\",\"order\":\"2\",\"obj\":\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.obj\",\"mtl\":\"bedroom.Full-Bed.2.size75.7x55.1x39.6x0x1x0u.mtl\",\"len_x\":\"75.7\",\"len_y\":\"55.1\",\"len_z\":\"39.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":165174.37200000003},\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"King-Bed\",\"order\":\"4\",\"obj\":\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.obj\",\"mtl\":\"bedroom.King-Bed.4.size81.2x77.0x40.2x0x1x0u.mtl\",\"len_x\":\"81.2\",\"len_y\":\"77.0\",\"len_z\":\"40.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":251346.48000000004},\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"Night-Stand\",\"order\":\"7\",\"obj\":\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.obj\",\"mtl\":\"bedroom.Night-Stand.7.size23.6x15.75x12.2x0x1x0.mtl\",\"len_x\":\"23.6\",\"len_y\":\"15.75\",\"len_z\":\"12.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":4534.740000000001},\"bedroom.Queen-Bed.3.size81.1x60.9x37.1x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"Queen-Bed\",\"order\":\"3\",\"obj\":\"bedroom.Queen-Bed.3.size81.1x60.9x37.1x0x1x0u.obj\",\"mtl\":\"bedroom.Queen-Bed.3.size81.1x60.9x37.1x0x1x0u.mtl\",\"len_x\":\"81.1\",\"len_y\":\"60.9\",\"len_z\":\"37.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":183236.529},\"bedroom.Twin-Bed.1.size75.4x39.7x27.3x0x1x0u.obj\":{\"category\":\"bedroom\",\"name\":\"Twin-Bed\",\"order\":\"1\",\"obj\":\"bedroom.Twin-Bed.1.size75.4x39.7x27.3x0x1x0u.obj\",\"mtl\":\"bedroom.Twin-Bed.1.size75.4x39.7x27.3x0x1x0u.mtl\",\"len_x\":\"75.4\",\"len_y\":\"39.7\",\"len_z\":\"27.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":81719.27400000002},\"bedroom.Wardrobe.size71.2x29.1x22.3x0x1x0.obj\":{\"category\":\"bedroom\",\"name\":\"Wardrobe\",\"order\":33,\"obj\":\"bedroom.Wardrobe.size71.2x29.1x22.3x0x1x0.obj\",\"mtl\":\"bedroom.Wardrobe.size71.2x29.1x22.3x0x1x0.mtl\",\"len_x\":\"71.2\",\"len_y\":\"29.1\",\"len_z\":\"22.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":46203.816000000006},\"living-room.32in-TV.8.size18.5x29.2x5.7x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"32in-TV\",\"order\":\"8\",\"obj\":\"living-room.32in-TV.8.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"living-room.32in-TV.8.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14},\"living-room.55in-TV.8.size23.9x31.7x9.4x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"55in-TV\",\"order\":\"8\",\"obj\":\"living-room.55in-TV.8.size23.9x31.7x9.4x0x1x0.obj\",\"mtl\":\"living-room.55in-TV.8.size23.9x31.7x9.4x0x1x0.mtl\",\"len_x\":\"23.9\",\"len_y\":\"31.7\",\"len_z\":\"9.4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":7121.721999999999},\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Air-Conditioner\",\"order\":\"40\",\"obj\":\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.obj\",\"mtl\":\"living-room.Air-Conditioner.40.size13.2x23x12.8x0x1x0.mtl\",\"len_x\":\"13.2\",\"len_y\":\"23\",\"len_z\":\"12.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3886.08},\"living-room.Armchair.4.size35x32x32x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Armchair\",\"order\":\"4\",\"obj\":\"living-room.Armchair.4.size35x32x32x0x1x0.obj\",\"mtl\":\"living-room.Armchair.4.size35x32x32x0x1x0.mtl\",\"len_x\":\"35\",\"len_y\":\"32\",\"len_z\":\"32\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35840},\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\":{\"category\":\"living-room\",\"name\":\"Armoire\",\"order\":33,\"obj\":\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.obj\",\"mtl\":\"living-room.Armoire.size69.6x28.9x21.6x0x1x0u.mtl\",\"len_x\":\"69.6\",\"len_y\":\"28.9\",\"len_z\":\"21.6\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":43447.104},\"living-room.Bookcase.7.size47.5x25x9.5x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Bookcase\",\"order\":\"7\",\"obj\":\"living-room.Bookcase.7.size47.5x25x9.5x0x1x0.obj\",\"mtl\":\"living-room.Bookcase.7.size47.5x25x9.5x0x1x0.mtl\",\"len_x\":\"47.5\",\"len_y\":\"25\",\"len_z\":\"9.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11281.25},\"living-room.Chest.5.size19.4x37.5x20.1x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Chest\",\"order\":\"5\",\"obj\":\"living-room.Chest.5.size19.4x37.5x20.1x0x1x0.obj\",\"mtl\":\"living-room.Chest.5.size19.4x37.5x20.1x0x1x0.mtl\",\"len_x\":\"19.4\",\"len_y\":\"37.5\",\"len_z\":\"20.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14622.750000000002},\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Coffee-Table\",\"order\":33,\"obj\":\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.obj\",\"mtl\":\"living-room.Coffee-Table.size16.9x35x19.5x0x1x0.mtl\",\"len_x\":\"16.9\",\"len_y\":\"35\",\"len_z\":\"19.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11534.25},\"living-room.DVD-Player.12.size2.0x10.0x9.0x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"DVD-Player\",\"order\":\"12\",\"obj\":\"living-room.DVD-Player.12.size2.0x10.0x9.0x0x1x0.obj\",\"mtl\":\"living-room.DVD-Player.12.size2.0x10.0x9.0x0x1x0.mtl\",\"len_x\":\"2.0\",\"len_y\":\"10.0\",\"len_z\":\"9.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":180},\"living-room.End-Table.size29.1x16x12x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"End-Table\",\"order\":33,\"obj\":\"living-room.End-Table.size29.1x16x12x0x1x0.obj\",\"mtl\":\"living-room.End-Table.size29.1x16x12x0x1x0.mtl\",\"len_x\":\"29.1\",\"len_y\":\"16\",\"len_z\":\"12\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5587.200000000001},\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.obj\":{\"category\":\"living-room\",\"name\":\"Floor-Lamp\",\"order\":33,\"obj\":\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.obj\",\"mtl\":\"living-room.Floor-Lamp.size69.5x24.1x24.1x0x1x0u.mtl\",\"len_x\":\"69.5\",\"len_y\":\"24.1\",\"len_z\":\"24.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":40366.295000000006},\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Floor-Speakers-(pair)\",\"order\":33,\"obj\":\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.obj\",\"mtl\":\"living-room.Floor-Speakers-(pair).size37.6x28.4x13.5x0x1x0.mtl\",\"len_x\":\"37.6\",\"len_y\":\"28.4\",\"len_z\":\"13.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14415.839999999998},\"living-room.Game-Console.10.size2.2x12x10.8x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Game-Console\",\"order\":\"10\",\"obj\":\"living-room.Game-Console.10.size2.2x12x10.8x0x1x0.obj\",\"mtl\":\"living-room.Game-Console.10.size2.2x12x10.8x0x1x0.mtl\",\"len_x\":\"2.2\",\"len_y\":\"12\",\"len_z\":\"10.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":285.12000000000006},\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Love-Seat\",\"order\":\"6\",\"obj\":\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.obj\",\"mtl\":\"living-room.Love-Seat.6.size35x59x33.1x0x1x0.mtl\",\"len_x\":\"35\",\"len_y\":\"59\",\"len_z\":\"33.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":68351.5},\"living-room.Love-Seat.6.size59x35x33.1x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Love-Seat\",\"order\":\"6\",\"obj\":\"living-room.Love-Seat.6.size59x35x33.1x0x1x0.obj\",\"mtl\":\"living-room.Love-Seat.6.size59x35x33.1x0x1x0.mtl\",\"len_x\":\"59\",\"len_y\":\"35\",\"len_z\":\"33.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":68351.5},\"living-room.Ottoman.9.size16.1x29x19x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Ottoman\",\"order\":\"9\",\"obj\":\"living-room.Ottoman.9.size16.1x29x19x0x1x0.obj\",\"mtl\":\"living-room.Ottoman.9.size16.1x29x19x0x1x0.mtl\",\"len_x\":\"16.1\",\"len_y\":\"29\",\"len_z\":\"19\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":8871.1},\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.obj\":{\"category\":\"living-room\",\"name\":\"Piano\",\"order\":\"41\",\"obj\":\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.obj\",\"mtl\":\"living-room.Piano.41.size48.2x60.1x24.1x0x1x0u.mtl\",\"len_x\":\"48.2\",\"len_y\":\"60.1\",\"len_z\":\"24.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":69813.36200000001},\"living-room.Recliner.3.size38.7x37.3x35.8x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Recliner\",\"order\":\"3\",\"obj\":\"living-room.Recliner.3.size38.7x37.3x35.8x0x1x0.obj\",\"mtl\":\"living-room.Recliner.3.size38.7x37.3x35.8x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"37.3\",\"len_z\":\"35.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":51677.657999999996},\"living-room.Sofa.1.size32.8x73.3x31.9x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Sofa\",\"order\":\"1\",\"obj\":\"living-room.Sofa.1.size32.8x73.3x31.9x0x1x0.obj\",\"mtl\":\"living-room.Sofa.1.size32.8x73.3x31.9x0x1x0.mtl\",\"len_x\":\"32.8\",\"len_y\":\"73.3\",\"len_z\":\"31.9\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":76695.256},\"living-room.Stereo.11.size13.7x12.1x9.3x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"Stereo\",\"order\":\"11\",\"obj\":\"living-room.Stereo.11.size13.7x12.1x9.3x0x1x0.obj\",\"mtl\":\"living-room.Stereo.11.size13.7x12.1x9.3x0x1x0.mtl\",\"len_x\":\"13.7\",\"len_y\":\"12.1\",\"len_z\":\"9.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":1541.661},\"living-room.TV-Stand.2.size21.25x60.88x15.63x0x1x0.obj\":{\"category\":\"living-room\",\"name\":\"TV-Stand\",\"order\":\"2\",\"obj\":\"living-room.TV-Stand.2.size21.25x60.88x15.63x0x1x0.obj\",\"mtl\":\"living-room.TV-Stand.2.size21.25x60.88x15.63x0x1x0.mtl\",\"len_x\":\"21.25\",\"len_y\":\"60.88\",\"len_z\":\"15.63\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":20220.531000000003},\"dining-room.Buffet-Table.size32.2x47.6x18.2x0x1x0.obj\":{\"category\":\"dining-room\",\"name\":\"Buffet-Table\",\"order\":33,\"obj\":\"dining-room.Buffet-Table.size32.2x47.6x18.2x0x1x0.obj\",\"mtl\":\"dining-room.Buffet-Table.size32.2x47.6x18.2x0x1x0.mtl\",\"len_x\":\"32.2\",\"len_y\":\"47.6\",\"len_z\":\"18.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":27895.504000000004},\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.obj\":{\"category\":\"dining-room\",\"name\":\"China-Cabinet\",\"order\":33,\"obj\":\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.obj\",\"mtl\":\"dining-room.China-Cabinet.size50x36.5x16x0x1x0.mtl\",\"len_x\":\"50\",\"len_y\":\"36.5\",\"len_z\":\"16\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":29200},\"dining-room.Dining-Chairs-(pair).2.size35.4x17.3x19.3x0x1x0u.obj\":{\"category\":\"dining-room\",\"name\":\"Dining-Chairs-(pair)\",\"order\":\"2\",\"obj\":\"dining-room.Dining-Chairs-(pair).2.size35.4x17.3x19.3x0x1x0u.obj\",\"mtl\":\"dining-room.Dining-Chairs-(pair).2.size35.4x17.3x19.3x0x1x0u.mtl\",\"len_x\":\"35.4\",\"len_y\":\"17.3\",\"len_z\":\"19.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11819.706},\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\":{\"category\":\"dining-room\",\"name\":\"Dining-Set\",\"order\":\"1\",\"obj\":\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.obj\",\"mtl\":\"dining-room.Dining-Set.1.size35.7x45.6x34.5x0x1x0.mtl\",\"len_x\":\"35.7\",\"len_y\":\"45.6\",\"len_z\":\"34.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":56163.240000000005},\"study.32in-Monitor.size18.5x29.2x5.7x0x1x0.obj\":{\"category\":\"study\",\"name\":\"32in-Monitor\",\"order\":33,\"obj\":\"study.32in-Monitor.size18.5x29.2x5.7x0x1x0.obj\",\"mtl\":\"study.32in-Monitor.size18.5x29.2x5.7x0x1x0.mtl\",\"len_x\":\"18.5\",\"len_y\":\"29.2\",\"len_z\":\"5.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3079.14},\"study.Bookcase.4.size47.5x25x9.5x0x1x0.obj\":{\"category\":\"study\",\"name\":\"Bookcase\",\"order\":\"4\",\"obj\":\"study.Bookcase.4.size47.5x25x9.5x0x1x0.obj\",\"mtl\":\"study.Bookcase.4.size47.5x25x9.5x0x1x0.mtl\",\"len_x\":\"47.5\",\"len_y\":\"25\",\"len_z\":\"9.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":11281.25},\"study.Desk.1.size30x47x18.7x0x1x0.obj\":{\"category\":\"study\",\"name\":\"Desk\",\"order\":\"1\",\"obj\":\"study.Desk.1.size30x47x18.7x0x1x0.obj\",\"mtl\":\"study.Desk.1.size30x47x18.7x0x1x0.mtl\",\"len_x\":\"30\",\"len_y\":\"47\",\"len_z\":\"18.7\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":26367},\"study.Drawers.size28.75x31.0x16.25x0x1x0.obj\":{\"category\":\"study\",\"name\":\"Drawers\",\"order\":33,\"obj\":\"study.Drawers.size28.75x31.0x16.25x0x1x0.obj\",\"mtl\":\"study.Drawers.size28.75x31.0x16.25x0x1x0.mtl\",\"len_x\":\"28.75\",\"len_y\":\"31.0\",\"len_z\":\"16.25\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14482.8125},\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.obj\":{\"category\":\"study\",\"name\":\"File-Cabinet-(large)\",\"order\":33,\"obj\":\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.obj\",\"mtl\":\"study.File-Cabinet-(large).size50.8x15.8x17.3x0x1x0.mtl\",\"len_x\":\"50.8\",\"len_y\":\"15.8\",\"len_z\":\"17.3\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":13885.672},\"study.File-Cabinet-(small).size26x15.56x16x0x1x0.obj\":{\"category\":\"study\",\"name\":\"File-Cabinet-(small)\",\"order\":33,\"obj\":\"study.File-Cabinet-(small).size26x15.56x16x0x1x0.obj\",\"mtl\":\"study.File-Cabinet-(small).size26x15.56x16x0x1x0.mtl\",\"len_x\":\"26\",\"len_y\":\"15.56\",\"len_z\":\"16\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6472.96},\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\":{\"category\":\"study\",\"name\":\"Office-Chair\",\"order\":\"2\",\"obj\":\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.obj\",\"mtl\":\"study.Office-Chair.2.size39.0x20.0x19.0x0x1x0u.mtl\",\"len_x\":\"39.0\",\"len_y\":\"20.0\",\"len_z\":\"19.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":14820},\"study.PC.size12.3x6.6x15x0x1x0.obj\":{\"category\":\"study\",\"name\":\"PC\",\"order\":33,\"obj\":\"study.PC.size12.3x6.6x15x0x1x0.obj\",\"mtl\":\"study.PC.size12.3x6.6x15x0x1x0.mtl\",\"len_x\":\"12.3\",\"len_y\":\"6.6\",\"len_z\":\"15\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":1217.7},\"kitchen.Bar-Stool.size30.8x25.4x25.13x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Bar-Stool\",\"order\":33,\"obj\":\"kitchen.Bar-Stool.size30.8x25.4x25.13x0x1x0.obj\",\"mtl\":\"kitchen.Bar-Stool.size30.8x25.4x25.13x0x1x0.mtl\",\"len_x\":\"30.8\",\"len_y\":\"25.4\",\"len_z\":\"25.13\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":19659.701599999997},\"kitchen.Kitchen-Table.size35.75x38x38x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Kitchen-Table\",\"order\":33,\"obj\":\"kitchen.Kitchen-Table.size35.75x38x38x0x1x0.obj\",\"mtl\":\"kitchen.Kitchen-Table.size35.75x38x38x0x1x0.mtl\",\"len_x\":\"35.75\",\"len_y\":\"38\",\"len_z\":\"38\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":51623},\"kitchen.Large-Fridge.2.size72x36x36x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Large-Fridge\",\"order\":\"2\",\"obj\":\"kitchen.Large-Fridge.2.size72x36x36x0x1x0.obj\",\"mtl\":\"kitchen.Large-Fridge.2.size72x36x36x0x1x0.mtl\",\"len_x\":\"72\",\"len_y\":\"36\",\"len_z\":\"36\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":93312},\"kitchen.Microwave.size12.8x21.8x11.8x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Microwave\",\"order\":33,\"obj\":\"kitchen.Microwave.size12.8x21.8x11.8x0x1x0.obj\",\"mtl\":\"kitchen.Microwave.size12.8x21.8x11.8x0x1x0.mtl\",\"len_x\":\"12.8\",\"len_y\":\"21.8\",\"len_z\":\"11.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3292.6720000000005},\"kitchen.Small-Fridge.size68x25x29x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Small-Fridge\",\"order\":33,\"obj\":\"kitchen.Small-Fridge.size68x25x29x0x1x0.obj\",\"mtl\":\"kitchen.Small-Fridge.size68x25x29x0x1x0.mtl\",\"len_x\":\"68\",\"len_y\":\"25\",\"len_z\":\"29\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":49300},\"kitchen.Stove.1.size48x32x32x0x1x0.obj\":{\"category\":\"kitchen\",\"name\":\"Stove\",\"order\":\"1\",\"obj\":\"kitchen.Stove.1.size48x32x32x0x1x0.obj\",\"mtl\":\"kitchen.Stove.1.size48x32x32x0x1x0.mtl\",\"len_x\":\"48\",\"len_y\":\"32\",\"len_z\":\"32\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":49152},\"garage.Bike-(Mountain).size42x22x70x0x1x0u.obj\":{\"category\":\"garage\",\"name\":\"Bike-(Mountain)\",\"order\":33,\"obj\":\"garage.Bike-(Mountain).size42x22x70x0x1x0u.obj\",\"mtl\":\"garage.Bike-(Mountain).size42x22x70x0x1x0u.mtl\",\"len_x\":\"42\",\"len_y\":\"22\",\"len_z\":\"70\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":64680},\"garage.Bike-(Road).size40x18x68x0x1x0u.obj\":{\"category\":\"garage\",\"name\":\"Bike-(Road)\",\"order\":33,\"obj\":\"garage.Bike-(Road).size40x18x68x0x1x0u.obj\",\"mtl\":\"garage.Bike-(Road).size40x18x68x0x1x0u.mtl\",\"len_x\":\"40\",\"len_y\":\"18\",\"len_z\":\"68\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":48960},\"garage.Dryer.size38.7x27.5x33.5x0x1x0.obj\":{\"category\":\"garage\",\"name\":\"Dryer\",\"order\":33,\"obj\":\"garage.Dryer.size38.7x27.5x33.5x0x1x0.obj\",\"mtl\":\"garage.Dryer.size38.7x27.5x33.5x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"27.5\",\"len_z\":\"33.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35652.375},\"garage.Freezer.size42.1x36x27.5x0x1x0.obj\":{\"category\":\"garage\",\"name\":\"Freezer\",\"order\":33,\"obj\":\"garage.Freezer.size42.1x36x27.5x0x1x0.obj\",\"mtl\":\"garage.Freezer.size42.1x36x27.5x0x1x0.mtl\",\"len_x\":\"42.1\",\"len_y\":\"36\",\"len_z\":\"27.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":41679.00000000001},\"garage.Generator.2.size15.4x24.5x18.5x0x1x0u.obj\":{\"category\":\"garage\",\"name\":\"Generator\",\"order\":\"2\",\"obj\":\"garage.Generator.2.size15.4x24.5x18.5x0x1x0u.obj\",\"mtl\":\"garage.Generator.2.size15.4x24.5x18.5x0x1x0u.mtl\",\"len_x\":\"15.4\",\"len_y\":\"24.5\",\"len_z\":\"18.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6980.05},\"garage.ladder.size47x18x4x0x1x0.obj\":{\"category\":\"garage\",\"name\":\"ladder\",\"order\":33,\"obj\":\"garage.ladder.size47x18x4x0x1x0.obj\",\"mtl\":\"garage.ladder.size47x18x4x0x1x0.mtl\",\"len_x\":\"47\",\"len_y\":\"18\",\"len_z\":\"4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":3384},\"garage.lawnmower.size41x22x61x0x1x0u.obj\":{\"category\":\"garage\",\"name\":\"lawnmower\",\"order\":33,\"obj\":\"garage.lawnmower.size41x22x61x0x1x0u.obj\",\"mtl\":\"garage.lawnmower.size41x22x61x0x1x0u.mtl\",\"len_x\":\"41\",\"len_y\":\"22\",\"len_z\":\"61\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":55022},\"garage.Tool-Box.1.size31.25x28.1x19.2x0x1x0.obj\":{\"category\":\"garage\",\"name\":\"Tool-Box\",\"order\":\"1\",\"obj\":\"garage.Tool-Box.1.size31.25x28.1x19.2x0x1x0.obj\",\"mtl\":\"garage.Tool-Box.1.size31.25x28.1x19.2x0x1x0.mtl\",\"len_x\":\"31.25\",\"len_y\":\"28.1\",\"len_z\":\"19.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":16860},\"garage.Washer.size38.7x27.5x33.5x0x1x0.obj\":{\"category\":\"garage\",\"name\":\"Washer\",\"order\":33,\"obj\":\"garage.Washer.size38.7x27.5x33.5x0x1x0.obj\",\"mtl\":\"garage.Washer.size38.7x27.5x33.5x0x1x0.mtl\",\"len_x\":\"38.7\",\"len_y\":\"27.5\",\"len_z\":\"33.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":35652.375},\"misc.Box-(Large).size18.0x18.0x24.0x0x1x0.obj\":{\"category\":\"misc\",\"name\":\"Box-(Large)\",\"order\":33,\"obj\":\"misc.Box-(Large).size18.0x18.0x24.0x0x1x0.obj\",\"mtl\":\"misc.Box-(Large).size18.0x18.0x24.0x0x1x0.mtl\",\"len_x\":\"18.0\",\"len_y\":\"18.0\",\"len_z\":\"24.0\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":7776},\"misc.Box-(Medium).size18.0x18.0x16.0x1x1x1.obj\":{\"category\":\"misc\",\"name\":\"Box-(Medium)\",\"order\":33,\"obj\":\"misc.Box-(Medium).size18.0x18.0x16.0x1x1x1.obj\",\"mtl\":\"misc.Box-(Medium).size18.0x18.0x16.0x1x1x1.mtl\",\"len_x\":\"18.0\",\"len_y\":\"18.0\",\"len_z\":\"16.0\",\"rot_x\":\"1\",\"rot_y\":\"1\",\"rot_z\":\"1\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":5184},\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\":{\"category\":\"misc\",\"name\":\"Box-(Small)\",\"order\":33,\"obj\":\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.obj\",\"mtl\":\"misc.Box-(Small).size12.5x12.5x16.0x1x1x1.mtl\",\"len_x\":\"12.5\",\"len_y\":\"12.5\",\"len_z\":\"16.0\",\"rot_x\":\"1\",\"rot_y\":\"1\",\"rot_z\":\"1\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":2500},\"misc.Floor-Fan.10.size22.5x22.5x5.4x0x1x0.obj\":{\"category\":\"misc\",\"name\":\"Floor-Fan\",\"order\":\"10\",\"obj\":\"misc.Floor-Fan.10.size22.5x22.5x5.4x0x1x0.obj\",\"mtl\":\"misc.Floor-Fan.10.size22.5x22.5x5.4x0x1x0.mtl\",\"len_x\":\"22.5\",\"len_y\":\"22.5\",\"len_z\":\"5.4\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":2733.75},\"misc.Patio-Chairs-(pair).6.size49.5x24.0x23.2x0x1x0u.obj\":{\"category\":\"misc\",\"name\":\"Patio-Chairs-(pair)\",\"order\":\"6\",\"obj\":\"misc.Patio-Chairs-(pair).6.size49.5x24.0x23.2x0x1x0u.obj\",\"mtl\":\"misc.Patio-Chairs-(pair).6.size49.5x24.0x23.2x0x1x0u.mtl\",\"len_x\":\"49.5\",\"len_y\":\"24.0\",\"len_z\":\"23.2\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":27561.6},\"misc.Patio-Lounger.7.size44.5x9.2x23.8x0x1x0u.obj\":{\"category\":\"misc\",\"name\":\"Patio-Lounger\",\"order\":\"7\",\"obj\":\"misc.Patio-Lounger.7.size44.5x9.2x23.8x0x1x0u.obj\",\"mtl\":\"misc.Patio-Lounger.7.size44.5x9.2x23.8x0x1x0u.mtl\",\"len_x\":\"44.5\",\"len_y\":\"9.2\",\"len_z\":\"23.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":9743.72},\"misc.Patio-Set.4.size33.9x48.1x56.8x0x1x0u.obj\":{\"category\":\"misc\",\"name\":\"Patio-Set\",\"order\":\"4\",\"obj\":\"misc.Patio-Set.4.size33.9x48.1x56.8x0x1x0u.obj\",\"mtl\":\"misc.Patio-Set.4.size33.9x48.1x56.8x0x1x0u.mtl\",\"len_x\":\"33.9\",\"len_y\":\"48.1\",\"len_z\":\"56.8\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":92617.51199999999},\"misc.Suitcase.size29.8x18.4x11.1x0x1x0.obj\":{\"category\":\"misc\",\"name\":\"Suitcase\",\"order\":33,\"obj\":\"misc.Suitcase.size29.8x18.4x11.1x0x1x0.obj\",\"mtl\":\"misc.Suitcase.size29.8x18.4x11.1x0x1x0.mtl\",\"len_x\":\"29.8\",\"len_y\":\"18.4\",\"len_z\":\"11.1\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"1\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":6086.351999999999},\"misc.Treadmill.9.size54x23x18.5x0x1x0u.obj\":{\"category\":\"misc\",\"name\":\"Treadmill\",\"order\":\"9\",\"obj\":\"misc.Treadmill.9.size54x23x18.5x0x1x0u.obj\",\"mtl\":\"misc.Treadmill.9.size54x23x18.5x0x1x0u.mtl\",\"len_x\":\"54\",\"len_y\":\"23\",\"len_z\":\"18.5\",\"rot_x\":\"0\",\"rot_y\":\"1\",\"rot_z\":\"0\",\"stackable\":\"0\",\"x_pos\":0,\"y_pos\":0,\"z_pos\":0,\"vol\":22977}}';\tvar objXref = $.parseJSON(objXrefTemp);\n\tvar objByFileName = $.parseJSON(objByFileNameTemp);\n\tvar prePacked = $.parseJSON(presetsTemp);\n\t\t\n\tvar overCat = false;\n\tfunction loadNiceSelect( url, callback ) {\n        var script = document.createElement( \"script\" );\n        script.type = \"text\/javascript\";\n        if(script.readyState) { \/\/ only required for IE\n            script.onreadystatechange = function() {\n              if ( script.readyState === \"loaded\" || script.readyState === \"complete\" ) {\n                script.onreadystatechange = null;\n                try { jQuery('select').niceSelect(); } catch(e){ console.error(e); }\n              }\n            };\n        } else {  \/\/Others\n            script.onload = function() { try { jQuery('select').niceSelect(); } catch(e){ console.error(e); }; };\n        }\n        \n        script.src = 'https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/js\/jquery.nice-select.js';\n        document.getElementsByTagName( \"head\" )[0].appendChild( script );\n    }\n    \n\t$(document).ready(function() {\n        loadNiceSelect();\n\t\tsettings = {};\n\t\tif(render_ss === true) settings['r_ss'] = true; else settings['r_ss'] = false;\n\t\tif(render_su === true) settings['r_su'] = true; else settings['r_su'] = false;\n\t\tif(render_ma === true) settings['r_ma'] = true; else settings['r_ma'] = false;\n\t\tif(render_aa === true) settings['r_aa'] = true; else settings['r_aa'] = false;\n\t\tif(render_gr === true) settings['r_gr'] = true; else settings['r_gr'] = false;\n\t\tif(render_tx === true) settings['r_tx'] = true; else settings['r_tx'] = false;\n\t\tif(render_lp === true) settings['r_lp'] = true; else settings['r_lp'] = false;\n\t\t\n\t\t$.each(settings, function(i,v) {\n\t\t\t\n\t\t\t$('#'+i).prop('checked',v);\n\t\t});\n\t\t\n\t\tif(use_canvas === true) {\n\t\t\t$('.s_aa, .s_ss, .s_gr, .s_sur, .s_tx').addClass('hide');\n\t\t}\n\t\n\t\n\t\t\/\/ setup render container\n\t\t$(\".renderDiv\").height(canvasHeight);\t\n\t\t\n\t\t\/\/add scrollbar\n\t\tpositionScroller();\n\t\t \n\t\t\/\/prevCats\n\t\tscroll_ypos = 0;\n\t\t\n\t\t\t\t\n\t\t$('.nextCats').click( function() {\n\t\t\t\n\t\t\tvar s_container = $(this).parent();\t\t\t\n\t\t\tvar s_viewport = $(s_container).find('.scroller_viewport');\t\t\t\n\t\t\tvar s_items = $(s_viewport).find('.scroller_item');\t\t\t\n\t\t\tvar s_scrollWidth = $(s_items).eq(0).outerWidth(true);\n\t\t\tvar s_catsWidth  = $(s_viewport).width();\n\t\t\tvar s_pageWidth = $(s_container).innerWidth(); \n\t\t\t\n\t\t\tvar s_minY = 0;\n\t\t\tvar s_maxY =  s_pageWidth - s_catsWidth;\n\t\t\t\n\t\t\tvar s_centerOffset = ( s_scrollWidth - $(s_items).eq(0).innerWidth() ) \/ 2 ;\n\t\t\t\n\t\t\ts_parent_ypos = parseInt($(s_viewport).css('left')); \n\t\t\ts_scroll_ypos = s_parent_ypos - s_scrollWidth  - s_centerOffset;;\n\t\t\t\n\t\t\tif(s_scroll_ypos > s_minY ) {\n\t\t\t\t$(s_container).find('.prevCats').hide();\n\t\t\t\ts_scroll_ypos = s_minY;\n\t\t\t} else {\n\t\t\t\t$(s_container).find('.prevCats').show();\n\t\t\t}\n\t\t\t\n\t\t\tif(s_scroll_ypos < s_maxY ) { \n\t\t\t\t$(s_container).find('.nextCats').hide();\n\t\t\t\ts_scroll_ypos = s_maxY;\n\t\t\t} else {\n\t\t\t\t$(s_container).find('.nextCats').show();\n\t\t\t}\n\t\t\n\t\t\t$(s_viewport).stop().animate({ left: s_scroll_ypos },400);\n\t\t});\n\t\t\n\t\t\n\t\t$('.prevCats').click( function() {\n\t\t\t\n\t\t\tvar s_container = $(this).parent();\t\t\t\n\t\t\tvar s_viewport = $(s_container).find('.scroller_viewport');\t\n\t\t\tvar s_items = $(s_viewport).find('.scroller_item');\t\t\t\n\t\t\tvar s_scrollWidth = $(s_items).eq(0).outerWidth(true);\n\t\t\t\n\t\t\tvar s_catsWidth  = $(s_viewport).width();\n\t\t\tvar s_pageWidth = $(s_container).innerWidth(); \n\t\t\t\n\t\t\tvar s_centerOffset = ( s_scrollWidth - $(s_items).eq(0).innerWidth() ) \/ 2 ;\n\t\t\t\n\t\t\tvar s_minY = 0;\n\t\t\tvar s_maxY =  s_pageWidth - s_catsWidth;\n\t\t\t\n\t\t\ts_parent_ypos = parseInt($(s_viewport).css('left'));\n\t\t\ts_scroll_ypos = s_parent_ypos + s_scrollWidth + s_centerOffset;\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tif(s_scroll_ypos > s_minY ) {\n\t\t\t\t$(s_container).find('.prevCats').hide();\n\t\t\t\ts_scroll_ypos = s_minY;\n\t\t\t} else {\n\t\t\t\t$(s_container).find('.prevCats').show();\n\t\t\t}\n\t\t\t\n\t\t\tif(s_scroll_ypos < s_maxY ) { \n\t\t\t\t$(s_container).find('.nextCats').hide();\n\t\t\t\ts_scroll_ypos = s_maxY;\n\t\t\t} else {\n\t\t\t\t$(s_container).find('.nextCats').show();\n\t\t\t}\n\t\t\t\t\n\t\t\t$(s_viewport).stop().animate({ left: s_scroll_ypos },400);\n\t\t});\n\t\t\n\t\t\n\t\t$('.resetView').click(function() { \n\t\t\n\t\t\tcontrols.lat = 0;\n\t\t\tcontrols.lon = 0;\n\t\t\tcontrols.phi = 0;\n\t\t\tcontrols.theta = 0;\n\t\t\t\n\t\t\tcontrols._object.position.x = camStartX;\n\t\t\tcontrols._object.position.y = camStartY;\n\t\t\tcontrols._object.position.z = camStartZ;\n\t\t\t\t\t\t\n\t\t});\n\t\t\n\t\t$('.orbitView').click(function() { \n\t\t\torbit=true;\n\t\t\ttto = 6;\n\t\t})\n\t\t\n\t\t$('.moveCamera').click( function(){\n\t\t\t\t_calcModal = \"m_camera\";\n\t\t\t\tdoModalSwap(this);\n\t\t}) \n\t\t\n\t\t$('.moveItem').click( function(){\n\t\t\t\t_calcModal = \"m_item\";\n\t\t\t\tdoModalSwap(this);\n\t\t}) \n\t\t\n\t\t$('.addItem').click( function(){\n\t\t\t\t_calcModal = \"a_item\";\n\t\t\t\tdoModalSwap(this);\n\t\t}) \n\t\t\n\t\t\n\t\t$('.presetCardSelector').click(function() {\n\t\t\t\n\t\t\tif($(this).hasClass('activeContentMode')) return;\n\t        \t\t\t    sel_id = $(this).attr('id');\n\t\t\t\t\t\tif(sel_id === \"select_stored\" ) {\n\t\t\t\tpreset = '';\n\t\t\t\t$('.presetContainer, .customContent, .catDivItems').slideUp('fast'); \n\t\t\t\t$('.select_stored').slideDown('fast');\n\t\t\t\t\n\t\t\t} else if(sel_id === \"select_custom\" ) {\n\t\t\t\tpreset = 'empty';\n\t\t\t\t$('.presetContainer, .select_stored').slideUp('fast');\n\t\t\t\t$('.customContent, .activeCat').slideDown('fast');\n\t\t\t} else {\n\t\t\t\tpreset = '';\n\t\t\t\t$('.customContent, .select_stored, .catDivItems').slideUp('fast');\n\t\t\t\t$('.presetContainer').slideDown('fast');\n\t\t\t}\n\t\t\t\n\t\t\t$('.activeContentMode').removeClass('activeContentMode');\n\t\t\t$(this).addClass('activeContentMode');\n\t\t\t\n\t\t\tpositionScroller();\n\t\t\t\n\t\t})\n\t\t\t\n\t\t$('.presetCard').click( function() {\n\t\t\t\n\t\t\t\/\/if($(this).hasClass('activePreset')) return;\n\t\t\t\n\t\t\tpre_id = $(this).attr('id');\n\t\t\tpreset = pre_id.replace('pre_','');\n\t\t\t\n\t\t\t$('.activePreset').removeClass('activePreset');\n\t\t\t$(this).addClass('activePreset');\n\t\t\t\n\t\t\tif(preset !== \"empty\") {\n\t\t\t\t$('.customContent').slideUp('fast');\n\t\t\t\t$('#contentBuild').click();\n\t\t\t} else {\n\t\t\t\t$('.customContent').slideDown('fast');\n\t\t\t}\n\t\t});\n\n\t\t\/\/ set initial mode\n\t\tif ($('.addItem').hasClass('selectedMode')){ \/\/ Prevent duplicate calls due to caching\n\t\t\t$('.addItem').click();\n\t\t}\n\t\t\n\t\t\/\/catDivItems\n\t\t$('.catDivTitle').click(function(){\n\t\t\tparClass = $(this).parent().attr('class');\n\t\t\t\n\t\t\tparClass = parClass.replace('catDivItems','');\n\t\t\tparClass = parClass.replace('activeCat','');\n\t\t\tparCat_temp = parClass.split('_');\n\t\t\tparCat = parCat_temp[1];\n\t\t\t\n\t\t\t$('#catDiv_'+parCat).parent().click();\n\t\t\t\n\t\t});\n\t\t\t\n\t\t$('.catDiv').click( function(){\n\t\t\t\n\t\t\tpreset = 'empty'\n\t\t\t\n\t\t\t\/\/$('.activeCatCont').removeClass('activeCatCont');\n\t\t\t\n\t\t\t\/\/ get category button position and id\n\t\t\tcatParent = $(this).find('.cat_lab');\n\t\t\t\n\t\t\tvar id= $(catParent).attr('id');\n\t\t\tid = id.replace('catDiv_','');\n\t\t\t\n\t\t\t\/\/ hide all item containers\n\t\t\t\/\/$('.catDivItems').slideUp('fast');\n\t\t\t\n\t\t\t\/\/ get selected category's items\n\t\t\tcatSel = $('.catItems_'+id);\n\t\t\t\n\t\t\t\/\/$('.cat_lab .fa-rotate-180').removeClass('fa-rotate-180');\n\t\t\t\n\t\t\tif( !catSel.hasClass('activeCat') ) {\n\t\t\t\t$(this).addClass('activeCatCont');\n\t\t\t\t$(this).removeClass('activeCat');\n\t\t\t\t$(catParent).find('.oc_ico').addClass('fa-rotate-180');\n\t\t\t\tcatSel.addClass('activeCat').slideDown('fast'); \n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t$(catParent).find('.oc_ico').removeClass('fa-rotate-180');\n\t\t\t\t$(this).removeClass('activeCatCont');\n\t\t\t\t$(this).removeClass('activeCat');\n\t\t\t\tcatSel.removeClass('activeCat').slideUp('fast'); \n\t\t\t}\n\t\t})\t\n\t\t\n\t\t\n\t\t\/*\n\t\t$('.catDiv').click( function(){\n\t\t\t\n\t\t\tpreset = 'empty'\n\t\t\t\n\t\t\t$('.activeCatCont').removeClass('activeCatCont');\n\t\t\t\n\t\t\t\/\/ get category button position and id\n\t\t\tcatParent = $(this).find('.cat_lab');\n\t\t\t\n\t\t\tvar catWidth = $(catParent).outerWidth();\n\t\t\tvar catPosOff = $(catParent).offset();\n\t\t\tvar catPosPos = $('.content_selector').offset();\n\t\t\tvar catPosPos2 = $('.infoTop').offset();\n\t\t\tvar catDivPad = ( $(this).outerWidth(true) - $(this).innerWidth() ) \/ 2;\n\t\t\t\n\t\t\tvar thumbHeight = $('.catThumb').outerHeight();\n\t\t\t\n\t\t\tcatPosOff.top = catPosOff.top  + $(catParent).outerHeight() + thumbHeight;\n\t\t\tcatPosOff.left = catPosOff.left - catPosPos.left + catDivPad;\n\t\t\t\n\t\t\tvar id= $(catParent).attr('id');\n\t\t\tid = id.replace('catDiv_','');\n\t\t\t\n\t\t\t\/\/ hide all item containers\n\t\t\t$('.catDivItems').hide();\n\t\t\t\n\t\t\t\/\/ get selected category's items\n\t\t\tcatSel = $('.catItems_'+id);\n\t\t\t\n\t\t\t$('.catContainer').addClass('addYOverflow').removeClass('noYOverflow');\n\t\t\t$('.cat_lab .fa-rotate-180').removeClass('fa-rotate-180');\n\t\t\t\n\t\t\tif( !catSel.hasClass('activeCat') ) {\n\t\t\t\t$(this).addClass('activeCatCont');\n\t\t\t\t$('.activeCat').removeClass('activeCat');\n\t\t\t\t$(catParent).find('.oc_ico').addClass('fa-rotate-180');\n\t\t\t\tcatSel.css({'top': catPosOff.top , 'left': catPosOff.left , 'width': catWidth }).addClass('activeCat').slideDown('fast'); \n\t\t\t\t\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t$('.cat_lab .fa-rotate-180').removeClass('fa-rotate-180');\n\t\t\t\t$('.activeCat').removeClass('activeCat');\n\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t})\t\n\t\t*\/\t\n\t\t\n\t\t\n\t\t $('body').click( function(e){\n\t\t\t\n\t\t\tvar buttCat = $(\".cat_lab, .catDivItems, .catDiv\");\n\t\t\t\n\t\t\tif (!buttCat.is(e.target) \/\/ if the target of the click isn't the container...\n\t\t\t\t&& buttCat.has(e.target).length === 0) \/\/ ... nor a descendant of the container\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\t\/\/$('.catContainer').removeClass('addYOverflow').addClass('noYOverflow');\n\t\t\t\t\t\t\/\/$('.activeCat').removeClass('activeCat');\n\t\t\t\t\t\t\/\/$('.cat_lab .fa-rotate-180').removeClass('fa-rotate-180');\n\t\t\t\t\t\t\/\/$('.catDivItems').hide();\n\t\t\t\t\t }\n\t\t});\n\t\t\n\t\t$('.oc_setting_details').click( function(){\n\t\t\t\n\t\t\tif( $('.oc_setting_details .oc_ico').hasClass('fa-rotate-180') ) {\n\t\t\t    $('.oc_setting_details .oc_ico').removeClass( \"fa-rotate-180\" );\n\t\t\t    $('.setting_details').hide();\n\t\t\t}else{\n\t\t\t    $('.oc_setting_details .oc_ico').toggleClass( \"fa-rotate-180\" );\n\t\t\t    $('.setting_details').show();\n\t\t\t}\n\n\t\t});\n\t\t\n\n\t\t\n\t\t$('.unitDetsToggle').click( function(){\n\t\t\t$('.unitDets').slideToggle();\n\t\t\t$('.unitDetsToggle .oc_ico').toggleClass( \"fa-rotate-180\" );\n\t\t\t\n\t\t})\n\t\t\n\t\t$('.reset_div').click(function() {\n\t\t\t$('.itemsSelect').val(\"0\");\n\t\t});\n\n\t\t$('#resetBuild').click(function(){\n\t\t\t$('.catDivItems .catInputContainer .list li[data-value=\"0\"]').click(); \/\/ Reset all items\n\t\t\t$('#contentBuild').click(); \/\/ Click calculate button to reset render\n\t\t\t$('.recommendedUnitDiv, .stepTitle, .renderDiv, .packErrorDisplay').hide(); \/\/ Hide render and result elements\n\t\t});\n\t\t\n\t $(document).ready(function() {\n\t\t$('#mySelect').change( function() { \n\t\t\tif (waiting === true) return;\n\t\t\t$('#load_scrim').show();\n\t\t\tclearInterval(dropObj);\n\t\t\twaiting = true;\n\t\t\tchangeSettings = false;\n\t\t\tcanDoDrop = false;\n\t\t\t\n\t\t\tif( $(this).hasClass('settingSubmit') ) {\n\t\t\t\tchangeSettings = true;\n\t\t\t}\n\t\t\t\n\t\t\t\/\/$('.catDivItems').hide();\n\t\t\t\n\t\t\tob3d =[];\n\t\t\tpacking = [];\n\t\t\titemsToPack =[];\n\t\t\tloadOrder =[];\n\t\t\titem_count = 0;\n\t\t\tiVol = 0;\n\t\t\t\n\t\t\tfill_perc = $('#fillPercent').val()\n    \t\tpresets_2 = '';\n    \t\t\/\/ using custom items\n    \t\t\t\n    \t\tif (presets_2 === 'empty')  preset = 'empty';\t\t\t\n\t\t\t\/\/ using custom items\n\t\t\tif( preset === 'empty' ) {\n\n\t\t\t\t$('.itemsSelect').each( function(i,v) {\n\t\t\t\t\tif($(this).val() > 0) {\n\t\t\t\t\t\t\n\t\t\t\t\t\titem_id = $(this).attr('id');\t\n\t\t\t\t\t\txRefs = item_id.split('_');\n\t\t\t\t\t\tobj_cat = xRefs[1];\n\t\t\t\t\t\tobj_index = xRefs[2];\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tfor (j = 1; j <= parseInt($(this).val()); j++) {\n\t\t\t\t\t\t\titem_count++;\n\t\t\t\t\t\t\tiVol += objXref[obj_cat][obj_index]['vol']\n\t\t\t\t\t\t\titMem = $.extend(true,{}, objXref[obj_cat][obj_index] );\n\t\t\t\t\t\t\tit=objXref[obj_cat][obj_index]['obj'];\n\t\t\t\t\t\t\tpacking.push(it); \n\t\t\t\t\t\t\titemsToPack.push(itMem); \n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\/\/ using preset\n\t\t\t} else {\n\n\t\t\t\t$.each( prePacked[preset].contents, function(i,v) {\n\t\t\t\t\titem_count++;\n\t\t\t\t\t\n\t\t\t\t\titMem = $.extend(true,{}, objByFileName[v] );\n\t\t\t\t\t\n\t\t\t\t\tiVol += itMem['vol']\n\t\t\t\t\tit=v;\n\t\t\t\t\tpacking.push(it); \n\t\t\t\t\titemsToPack.push(itMem); \n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tfill_perc = \"preset\";\n\t\t\t}\n\t\t\t\n\t\t\tpackingError =\"\";\n\t\t\t$('.packErrorDisplay').hide();\n\t\t\t\n\t\t\tif(packing.length < 1) {\n\t\t\t\tpackingError += 'Please select some items';\n\t\t\t}\n\t\t\t\t  \n\t\t\tif(iVol > 11059200) {\n\t\t\t\tpackingError += \"Too many items selected. \";\n\t\t\t}\n\t\t\t\n\t\t\ttestMe = packing;\n\t\t\tnewPositions=[];\n\t\t\t\n\t\t\t\/\/empty renderere\n\t\t\t$('.renderDiv').find('canvas').remove();\n\t\t\t\n\t\t\trender_ss = $('#r_ss').is(\":checked\");\n\t\t\trender_su = $('#r_su').is(\":checked\");\n\t\t\trender_aa = $('#r_aa').is(\":checked\");\n\t\t\trender_ma = $('#r_ma').is(\":checked\");\n\t\t\trender_gr = $('#r_gr').is(\":checked\");\n\t\t\trender_tx = $('#r_tx').is(\":checked\");\n\t\t\trender_lp = $('#r_lp').is(\":checked\");\t\n\t\t\t\t\n\t\t\tif(packingError !== \"\" && !changeSettings) {\n\t\t\t\t$('.packErrorDisplay').html(packingError).slideDown();\n\t\t\t\twaiting = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(packingError === \"\") {\t \n    \t\t\t    var property_id = document.getElementById(\"mySelect\") && document.getElementById(\"mySelect\").value ? document.getElementById(\"mySelect\").value : 0;\n\t\t\t\t\t\n\t\t\t\t\tvar afterBuildFunc = function(){\n\t\t\t\t\t\twaiting = false;\n    \t\t\t\t\t\n    \t\t\t\t\tif(data < 0) {\n    \t\t\t\t\t\t\/\/ fail\n    \t\t\t\t\t\tpackingError += \"Couldn't connect to server. \";\n    \t\t\t\t\t} else {\n    \t\t\t\t\t\t\/\/ success\n    \t\t\t\t\t\tdata_obj = $.parseJSON(data);\n    \t\t\t\t\t\t_error = data_obj['error'];\n    \t\t\t\t\t\t\n                            if(_error !== \"\") {\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t\t$('.packErrorDisplay').html(packingError).slideDown(); \n    \t\t\t\t\t\t\t$('.m_virtualUnit').slideUp('fast');\n\n    \t\t\t\t\t\t\treturn true;\n    \t\t\t\t\t\t} \n    \t\t\t\t\t\t$(\".update_url\").attr(\"href\", \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/rent-storage?max_size=99999&lan=en&min_size=\" + data_obj['unit_data']['dcWidth'] * data_obj['unit_data']['dcLength'] + \"&property_id=\"+property_id + \"&is_calc=1\");\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tunit_data=[];\t\t\t\t\t\t\t\n    \t\t\t\t\t\tunit_data = data_obj['unit_data'];\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tnewPositions=[];\t\t\t\t\t\t\t\n    \t\t\t\t\t\tnewPositions = (typeof(data_obj['positions'][0]['items'][0]['x_origin_in_bin']) != \"undefined\") ? data_obj['positions'] : [];\n    \t\t\t\t\t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\/\/ calculate positions\n    \t\t\t\t\t\t\n    \t\t\t\t\t\t\/\/console.log(\"testing\"+typeof(data_obj['positions'][0]['x_origin_in_bin']) != \"undefined\");\n    \t\t\t\t\t\t\n    \t\t\t\t\t    if(newPositions.length == 0) {\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Pleae select some items.\";\n    \t\t\t\t\t\t}else if(newPositions.length > 0 && item_count > newPositions[0]['items'].length ) {\n    \t\t\t\t\t\t\t\/\/ something's wrong\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t} else if(_error !== \"\") {\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t} else if( packingError === \"\" ) {\n\t\t\t\t\t\t\t\t$('.packErrorDisplay').html(packingError).slideUp('fast');\n\t\t\t\t\t\t\t\t$('.m_virtualUnit').slideDown('fast');\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/ all's well that ends well\n    \t\t\t\t\t\t\n    \t\t\t\t\t\t\t$.each(newPositions[0]['items'], function ( i , v ) {\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/\/ check if rotated around y\n    \t\t\t\t\t\t\t\tif(v['orig_size'] == v['sp_size']) {\n    \t\t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['rot'] = 0;\n    \t\t\t\t\t\t\t\t} else {\n    \t\t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['rot'] = 1;\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/\/ check if artificial full-height item\t\t\t\t\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/*actuallHeight = parseFloat(objByFileName[v['fileName']]['len_x']);\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\tif( actuallHeight > data_obj['presetHeight']) {\n    \t\t\t\t\t\t\t\t\ttempYpos =( ( data_obj['unit_data']['dcHeight'] * 12) - actuallHeight ) \/ 2 \n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos\/\/ - data_obj['height_offset']  ; \n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\telse if( v['fileName'].search(\"x0u\") >= 0 || v['fileName'].search(\"x1u\") >= 0) {\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\ttempYpos = ( ( v['size_2'] - actuallHeight ) \/ 2) ;\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos + 0.5 - data_obj['height_offset']; \n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\telse if( v['fileName'].search(\"x0s\") >= 0 || v['fileName'].search(\"x1s\") >= 0) {\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\ttempYpos = ( ( v['size_2'] - actuallHeight ) \/ 2) ;\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos - 0.5- data_obj['height_offset'];\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\telse {\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - data_obj['height_offset'];\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t*\/\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['x_pos'] = v['x_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['y_pos'] = v['y_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['z_pos'] = v['z_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['origId'] = parseInt(v['id']);\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['dropOrder'] = parseInt(v['dropOrder']);\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/\/ console.log(itemsToPack);\n    \t\t\t\t\t\t\t})\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/update unit card\n    \t\t\t\t\t\t\t$('.containerUnitName').html( unit_data['dcWidth'] + 'x' +  unit_data['dcLength'] + 'Ft');\n                                $('.containerUnitSize').html( unit_data['dcWidth'] + 'W'+'x ' + unit_data['dcLength'] + 'L'+' x ' +  unit_data['dcHeight']+'H' );\n\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tvolume = (unit_data['volume']\/1728).toFixed(1);\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t$('.containerUnitVol').html( volume + 'cu. ft.' );\n    \t\t\t\t\t\t\t$('.containerUsedSpace').html( ( (unit_data['filled_volume']\/1728).toFixed(1) ) + ' cu. ft. (' + unit_data['filled_percent'] + '%)' );\n    \t\t\t\t\t\t\t$('.containerItemsPacked').html( item_count );\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tif(preset === \"empty\") {\n    \t\t\t\t\t\t\t\tpresetTitle = 'custom';\n    \t\t\t\t\t\t\t} else {\n    \t\t\t\t\t\t\t\tpresetTitle = preset.replace('_',' ');\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t$('.virtualPreset').html( presetTitle );\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/ trigger grid update\n    \t\t\t\t\t\t\tsentObj = init();\n    \t\t\t\t\t\t\tsq_ft = unit_data['dcWidth'] * unit_data['dcLength'];\n    \t\t\t\t\t\t\tif( $('.incUnits').length > 0) cullUnits(sq_ft);\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/if( $('#v_itemChooser').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\t\/\/if(!firstRun)\n    \t\t\t\t\t\t\t\t\/\/$('#v_itemChooser').click();\n    \t\t\t\t\t\t\t\/\/}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tif( !$('#v_virtualUnit').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\tif(!firstRun)\n    \t\t\t\t\t\t\t\t$('#v_virtualUnit').click();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\ttry { scrollToFormTop( $('.m_virtualUnit').offset().top )   }  catch(err) {};\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/if( !$('#v_recommended').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\t\/\/$('#v_recommended').click();\n    \t\t\t\t\t\t\t\/\/}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tfirstRun = false;\n    \t\t\t\t\t\t}\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tif(packingError !== \"\") {\n    \t\t\t\t\t\t    $('.packErrorDisplay').html(packingError).slideDown(); \n    \t\t\t\t\t\t    $('.m_virtualUnit').slideUp('fast'); \n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar ajaxData = { 'post' : {'model' : 0,'preset': preset ,'action' : 'pack', 'data' :packing, 'fill' : fill_perc , 's_pid': '1512671994.431_2950544_50.89.117.195' ,'define_h': \"8\", 'model_url': '\/storage\/v16382\/iframenetwork\/public_html\/wp-content\/plugins\/3D_calculator\/models',  'external_id': '-1', 'lang': 'en', 'property_id' : property_id ,'locations_total' : 0 } };\n\t\t\t\t\tvar funcData = { 'build' : afterBuildFunc };\n\n\t\t\t\t\tcalc3DloadCalculationsRequest(ajaxData, funcData);\n    \t\t\t}\n\t\t\t});\n\t\t\n\t   \n    \t\t$('#contentBuild, .settingSubmit').click( function() { \n\n    \t\t\tif (waiting === true) return;\n    \t\t\t$('#load_scrim').show();\n    \t\t\tclearInterval(dropObj);\n    \t\t\twaiting = true;\n    \t\t\tchangeSettings = false;\n    \t\t\tcanDoDrop = false;\n    \t\t\t\n    \t\t\tif( $(this).hasClass('settingSubmit') ) {\n    \t\t\t\tchangeSettings = true;\n    \t\t\t}\n    \t\t\t\n    \t\t\t\/\/$('.catDivItems').hide();\n    \t\t\t\n    \t\t\tob3d =[];\n    \t\t\tpacking = [];\n    \t\t\titemsToPack =[];\n    \t\t\tloadOrder =[];\n    \t\t\titem_count = 0;\n    \t\t\tiVol = 0;\n    \t\t\t\n    \t\t\tfill_perc = $('#fillPercent').val()\n    \t\t\t\n    \t\t\t\n    \t\t\tpresets_2 = '';\n    \t\t\t\/\/ using custom items\n    \t\t\t\n    \t\t\tif (presets_2 === 'empty')  preset = 'empty';\n    \t\t\tif( preset === 'empty' ) {\n    \n    \t\t\t\t$('.itemsSelect').each( function(i,v) {\n    \t\t\t\t\tif($(this).val() > 0) {\n    \t\t\t\t\t\t\n    \t\t\t\t\t\titem_id = $(this).attr('id');\t\n    \t\t\t\t\t\txRefs = item_id.split('_');\n    \t\t\t\t\t\tobj_cat = xRefs[1];\n    \t\t\t\t\t\tobj_index = xRefs[2];\n    \t\t\t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\tfor (j = 1; j <= parseInt($(this).val()); j++) {\n    \t\t\t\t\t\t\titem_count++;\n    \t\t\t\t\t\t\tiVol += objXref[obj_cat][obj_index]['vol']\n    \t\t\t\t\t\t\titMem = $.extend(true,{}, objXref[obj_cat][obj_index] );\n    \t\t\t\t\t\t\tit=objXref[obj_cat][obj_index]['obj'];\n    \t\t\t\t\t\t\tpacking.push(it); \n    \t\t\t\t\t\t\titemsToPack.push(itMem); \n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n    \t\t\t\t})\n    \t\t\t\t\n    \t\t\t\/\/ using preset\n    \t\t\t} else {\n    \n    \t\t\t\t$.each( prePacked[preset].contents, function(i,v) {\n    \t\t\t\t\titem_count++;\n    \t\t\t\t\t\n    \t\t\t\t\titMem = $.extend(true,{}, objByFileName[v] );\n    \t\t\t\t\t\n    \t\t\t\t\tiVol += itMem['vol']\n    \t\t\t\t\tit=v;\n    \t\t\t\t\tpacking.push(it); \n    \t\t\t\t\titemsToPack.push(itMem); \n    \t\t\t\t})\n    \t\t\t\t\n    \t\t\t\tfill_perc = \"preset\";\n    \t\t\t}\n    \t\t\t\n    \t\t\n    \t\t\t\n    \t\t\tpackingError =\"\";\n    \t\t\t$('.packErrorDisplay').hide();\n    \t\t\t\n    \t\t\tif(packing.length < 1) {\n    \t\t\t\tpackingError += 'Please select some items';\n    \t\t\t}\n    \t\t\t\t  \n    \t\t\tif(iVol > 11059200) {\n    \t\t\t\tpackingError += \"Too many items selected. \";\n    \t\t\t}\n    \t\t\t\n    \t\t\ttestMe = packing;\n    \t\t\tnewPositions=[];\n    \t\t\t\n    \t\t\t\/\/empty renderere\n    \t\t\t$('.renderDiv').find('canvas').remove();\n    \t\t\t\n    \t\t\trender_ss = $('#r_ss').is(\":checked\");\n    \t\t\trender_su = $('#r_su').is(\":checked\");\n    \t\t\trender_aa = $('#r_aa').is(\":checked\");\n    \t\t\trender_ma = $('#r_ma').is(\":checked\");\n    \t\t\trender_gr = $('#r_gr').is(\":checked\");\n    \t\t\trender_tx = $('#r_tx').is(\":checked\");\n    \t\t\trender_lp = $('#r_lp').is(\":checked\");\t\n    \t\t\t\t\n    \t\t\tif(packingError !== \"\" && !changeSettings) {\n    \t\t\t\t$('.packErrorDisplay').html(packingError).slideDown();\n    \t\t\t\twaiting = false;\n    \t\t\t}\n    \t\t\t\n    \t\t\tif(packingError === \"\") {\t \n    \t\t\t    var property_id = document.getElementById(\"mySelect\") && document.getElementById(\"mySelect\").value ? document.getElementById(\"mySelect\").value : 0;\n\t\t\t\t\t\n\t\t\t\t\tvar afterBuildFunc = function(data){\n\t\t\t\t\t\twaiting = false;\n    \t\t\t\t\t\n    \t\t\t\t\tif(data < 0) {\n    \t\t\t\t\t\t\/\/ fail\n    \t\t\t\t\t\tpackingError += \"Couldn't connect to server. \";\n    \t\t\t\t\t} else {\n    \t\t\t\t\t\t\/\/ success\n    \t\t\t\t\t\n    \t\t\t\t\t\tdata_obj = $.parseJSON(data);\n    \t\t\t\t\t\t_error = data_obj['error'];\n    \t\t\t\t\t\t\n                            if(_error !== \"\") {\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t\t$('.packErrorDisplay').html(packingError).slideDown(); \n    \t\t\t\t\t\t\t$('.m_virtualUnit').slideUp('fast');\n\n    \t\t\t\t\t\t\treturn true;\n    \t\t\t\t\t\t} \n    \t\t\t\t\t\t$(\".update_url\").attr(\"href\", \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/rent-storage?max_size=99999&lan=en&min_size=\" + data_obj['unit_data']['dcWidth'] * data_obj['unit_data']['dcLength'] + \"&property_id=\"+property_id + \"&is_calc=1\");\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tunit_data=[];\t\t\t\t\t\t\t\n    \t\t\t\t\t\tunit_data = data_obj['unit_data'];\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tnewPositions=[];\t\t\t\t\t\t\t\n    \t\t\t\t\t\tnewPositions = (typeof(data_obj['positions'][0]['items'][0]['x_origin_in_bin']) != \"undefined\") ? data_obj['positions'] : [];\n    \t\t\t\t\t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\/\/ calculate positions\n    \t\t\t\t\t\t\n    \t\t\t\t\t\t\/\/console.log(\"testing\"+typeof(data_obj['positions'][0]['x_origin_in_bin']) != \"undefined\");\n    \t\t\t\t\t\t\n    \t\t\t\t\t    if(newPositions.length == 0) {\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Pleae select some items.\";\n    \t\t\t\t\t\t}else if(newPositions.length > 0 && item_count > newPositions[0]['items'].length ) {\n    \t\t\t\t\t\t\t\/\/ something's wrong\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t} else if(_error !== \"\") {\n    \t\t\t\t\t\t\t\/\/ we have an error from the API\n    \t\t\t\t\t\t\tpackingError += \"Oops, looks like we are out of the size you need. Call us so we can help you further.\";\n    \t\t\t\t\t\t} else if( packingError === \"\" ) {\n\t\t\t\t\t\t\t\t$('.packErrorDisplay').html(packingError).slideUp('fast');\n\t\t\t\t\t\t\t\t$('.m_virtualUnit').slideDown('fast');\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/ all's well that ends well\n    \t\t\t\t\t\t\n    \t\t\t\t\t\t\t$.each(newPositions[0]['items'], function ( i , v ) {\n    \t\t\t\t\t\t\t\t\/\/ check if rotated around y\n    \t\t\t\t\t\t\t\tif(v['orig_size'] == v['sp_size']) {\n    \t\t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['rot'] = 0;\n    \t\t\t\t\t\t\t\t} else {\n    \t\t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['rot'] = 1;\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/\/ check if artificial full-height item\t\t\t\t\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/*actuallHeight = parseFloat(objByFileName[v['fileName']]['len_x']);\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\tif( actuallHeight > data_obj['presetHeight']) {\n    \t\t\t\t\t\t\t\t\ttempYpos =( ( data_obj['unit_data']['dcHeight'] * 12) - actuallHeight ) \/ 2 \n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos\/\/ - data_obj['height_offset']  ; \n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\telse if( v['fileName'].search(\"x0u\") >= 0 || v['fileName'].search(\"x1u\") >= 0) {\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\ttempYpos = ( ( v['size_2'] - actuallHeight ) \/ 2) ;\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos + 0.5 - data_obj['height_offset']; \n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\telse if( v['fileName'].search(\"x0s\") >= 0 || v['fileName'].search(\"x1s\") >= 0) {\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\ttempYpos = ( ( v['size_2'] - actuallHeight ) \/ 2) ;\n    \t\t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - tempYpos - 0.5- data_obj['height_offset'];\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\telse {\n    \t\t\t\t\t\t\t\t\tv['y_origin_in_bin'] = v['y_origin_in_bin'] - data_obj['height_offset'];\n    \t\t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\t*\/\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['x_pos'] = v['x_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['y_pos'] = v['y_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['z_pos'] = v['z_origin_in_bin'];\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['origId'] = parseInt(v['id']);\n    \t\t\t\t\t\t\t\titemsToPack [ parseInt(v['id']) ] ['dropOrder'] = parseInt(v['dropOrder']);\n    \t\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\t\/\/ console.log(itemsToPack);\n    \t\t\t\t\t\t\t});\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/update unit card\n    \t\t\t\t\t\t\t$('.containerUnitName').html( unit_data['dcWidth'] + 'x' +  unit_data['dcLength'] + 'Ft');\n                                $('.containerUnitSize').html( unit_data['dcWidth'] + 'W'+'x ' + unit_data['dcLength'] + 'L'+' x ' +  unit_data['dcHeight']+'H' );\n\t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tvolume = (unit_data['volume']\/1728).toFixed(1);\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t$('.containerUnitVol').html( volume + 'cu. ft.' );\n    \t\t\t\t\t\t\t$('.containerUsedSpace').html( ( (unit_data['filled_volume']\/1728).toFixed(1) ) + ' cu. ft. (' + unit_data['filled_percent'] + '%)' );\n    \t\t\t\t\t\t\t$('.containerItemsPacked').html( item_count );\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tif(preset === \"empty\") {\n    \t\t\t\t\t\t\t\tpresetTitle = 'custom';\n    \t\t\t\t\t\t\t} else {\n    \t\t\t\t\t\t\t\tpresetTitle = preset.replace('_',' ');\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t$('.virtualPreset').html( presetTitle );\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/ trigger grid update\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tsentObj = init();\n    \t\t\t\t\t\t\tsq_ft = unit_data['dcWidth'] * unit_data['dcLength'];\n    \t\t\t\t\t\t\tif( $('.incUnits').length > 0) cullUnits(sq_ft);\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/if( $('#v_itemChooser').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\t\/\/if(!firstRun)\n    \t\t\t\t\t\t\t\t\/\/$('#v_itemChooser').click();\n    \t\t\t\t\t\t\t\/\/}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tif( !$('#v_virtualUnit').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\tif(!firstRun)\n    \t\t\t\t\t\t\t\t$('#v_virtualUnit').click();\n    \t\t\t\t\t\t\t}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\ttry { scrollToFormTop( $('.m_virtualUnit').offset().top )   }  catch(err) {};\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\t\/\/if( !$('#v_recommended').hasClass('activeVis') ) {\n    \t\t\t\t\t\t\t\t\/\/$('#v_recommended').click();\n    \t\t\t\t\t\t\t\/\/}\n    \t\t\t\t\t\t\t\n    \t\t\t\t\t\t\tfirstRun = false;\n    \t\t\t\t\t\t}\n    \t\t\t\t\t\t\n    \t\t\t\t\t\tif(packingError !== \"\") {\n    \t\t\t\t\t\t    $('.packErrorDisplay').html(packingError).slideDown(); \n    \t\t\t\t\t\t    $('.m_virtualUnit').slideUp('fast'); \n    \t\t\t\t\t\t}\n    \t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar ajaxData = { 'post' : {'model' : 0,'preset': preset ,'action' : 'pack', 'data' :packing, 'fill' : fill_perc , 's_pid': '1512671994.431_2950544_50.89.117.195' ,'define_h': \"8\", 'model_url': '\/storage\/v16382\/iframenetwork\/public_html\/wp-content\/plugins\/3D_calculator\/models',  'external_id': '-1', 'lang': 'en', 'property_id' : property_id ,'locations_total' : 0 } };\n\t\t\t\t\tvar funcData = { 'build' : afterBuildFunc };\n\n\t\t\t\t\tcalc3DloadCalculationsRequest(ajaxData, funcData);\n    \t\t\t}\n    \t\t})\n\t\t});\n\t\tinit();\n\t\tif(firstRun) animate3d();\n\t\tbindRenderDiv();\n\t\t\n\t\t\/\/set up defaul view\n\t\t\n\t\t$('.visModes').click( function() {\n            if(newPositions.length == 0){\n               \n    \t\t\t$('.packErrorDisplay').html('Please select some items').slideDown(); \n    \t\t\t$('.m_virtualUnit').slideUp('fast');\n\n    \t\t\treturn true;\n            }\n          \tvis_id = $(this).attr('id');\n            vis_id = vis_id.replace('v_','');\n            \n\t\t\t$(this).toggleClass('activeVis');\n\t\t\t\n\t\t\t$('.showVisMode').removeClass('showVisMode');\n\t\t\t\n\t\t\t$('.visModes').each( function(i,v) {\n\t\t\t\tvisibleModes = $(v).attr('id');\n\t\t\t\tvisibleModes = visibleModes.replace('v_','m_');\n\t\t\t\t\n\t\t\t\tif( $(this).hasClass('activeVis') ) {\n\t\t\t\t\t$(this).find('i').removeClass('fa-square-o').addClass('fa-check-square-o');\n\t\t\t\t\t$('.' + visibleModes).addClass('showVisMode');\n\t\t\t\t} else {\n\t\t\t\t\t$(this).find('i').removeClass('fa-check-square-o').addClass('fa-square-o');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n    \n\t\t\t$('.m_itemChooser, .m_virtualUnit, .m_recommended, .m_itemChooserLocation').not('.showVisMode').slideUp('fast');\n\t\t\t$('.m_itemChooser.showVisMode ,.m_virtualUnit.showVisMode ,.m_recommended.showVisMode,.m_itemChooserLocation.showVisMode').not(':visible').slideDown('fast', \t\t\t\tfunction() {if( $('.m_'+vis_id+':visible').length > 0  ) {\n\t\t\t\t\ttry { scrollToFormTop( $('.m_'+vis_id).offset().top )   }  catch(err) {};\n\t\t\t\t}}\n\t\t\t);\n        }) \n\t\t\n\t\t$('.unitToggle').click( function(){\n\t\t\t\/*\n\t\t\tif( $('#v_itemChooser').hasClass('activeVis') ) {\n\t\t\t\t$('#v_itemChooser').click();\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\tif( $('#v_virtualUnit').hasClass('activeVis')  ) {\n\t\t\t\t$('#v_virtualUnit').click();\n\t\t\t} *\/\n\t\t\t\n\t\t\tif( !$('#v_recommended').hasClass('activeVis')  ) {\n\t\t\t\t$('#v_recommended').click();\n\t\t\t} \n\t\t\ttry { scrollToFormTop( $('.m_recommended').offset().top    ) } catch(err) {};\n\t\t\t\n\t\t\t\n\t\t})\n\t\t\n\t\t\t\t\t\/\/ Select first preset if customize is not the default tab;\n\t\t\t$('.presetCard').eq(0).click(); \n\t\t\t});\n\t\n\t\n\tfunction pauseEvent(e){\n\t\tif(e.stopPropagation) e.stopPropagation();\n\t\tif(e.preventDefault) e.preventDefault();\n\t\te.cancelBubble=true;\n\t\te.returnValue=false;\n\t\treturn false;\n\t}\n\t\n\tfunction _m_m() {\n\t\thandleMouseMove();\n\t\tcontrols.update( clock.getDelta() );\n\t\tcontrols.activeLook = true;\n\t\tif(!isPaused) orbit=false;\n\t\tdpad=true;\n\t\n\t}\n\t\n\tfunction m_left() {\n\t\t_m_m();\n\t\tcontrols.moveLeft = true;\n\t}\n\t\n\tfunction m_right() {\n\t\t_m_m();\n\t\tcontrols.moveRight = true;\n\t}\n\t\n\tfunction m_forward() {\n\t\t_m_m();\n\t\tcontrols.moveForward = true;\n\t}\n\t\n\tfunction m_backward() {\n\t\t_m_m();\n\t\tcontrols.moveBackward = true;\n\t}\n\t\n\tfunction m_stop() {\n\t\tdpad=false;\n\t\tcontrols.update( clock.getDelta() );\n\t\tcontrols.moveLeft = false;\n\t\tcontrols.moveRight = false;\n\t\tcontrols.moveForward = false;\n\t\tcontrols.moveBackward = false;\n\t\tcontrols.mouseX = 0;\n\t\tcontrols.mouseY = 0;\n\t}\n\t\n\tfunction doModalSwap(_this){\n\t\tif( $(_this).hasClass('selectedMode') && !$(_this).hasClass('modals_hidden')) {\n\t\t\t$(_this).addClass('modals_hidden');\n\t\t\t$('.storage_calc_modal').hide();\n\t\t} else {\n\t\t\t$('.moveMode').removeClass('selectedMode modals_hidden');\n\t\t\t$(_this).addClass('selectedMode');\n\t\t\t$('.storage_calc_modal').hide();\n\t\t\t$('.modal_' + _calcModal).show();\n\t\t}\n\t\tif(typeof camera !== \"undefined\" ) onWindowResize();\n\t}\n\t\t\n\tfunction bindRenderDiv() {\n\t\t\t\n\t\t\t$('.renderDiv').unbind();\n\t\t\t\n\t\t\t$('.renderDiv').click(function(){\n\t\t\t\tm_stop();\n\t\t\t\t$('.renderDiv').addClass('activePort');\n\t\t\t\t$('.infoTop').removeClass('activePort');\n\t\t\t\tif(!isPaused) orbit = false;\n\t\t\t})\n\t\t\t\n\t\t\t$('.infoTop').click(function(){\n\t\t\t\t$('.renderDiv').removeClass('activePort');\n\t\t\t\t$('.infoTop').addClass('activePort');\n\t\t\t})\n\t\t\t\n\t\t\t$('.infoTop').mouseover(function(){\n\t\t\t\t$('.infoTop').addClass('activePort');\n\t\t\t\t$('.renderDiv').removeClass('activePort');\n\t\t\t})\n\t\t\t\n\t\t\t$('.infoTop').mouseout(function(){\n\t\t\t\t$('.infoTop').removeClass('activePort');\n\t\t\t})\n\t\t\t\n\t\t\t$('.renderDiv').mouseout(function(){\n\t\t\t\tcanMoveCam = false;\n\t\t\t\t$('.renderDiv').removeClass('activePort');\n\t\t\t})\n\t\t\t\n\t\t\t$('.renderDiv').mouseover(function(){\n\t\t\t\tcanMoveCam = true;\n\t\t\t\tif(!isPaused) orbit=false;\n\t\t\t\ttto = 0;\n\t\t\t\t$('.renderDiv').addClass('activePort');\n\t\t\t\t$('.infoTop').removeClass('activePort');\n\t\t\t})\n\t\t\t\n\t\t\t$('.renderDiv').mouseout(function(){\n\t\t\t\tcanMoveCam = false;\n\t\t\t\t$('.renderDiv').removeClass('activePort');\n\t\t\t})\n\t\t}\n\n\tfunction  cullUnits(sq_ft) {\n\t\t$('.f_min_sizes option').each(  function (i,v) {  \n\n\t\t\tsetVal = $(this).val() \n\t\t\tfound_sq_ft = parseInt(setVal.replace('_sq',''));\n\t\t\tif(found_sq_ft <= sq_ft ) {\n\t\t\t\t$('.f_min_sizes').val(setVal).trigger('change')\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction init() {\n\t\t\n\t\t\/\/ w * h * l\n\t\tuW = unit_data['dcWidth']*scale_mult;\n\t\tuH = unit_data['dcHeight']*scale_mult;\n\t\tuL = unit_data['dcLength']*scale_mult;\n\t\t\n\t\t\/\/itemDrop = uL* 2;\n\t\tif(use_canvas === true ) itemDrop = 0;\n\t\telse itemDrop = 200;\n\t\t\n\t\tif(uW > uL) cOffset = (uW\/2)+100; else  cOffset = (uL\/2)+100;\n\t\tcontainer = $('.renderDiv');\n\t\t\t\n\n\t\tcamera = new THREE.PerspectiveCamera( 60, canvasWidth \/ canvasHeight, 1, 2000 ); \n\n\t\tcamera.position.x = cOffset* -1;; \n\t\tcamera.position.y =\t25; \n\t\tcamera.position.z = 0\n\t\t\n\t\tcamStartX = camera.position.x;\n\t\tcamStartY = camera.position.y;\n\t\tcamStartZ = camera.position.z;\n\t\t\n\t\t\n\n\t\torbitcamera = new THREE.PerspectiveCamera( 60, canvasWidth \/ canvasHeight, 1, 2000 );\n\n\t\torbitcamera.position.x = cOffset* 1; \n\t\torbitcamera.position.y =25; \n\t\torbitcamera.position.z = cOffset* -1;\n\t\t\t\t\n\t\t\n\t\tcameraCube = new THREE.PerspectiveCamera( 60, canvasWidth \/ canvasHeight, 1, 2000 );\n\t\t\n\t\tprojector = new THREE.Projector;\n\n\t\t\/\/ scene\n\t\t\n\t\tscene = new Physijs.Scene({ fixedTimeStep: 1 \/ 120 });\n\t\tscene.setGravity(new THREE.Vector3( 0, 0, 0 ));\n\t\t\n\t\tscene.addEventListener(\n\t\t\t'update', doSim\n\t\t\t\n\t\t);\n\n\t\tsceneCube = new THREE.Scene();\n\t\tvar ambient = new THREE.AmbientLight( 0x9b957f);\n\t\tscene.add( ambient );\n\n\t\tdirectionalLight = new THREE.DirectionalLight( 0xf6efd5 , 0.8);  \n\t\tdirectionalLight.position.set( 0, 0, 0 );\n\t\tdirectionalLight.castShadow =render_ss;\n\t\tdirectionalLight.shadowBias = 0.0001; \n\t\tdirectionalLight.shadowDarkness = 0.6;\n\t\tdirectionalLight.shadowMapWidth = 4096;\n\t\tdirectionalLight.shadowMapHeight = 4096;\n\t\tdirectionalLight.shadowCameraNear = 0.01;\n\t\tdirectionalLight.shadowCameraFar = 1000;  \n\t\tdirectionalLight.lookAt( scene );\n\t\t   \n\t\tscene.add( directionalLight );\n\t\t\n\t\tif ( render_su ) {\n\t\t\t\n\t\t\taddLight( 0.08, 0.8, 0.5,    0, 450, 1000 );\n\t\t\t\n\t\t}\n\t\t\n\t\t\t\t\n\t\t\n\t\t\n\/\/ unit model\t\t\t\t\n\n\t\tvar geometry_unit_wall_lr \t= new THREE.PlaneGeometry( uL , uH , 1, 1 );\n\t\tvar geometry_unit_wall_fb \t= new THREE.PlaneGeometry( uW , uH , 1, 1 );\n\t\tvar geometry_unit_floor \t= new THREE.BoxGeometry( uW , 2, uL  );\n\t\t\n\t\tvar material_unit \t= Physijs.createMaterial( new THREE.MeshLambertMaterial( {color: 0xcccccc, side: THREE.BackSide} ), 1, 0.0); \n\t\t\t\n\t\t\n\t\t\/\/texturefl = THREE.ImageUtils.loadTexture(m_path + 'concrete.jpg');\n\t\t\/\/texturefl.wrapS = THREE.RepeatWrapping;\n\t\t\/\/texturefl.wrapT = THREE.RepeatWrapping;\n\t\t\n\n\t\tvar material_unit_floor\t= Physijs.createMaterial( new THREE.MeshLambertMaterial( {color: 0x666666 } ), 1, 0.0 );\n\t\tvar material_unit_inv = Physijs.createMaterial(  new THREE.MeshLambertMaterial( {color: 0xffffff, transparent: true, opacity: 0} ), 1, 0 );\n\t\t\n\t\t\n\t\tvar material_floor = new THREE.MeshLambertMaterial( {color: 0xffffff,  transparent: true, opacity: 0, side: THREE.BackSide} );\n\t\tvar geometry_floor = new THREE.PlaneGeometry( uW*baseMult, uL*baseMult , 1 , 1 );\n\n\nif(use_canvas === true ) {\n\tmaterial_unit_floor.overdraw = 0.5;\n\tmaterial_unit.overdraw = 0.5;\n\tmaterial_unit_inv.overdraw = 0.5;\n\tmaterial_floor.overdraw = 0.5;\n} \n\t\t\n\t\tunitWall_L\t= new Physijs.BoxMesh( geometry_unit_wall_lr, \tmaterial_unit );\n\t\tunitWall_R \t= new Physijs.BoxMesh( geometry_unit_wall_lr, \tmaterial_unit );\n\t\tunitWall_B \t= new Physijs.BoxMesh( geometry_unit_wall_fb, \tmaterial_unit );\n\t\tunitWall_F \t= new Physijs.BoxMesh( geometry_unit_wall_fb, \tmaterial_unit_inv );\n\t\t\n\t\tunitWall_L.castShadow = false;\n\t\tunitWall_L.receiveShadow = render_ss; \n\t\t\n\t\tunitWall_R.castShadow = false;\n\t\tunitWall_R.receiveShadow = render_ss; \n\t\t\n\t\tunitWall_B.castShadow = false;\n\t\tunitWall_B.receiveShadow = true; \n\n\t\tunitWall_F.castShadow = false;\n\t\tunitWall_F.receiveShadow = render_ss; \t\t\t\t\t\t\n\n\t\t\n\t\t\n\t\tunitWall_L.position.x = ( ( uW \/ 2 )  * -1 );\n\t\tunitWall_L.position.y = 0;\n\t\tunitWall_L.position.z = 0;\n\t\tunitWall_L.rotateY( (Math.PI\/2) *-1 );\n\t\t\n\t\tunitWall_R.position.x = ( ( uW \/ 2 )  * 1 );\n\t\tunitWall_R.position.y = 0;\n\t\tunitWall_R.position.z = 0;\n\t\tunitWall_R.rotateY( (Math.PI\/2)  );\n\t\t\n\t\tunitWall_B.position.x = 0;\n\t\tunitWall_B.position.y = 0;\n\t\tunitWall_B.position.z = ( ( uL \/ 2 )  * 1 );\n\t\t\n\t\tunitWall_F.position.x = 0;\n\t\tunitWall_F.position.y = 0;\n\t\tunitWall_F.position.z = ( ( uL \/ 2 )  * -1 );\n\n\nif(use_canvas === true ) {\t\n\t\n\tedges_unitWall_L = new THREE.EdgesHelper( unitWall_L, 0x666666);\n\tedges_unitWall_R = new THREE.EdgesHelper( unitWall_R, 0x666666 );\n\tedges_unitWall_B = new THREE.EdgesHelper( unitWall_B, 0x666666 );\n\tedges_unitWall_F = new THREE.EdgesHelper( unitWall_F, 0x666666 );\n\tscene.add( edges_unitWall_L );\t\n\tscene.add( edges_unitWall_R );\t\n\tscene.add( edges_unitWall_B );\t\n\tscene.add( edges_unitWall_F );\t\n\t\t\n\tunitWall_L.visible = false;\n\tunitWall_R.visible = false;\n\tunitWall_B.visible = false;\n\tunitWall_F.visible = false;\n}\n\t\t\n\t\tscene.add( unitWall_L );\n\t\tscene.add( unitWall_R );\n\t\tscene.add( unitWall_B );\n\t\tscene.add( unitWall_F );\t\n\t\t\n\t\t\n\t\tunitFloor \t= new Physijs.BoxMesh( geometry_unit_floor, material_unit_floor, 0 );\n\t\t\n\t\tunitFloor.castShadow = false;\n\t\tunitFloor.receiveShadow = render_ss; \n\t\t\n\t\tfloor_plane = new Physijs.BoxMesh( geometry_floor, material_floor );\n\t\t\n\t\tunitFloor.position.y =  ((uH\/2)*-1) - 1;\n\t\t\n\t\tfloor_plane.rotateX( Math.PI \/ 2 );\n\t\tfloor_plane.position.x = 0;\n\t\tfloor_plane.position.y = ((uH\/2)*-1)-2;\n\t\tfloor_plane.position.z = 0;\n\t\t\t\t\t\nif(use_canvas === false ) {\t\t\n\t\tscene.add( unitFloor );\n}\n\t\t\n\t\tscene.add( floor_plane );\n\t\t\n\t\tvar geometry_crossHair \t= new THREE.PlaneGeometry( .075 ,.075 ,1,1  );\n\t\tvar texture_crossHair = THREE.ImageUtils.loadTexture('https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/crosshair.png');\n\t\t\n\t\tvar material_crossHair\t= Physijs.createMaterial( new THREE.MeshLambertMaterial( {color: 0x000000, map: texture_crossHair,transparent: true, opacity: 1} ), 1, 0.0 );\n\t\t\n\t\tcameraTargetBox\t= new THREE.Mesh( geometry_crossHair, \tmaterial_crossHair );\n\t\t\n\t\tscene.add( cameraTargetBox );\n\t\t\n\t\t\n\t\t\n\t\t\/\/ scale lines\n\t\tif( render_ma ) {\n\t\t\tvar material_line = new THREE.LineBasicMaterial({ color: 0xaaaaaa});\n\t\t\t\n\t\t\taxes = [];\n\t\t\t\n\t\t\taxes[0]=[];\n\t\t\taxes[0]['x']= ( (uW\/2) + 6 ) ;\n\t\t\taxes[0]['y']= uH;\n\t\t\taxes[0]['z']= ( uL\/2 ) * -1;\n\t\t\t\n\t\t\taxes[1]=[];\n\t\t\taxes[1]['x']= ( ( uW\/2 ) + 6);\n\t\t\taxes[1]['y']= ( uH\/2 ) * -1;\n\t\t\taxes[1]['z']=  uL;\n\t\t\t\n\t\t\taxes[2]=[];\n\t\t\taxes[2]['x']= uW;\n\t\t\taxes[2]['y']= ( uH\/2 ) * -1;\n\t\t\taxes[2]['z']= ( ( uL\/2 ) + 6 ) * -1;\n\t\t\t\n\t\t\t\n\t\t\tfor (axis = 0; axis <= 2; axis++) {\n\t\t\t\ta=[];\n\t\t\t\ta.x = axes[axis].x;\n\t\t\t\ta.y = axes[axis].y;\n\t\t\t\ta.z = axes[axis].z;\n\t\t\t\t\n\t\t\t\tif(axis === 0 ) a.l =  a.y;\n\t\t\t\telse if(axis === 1 ) a.l =  a.z; \n\t\t\t\telse if(axis === 2 ) a.l =  a.x; \n\t\t\t\t\n\t\t\t\tfor (i = 0; i <= a.l; i++) {\n\t\t\t\t\t\n\t\t\t\t\tvar geometry_line = new THREE.Geometry();\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tlineLength = 4 ;\n\t\t\t\t\t\n\t\t\t\t\tif( i  === a.l || i === 0 ) lineLength = 12 ;\n\t\t\t\t\telse if( i % 12 === 0 ) lineLength = 10 ;\n\t\t\t\t\telse if( i % 6 === 0 ) lineLength = 6 ;\n\t\t\t\t\t\n\t\t\t\t\tllx = 0;\n\t\t\t\t\tlly = 0;\n\t\t\t\t\tllz = 0;\n\t\t\t\t\t\n\t\t\t\t\tsOffsetx = 0;\n\t\t\t\t\tsOffsety = 0;\n\t\t\t\t\tsOffsetz = 0;\n\t\t\t\t\t\n\t\t\t\t\trotX = 0;\n\t\t\t\t\trotY = Math.PI;\n\t\t\t\t\trotZ = 0;\n\t\t\t\t\t\n\t\t\t\t\tif(axis===0) {\n\t\t\t\t\t\tly = (i)-(a.y\/2); \n\t\t\t\t\t\tllx = lineLength * -1;\n\t\t\t\t\t\tsOffsetx = -20;\n\t\t\t\t\t\tsOffsety = 0;\n\t\t\t\t\t\tsOffsetz = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tly = a.y;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif(axis===1) {\n\t\t\t\t\t\tlz = (i)-(a.z\/2);\n\t\t\t\t\t\tllx = lineLength * -1\n\t\t\t\t\t\tsOffsetx =  -20;\n\t\t\t\t\t\tsOffsety = 0;\n\t\t\t\t\t\tsOffsetz = 0;\n\t\t\t\t\t\trotX = (Math.PI\/2); \n\t\t\t\t\t} else {\n\t\t\t\t\t\tlz = a.z;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif(axis===2) {\n\t\t\t\t\t\tlx = (a.x\/2) - (i);\n\t\t\t\t\t\tllz = lineLength;\n\t\t\t\t\t\tsOffsetx = 0;\n\t\t\t\t\t\tsOffsety = 0;\n\t\t\t\t\t\tsOffsetz = 16;\n\t\t\t\t\t\trotX = (Math.PI\/2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlx = a.x;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tgeometry_line.vertices.push(new THREE.Vector3(lx\t\t\t\t,ly,\t lz));\n\t\t\t\t\tgeometry_line.vertices.push(new THREE.Vector3(lx - llx\t\t\t,ly,\t lz - llz));\n\t\t\t\t\t\n\t\t\t\t\tvar line = new THREE.Line(geometry_line, material_line);\n\t\t\t\t\tscene.add( line );\n\t\t\t\t\n\t\t\t\t\tif(  (i == a.l || i % 12 === 0 ) && !( i === 0 && axis === 1 ) ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(i == a.l) {\n\t\t\t\t\t\t\tfSize = 4; \n\t\t\t\t\t\t\tfSuff = \" Ft\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfSize = 3; \n\t\t\t\t\t\t\tfSuff = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar spritey = makeTextSprite( \n\t\t\t\t\t\t\t(i\/12)+ fSuff, \n\t\t\t\t\t\t\t{\tfontsize: fSize ,\n\t\t\t\t\t\t\t\ts_rotX : rotX,\n\t\t\t\t\t\t\t\ts_rotY : rotY,\n\t\t\t\t\t\t\t\ts_rotz : rotZ\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t );\n\t\t\t\t\t\tspritey.position.set(lx-sOffsetx,ly-sOffsety,lz-sOffsetz);\n\t\t\t\t\t\tscene.add( spritey );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ entry marker\n\t\t\t\n\t\t\tvar texture_entry = THREE.ImageUtils.loadTexture( \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/door.png\" );\n\t\t\tvar material_entry = new THREE.MeshLambertMaterial( {color: 0xffffff, side: THREE.DoubleSide, transparent: true, opacity: 0.2, map: texture_entry} );\n\t\t\tvar geometry_entry = new THREE.PlaneGeometry( 1*baseMult, 0.5*baseMult , 1 , 1 );\n\t\t\tentry_plane = new THREE.Mesh( geometry_entry, material_entry );\n\t\t\t\n\t\t\tentry_plane.position.x = 0 * -1;\n\t\t\tentry_plane.position.y = ( uH\/2 ) * -1;\n\t\t\tentry_plane.position.z = ( ( uL\/2 ) + 40 ) * -1;\n\t\t\t\n\t\t\tentry_plane.rotation.x = (Math.PI\/2);\n\t\t\t\n\t\t\tentry_plane.rotation.y = (Math.PI);\n\t\t\t\n\t\t\tscene.add( entry_plane );\n\t\t}\n\t\t\n\t\t\t\/\/ threejs doesn't recognize imported environment maps so we need to manually attach them\n\t\tvar path = \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/environment\";\n\t\tvar format = '.jpg';\n\t\tvar urls1 = [\n\t\t\t\tpath+'_1'+format, path+'_1'+format,\n\t\t\t\tpath+'_1'+format, path+'_1'+format,\n\t\t\t\tpath+'_1'+format, path+'_1'+format\n\t\t\t];\n\t\tvar urls2 = [\n\t\t\t\tpath+'_2'+format, path+'_2'+format,\n\t\t\t\tpath+'_2'+format, path+'_2'+format,\n\t\t\t\tpath+'_2'+format, path+'_2'+format\n\t\t\t];\n\t\t\t\n\t\tvar alpham = \t\"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/alpha.jpg\";\n\n\n\t\tvar textureCube1 = THREE.ImageUtils.loadTextureCube( urls1 );\n\t\tvar material_chrome = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube1 } );\n\t\tif(use_canvas === true ) material_chrome.overdraw = 0.5;\n\t\t\n\t\tvar textureCube3 = THREE.ImageUtils.loadTextureCube( urls1 );\n\t\tvar material_glass = new THREE.MeshBasicMaterial( { color: 0xffffff,alphaTest: 0.9, envMap: textureCube3} );\n\t\tif(use_canvas === true ) material_glass.overdraw = 0.5;\n\n\t\tvar textureCube2 = THREE.ImageUtils.loadTextureCube( urls2 );\n\t\tvar material_blank_screen = new THREE.MeshBasicMaterial( { color: 0xffffff, envMap: textureCube2 } );\n\t\tif(use_canvas === true ) material_blank_screen.overdraw = 0.5;\n\t\t\n\t\tmanager = new THREE.LoadingManager();\n\t\t\n\t\tmanager.onProgress = function ( item, loaded, total ) {\n\t\t\t\n\t\t\tpathParts = item.split('?');\n\t\t\titemParts = pathParts[1].split('_');\n\t\t\titemIndex = itemParts[0]\n\t\t\tloadOrder.push( (parseInt(itemIndex)-1) );\n\t\t};\n\t\t\n\t\tmanager.onLoad = function ( ) {\n\t\t\t\n\t\t\t\/\/requestAnimationFrame( render );\n\t\t\t\/\/scene.simulate();\n\n\t\t\t$.each(ob3d , function(i,v) {\n\t\t\t\tif (itemsToPack[loadOrder[i]]){\n\t\t\t\t\tob3d[i].position.x = itemsToPack[loadOrder[i]]['x_pos'];\n\t\t\t\t\tob3d[i].position.y = itemsToPack[loadOrder[i]]['y_pos']; \n\t\t\t\t\tob3d[i].position.y = itemsToPack[loadOrder[i]]['y_pos'] + itemDrop;\t\n\t\t\t\t\tob3d[i].position.z = itemsToPack[loadOrder[i]]['z_pos'];\n\t\t\t\t\tob3d[i]['name'] = \t'Item '+loadOrder[i]+': '+itemsToPack[loadOrder[i]]['niceName'];\n\t\t\t\t\tob3d[i]['userData']\t= itemsToPack[loadOrder[i]];\n\t\t\t\t\tob3d[i]['userData']['itemNumber'] = i;\t\n\t\t\t\t\tdropList[ itemsToPack[loadOrder[i]]['dropOrder']  ] = i;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tintersect_plane = new THREE.Mesh(\n\t\t\t\tnew THREE.PlaneGeometry( uW, uL, uW, uL),\n\t\t\t\tnew THREE.MeshBasicMaterial({ opacity: 0.5, transparent: true })\n\t\t\t);\n\t\t\t\n\t\t\tintersect_plane.rotation.x = Math.PI \/ -2;\n\t\t\tintersect_plane.visible = false;\n\t\t\tscene.add( intersect_plane );\n\t\t\t\n\t\t\trenderer.domElement.addEventListener( 'mousedown', handleMouseDown );\n\t\t\trenderer.domElement.addEventListener( 'mousemove', handleMouseMove );\n\t\t\trenderer.domElement.addEventListener( 'mouseup', handleMouseUp );\n\t\t\t\n\t\t\tstartCrossHairScan();\n\t\t\tbindRenderDiv();\n\t\t\t$('#dummy').change();\n\t\t\thasDropped = false;\n\t\t\tclearInterval(dropObj);\n\t\t\tcanDoDrop = true;\n\t\t};\n\n\t\tvar onProgress = function ( xhr ) {\n\t\t\t\n\t\t\tif ( xhr.lengthComputable ) {\n\t\t\t\tvar percentComplete = xhr.loaded \/ xhr.total * 100;\n\t\t\t\t\n\t\t\t}\n\t\t};\n\n\t\tvar onError = function ( xhr ) { \n\t\t};\n\n\t\t\n\t\tob3d = [];\n\t\tob3dCt = 0;\n\t\t\n\t\tif (typeof itemsToPack !== \"undefined\" && itemsToPack.length > 0) {\t\t\t\t\t\n\t\t\tfor (jj = 0; jj < itemsToPack.length; jj++) { \n\t\t\t\tloadObj(itemsToPack[jj]);\n\t\t\t}\n\t\t}\t\t\n\t\t\n\/\/ renderer setup\t\t\t\t\n\t\t\n\t\n\t\tcontrols = new THREE.FirstPersonControls( camera );\n\t\t\n\t\tif(use_canvas === false)\n\t\t\t\trenderer = new THREE.WebGLRenderer({ alpha: true, antialias: render_aa });\n\t\telse\n\t\t\t\trenderer = new THREE.CanvasRenderer();\n\t\t\n\t\trenderer.setPixelRatio( window.devicePixelRatio );\n\t\trenderer.setSize( canvasWidth, canvasHeight );\n\t\t\n\t\tcontainer.prepend( renderer.domElement );\n\t\t\t\t\n\t\trenderer.shadowMapEnabled = render_ss;\n\t\trenderer.shadowMapType = THREE.PCFSoftShadowMap;\n\t\t\n\t\trenderer.gammaInput = true;\n\t\trenderer.gammaOutput = true;\n\n\t\trenderer.setClearColor( 0xffffff, 1);\n\n\t\twindow.addEventListener( 'resize', onWindowResize, false );\n\t\n\t\t\n\t\t\/\/stats = new Stats();\n\t\t\n\t\tif(do_stats === 1) {\n\t\t\t$('#mod_fps').show();\n\t\t\t\/\/stats.domElement.style.position = 'absolute';\n\t\t\t\/\/stats.domElement.style.top = '0px';\n\t\t\t\/\/container.append( stats.domElement );\n\t\t}\n\t\t\n\n\n\/\/ model loader\n\t\tfunction loadObj (objItem) {\n\t\t\t\n\t\t\tob3dCt++;\n\t\t\t\n\t\t\trnd=new Date().getTime();\n\t\t\t\n\t\t\t\n\t\t\tloader = new THREE.OBJMTLLoader(manager);\n\t\t\t\n\n\t\t\ttCount= 0 ;\n\t\t\tloader.load( m_path+objItem.obj+'?'+ob3dCt+'_'+rnd, m_path+objItem.mtl, function ( object ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\tobject.traverse( function ( child1 ) {\n\n\t\t\t\tif ( child1 instanceof THREE.Mesh ) {\n\t\t\t\t\ttCount = tCount + 0.005;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tchild1.castShadow = render_ss;\n\t\t\t\t\t\tchild1.receiveShadow = render_ss; \n\t\t\t\t\t\t\n\t\t\t\t\t\tchild1.material.transparent = true;\n\t\t\t\t\t\t\/\/child1.material.opacity = 1; \n\t\t\t\t\t\tchild1.material.orig_opacity = child1.material.opacity;\n\t\t\t\t\t\tchild1.material.isglass= false;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(render_tx === false || render_lp === false) { \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tmaterial_lo = new THREE.MeshLambertMaterial( { color: 0x888888 } );\n\t\t\t\t\t\t\ttex_rgb = child1.material.color;\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(typeof child1.material.map !== \"undefined\" && child1.material.map !== null ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif(typeof child1.material.map.image !== \"undefined\" && child1.material.map.image !== \"\" && child1.material.map.image !== null) {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttex_rgb=getAverageRGB(child1.material.map.image);\n\t\t\t\t\t\t\t\t\ttex_rgb.r = tex_rgb.r\/255;\n\t\t\t\t\t\t\t\t\ttex_rgb.g = tex_rgb.g\/255;\n\t\t\t\t\t\t\t\t\ttex_rgb.b = tex_rgb.b\/255;\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tchild1.material = material_lo;\n\t\t\t\t\t\t\tchild1.material.color = tex_rgb;\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tchild1.material.overdraw = 0.5;\n\t\t\t\t\t\t\t\/\/child1.material.side = THREE.DoubleSide;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( render_lp === false ) {\n\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar material_lopoly = material_lo;\n\t\t\t\t\t\t\t\tvar geometry_lopoly = new THREE.BoxGeometry( objItem['len_y']*.96 , objItem['len_x']*.96,objItem['len_z']*.96 );\n\t\t\t\t\t\t\t\tobject = new THREE.Mesh( geometry_lopoly, material_lopoly );\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} \n\t\t\t\t\t\t\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\/\/ check if chrome\n\t\t\t\t\t\t\tif (typeof child1.material !== \"undefined\" && child1.material.name == \"chrome\" ) {\n\t\t\t\t\t\t\t\tchild1.material = material_chrome;\n\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if (typeof child1.material !== \"undefined\" && child1.material.name == \"glass\" ) {\n\t\t\t\t\t\t\t\tchild1.material = material_glass;\n\t\t\t\t\t\t\t\tchild1.material.opacity = 0.2; \n\t\t\t\t\t\t\t\tchild1.material.orig_opacity = 0.2; \n\t\t\t\t\t\t\t\tchild1.material.isglass= true;\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if (typeof child1.material !== \"undefined\" && child1.material.name == \"blank_screen\" ) {\n\t\t\t\t\t\t\t\tchild1.material = material_blank_screen; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tchild1.material.shininess = child1.material.shininess\/2;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\t\n\t\t\t\t\/\/ tiny multiplier to avoid z-buffer issues on texture\n\t\t\t\t\n\t\t\t\tblock_geometry = new THREE.BoxGeometry(   objItem['len_y']*1.001 , objItem['len_x']*1.001,objItem['len_z']*1.001 );\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tvar material_unit \t= Physijs.createMaterial( new THREE.MeshPhongMaterial( {color: 0xdddddd, side: THREE.BackSide, specular: 0xffffff, shininess: 5,} ), 10, 0.0 );\n\t\t\t\t\n\t\t\t\tvar block_material = Physijs.createMaterial(  new THREE.MeshLambertMaterial( {color: 0xbb0000, transparent: true, opacity: 0.0} ), 0.8, 0.4 );\n\t\t\t\t\n\t\t\t\tblock = new Physijs.BoxMesh( block_geometry, block_material );\n\t\t\t\t\n\t\t\t\t\/\/block.position.set( objItem['x_pos'], objItem['y_pos']  , objItem['z_pos'] - itemDrop );\n\t\t\t\tblock.position.set( objItem['x_pos'], objItem['y_pos'] , objItem['z_pos'] );\n\t\t\t\tif(itemDrop > 0 )block.visible = false;\n\t\t\t\tblock.castShadow = false;\n\t\t\t\tblock.receiveShadow = false; \n\t\t\t\tblock.material.transparent = true;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif(use_canvas === true ) {\n\t\t\t\t\t\/\/object.visible = false;\n\t\t\t\t\tblock.material.overdraw = 0.5;\n\t\t\t\t\t\/\/object.scale.set(.98,.98,.98)\n\t\t\t\t\t\/\/block.scale.set(.99,.99,.99)\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\/\/\n\t\t\t\t\t\/\/block.material.opacity = 1;\n\t\t\t\t\t\/\/edges = new THREE.EdgesHelper( block, 0x444444 );\n\t\t\t\t\t\/\/scene.add( edges );\t\n\t\t\t\t\t\n\t\t\t\t} \n\t\t\t\tblock.add( object );\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\tscene.add( block );\t\t\t\n\t\t\t\t\n\t\t\t\t\/\/scene.add( edges );\n\t\t\t\tif(objItem['rot'] > 0) {\n\t\t\t\t\tblock.__dirtyPosition = true;\n\t\t\t\t\tblock.__dirtyRotation = true;\n\t\t\t\t\tblock.rotation.y =  Math.PI\/2 ;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tob3d.push( block )\t\n\t\t\t\t\n\t\t\t}, onProgress, onError );\n\t\t}\n\t\t\n\t\tif(typeof camera !== \"undefined\" ) onWindowResize();\n\t}\n\n\t\t\t\n\n\tfunction onWindowResize() {\n\t\t\t\n\t\taspectRatio.x = $('body').width(); aspectRatio.y = (9*aspectRatio.x\/16);\n\t\t\n\t\tcanvasWidth = $('.calcContainer').innerWidth();\n\t\tcanvasHeight =  parseInt(canvasWidth * ( aspectRatio.y\/aspectRatio.x) ) - 60;\n\t\t\n\t\tif(canvasWidth !== canvasPrevWidth) positionScroller();\n\t\tcanvasPrevWidth = canvasWidth;\n\t\t\n\t\twindowHalfX = canvasWidth \/ 2;\n\t\twindowHalfY = canvasHeight \/ 2;\n\n\t\tcamera.aspect = canvasWidth \/ canvasHeight;\n\t\tcamera.updateProjectionMatrix();\n\t\t\n\t\torbitcamera.aspect = canvasWidth \/ canvasHeight;\n\t\torbitcamera.updateProjectionMatrix();\n\t\t\n\t\tcameraCube.aspect = canvasWidth \/ canvasHeight;\n\t\tcameraCube.updateProjectionMatrix();\n\t\t\n\t\t$(\".renderDiv\").height(canvasHeight);\n\t\toffset = $(\".renderDiv\").offset();\n\t\t\n\t\trenderer.setSize( canvasWidth, canvasHeight );\n\t}\n\n\tfunction animate3d() {\n\t\t\n\t\trequestAnimationFrame( animate3d );\n\t\trender();\n\t}\n\n\tfunction render() {\n\t\t\n\t\tif(do_stats === 1){\n\t\t\tfps_timer = Date.now();\n\t\t\tif(fps_timer > fps_lap_end) {\n\t\t\t\t\n\t\t\t\t$('#mod_fps').html(fps + ' FPS');\n\t\t\t\tfps= 0;\n\t\t\t\tfps_lap_end = fps_timer + 1000;\n\t\t\t\t\n\t\t\t}\n\t\t\tfps++;\n\t\t}\n\n\t\t\n\t\t\n\t\t\n\t\tif( $('.renderDiv:visible').length <1  ) return;\n\t\t\n\t\t\tif(hasDropped === false && canDoDrop && ob3d.length > 0 && itemDrop > 0) {\n\t\t\t\t\n\t\t\t\tclearInterval(dropObj);\n\t\t\t\tisPaused = true;\n\t\t\t\thasDropped = true;\n\t\t\t\tcanDoDrop = false;\n\t\t\t\tdropItem = 0;\n\t\t\t\tthisDrop = itemDrop;\n\t\t\t\t\n\t\t\t\tif( dropItem == 0 ) $('#load_scrim').hide();\n\t\t\t\t\n\t\t\t\tdropObj = setInterval( function() {\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\ttto=10;\n\t\t\t\t\t\torbit = true;\n\t\t\t\t\t\n\t\t\t\t\t\tstep = 50;\n\t\t\t\t\t\tobjIndex = dropList[dropItem];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (objIndex && ob3d[objIndex]){\n\t\t\t\t\t\t\tob3d[objIndex].visible = true;\n\t\t\t\t\t\t\tob3d[objIndex].__dirtyPosition = true;\n\t\t\t\t\t\t\tob3d[objIndex].__dirtyRotation = true;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdrop_newYpos = (ob3d[objIndex].position.y - step);\n\t\n\t\t\t\t\t\t\tob3d[objIndex].position.set( ob3d[objIndex].position.x, drop_newYpos, ob3d[objIndex].position.z )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthisDrop = thisDrop - step;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(thisDrop <= 0) {\n\t\t\t\t\t\t\t\/\/ob3d[dropItem].visible = true;\n\t\t\t\t\t\t\tthisDrop = itemDrop;\n\t\t\t\t\t\t\tdropItem ++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif(dropItem >= item_count) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(render_gr === true) {\n\t\t\t\t\t\t\t\tscene.setGravity(new THREE.Vector3( 0, -98.1, 0 ));\n\t\t\t\t\t\t\t\tscene.onSimulationResume();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclearInterval(dropObj);\n\t\t\t\t\t\t\tisPaused = false;\n\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t}, 24 );\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\/\/doSim();\n\t\t\t} \n\t\t\t\n\t\tif(render_gr === true && use_canvas === false) doSim(); \n\t\t\n\t\tvar timer = Date.now() * 0.0001;\n\t\t\n\t\t\n\t\trenderer.render( sceneCube, cameraCube );\n\t\t\n\t\tcamera.position.y = 25;\n\t\t\n\t\tcamPos4Calc = camera.position;\n\n\t\tif(orbit === true) { \n\t\t\t\n\t\t\tif(!isPaused) {\t\t\t\t\t\n\t\t\torbitcamera.position.x =  Math.cos( timer ) * cOffset;\n\t\t\torbitcamera.position.z =  Math.sin( timer ) * cOffset   ;\t\n\t\t\t\n\t\t\t} \n\t\t\t\n\t\t\telse {\n\t\t\t\torbitcamera.position.x =  Math.cos( -45 ) * cOffset;; \n\t\t\t\torbitcamera.position.z =  Math.sin( -45 ) * cOffset;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tcameraTargetBox.material.opacity = 0.0;\n\t\t\t\n\t\t\tfor(i=0; i < ob3d.length; i++ ){\n\t\t\t\tchildObj = ob3d[i].children[0].children;\n\t\t\t\n\t\t\t\t$.each( childObj, function (i,v) {\n\t\t\t\t\t\n\t\t\t\t\tif (typeof v.material !== \"undefined\" && v.material.isglass === true ){\n\t\t\t\t\t\topac = v.material.orig_opacity ; \n\t\t\t\t\t} \n\t\t\t\t\t\n\t\t\t\t\telse {\n\t\t\t\t\t\topac = 1;\n\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\/\/v.material.opacity = opac;\/\/v.material.orig_opacity;\n\t\t\t\t});\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\torbitcamera.position.y = 25;\n\t\t\tdirectionalLight.rotation.copy( orbitcamera.rotation );\n\t\t\tdirectionalLight.position.copy( orbitcamera.position );\n\t\t\torbitcamera.lookAt( scene.position );\n\t\t\t\n\t\t\trenderer.render( scene, orbitcamera );\n\t\t\t\n\t\t}  else {\n\t\t\t\n\t\tcameraTargetBox.material.opacity = 1;\t\n\t\tsteepness = 0.3;\n\t\tfade_distance = 50;\n\t\t\n\t\tfor(i=0; i < ob3d.length; i++ ){\n\t\t\t\n\t\t\tobjPos4Calc = ob3d[i].position;\n\t\t\t\n\t\t\tobjDist = dist(objPos4Calc.x,objPos4Calc.y,objPos4Calc.z,camPos4Calc.x,camPos4Calc.y,camPos4Calc.z);\n\t\t\t\n\t\t\tobj_opacity = 0 + ( 1 \/ ( 1+ Math.pow ( Math.E , ((steepness * -1) * (objDist - fade_distance) ) ) ) );\n\t\t\t\n\t\t\t\/\/ob3d[i].material.opacity = \tobj_opacity;\t\t\t\t\t\t\t\t\t\t\n\t\t\tchildObj = ob3d[i].children[0].children;\n\t\t\t\n\t\t\t$.each( childObj, function (i,v) {\n\t\t\t\t\n\t\t\t\tif (typeof v.material !== \"undefined\" && v.material.isglass === true ){\n\t\t\t\t\topac = v.material.orig_opacity ; \n\t\t\t\t} \n\t\t\t\t\n\t\t\t\telse {\n\t\t\t\t\topac = 1;\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\/\/v.material.opacity = opac * obj_opacity;\n\t\t\t});\t\n\t\t\t\n\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tcontrols.update( clock.getDelta() );\n\t\t\tdirectionalLight.rotation.copy( camera.rotation );\n\t\t\tdirectionalLight.position.copy( camera.position );\n\t\t\tcameraTargetBox.lookAt( camera.position );\n\t\t\trenderer.render( scene, camera );\n\t\t}\n\t\t\n\t\t\/\/if(do_stats === 1) stats.update();\n\n\n\t}\n\t\n\tfunction lensFlareUpdateCallback( object ) {\n\t\t\n\t\tif( render_su ) {\n\t\t\n\t\t\tvar f, fl = object.lensFlares.length;\n\t\t\tvar flare;\n\t\t\tvar vecX = -object.positionScreen.x * 2;\n\t\t\tvar vecY = -object.positionScreen.y * 2;\n\n\t\t\tfor( f = 0; f < fl; f++ ) {\n\t\t\t\tflare = object.lensFlares[ f ];\n\t\t\t\tflare.x = object.positionScreen.x + vecX * flare.distance;\n\t\t\t\tflare.y = object.positionScreen.y + vecY * flare.distance;\n\t\t\t\tflare.rotation = 0;\n\t\t\t}\n\n\t\t\tobject.lensFlares[ 2 ].y += 0.025;\n\t\t\tobject.lensFlares[ 3 ].rotation = object.positionScreen.x * 0.5 + THREE.Math.degToRad( 45 );\n\t\t}\n\n\t}\n\t\t\t\t\n\tfunction handleMouseDown() {\n\t\t\/\/stopCrossHairScan();\n\t\t\n\t\t\/*\n\t\tvar ray, intersection, _vector = new THREE.Vector3;\n\t\t\n\t\t_vector.set(\n\t\t\t( 0.5 ) * 2 - 1,\n\t\t\t-( 0.5 ) * 2 + 1,\n\t\t\t1\n\t\t);\n\n\t\t_vector.unproject(  camera );\n\t\t\n\t\tray = new THREE.Raycaster( camera.position, _vector.sub( camera.position ).normalize() );\n\t\tintersection = ray.intersectObjects( ob3d );\n\n\t\tif ( intersection.length > 0 ) {\n\t\t\tselected_block = intersection[0].object;\n\n\t\t\tmouse_position.copy( intersection[0].point );\n\t\t\tblock_offset.subVectors( selected_block.position, mouse_position );\n\t\t\t\n\t\t\tintersect_plane.position.y = mouse_position.y;\t\t\t\t\t\t\n\t\t}\n\t\t*\/\n\t};\n\n\tfunction handleMouseMove() {\n\t\tvar ray, intersection,\n\t\t\ti, scalar, _vector = new THREE.Vector3;\n\t\t\t\t\t\n\t\tif ( selected_block !== null ) {\n\t\t\t_vector.set(\n\t\t\t\t( 0.5 ) * 2 - 1,\n\t\t\t\t-( 0.5 ) * 2 + 1,\n\t\t\t\t1\n\t\t\t);\n\t\t\t_vector.unproject( camera );\n\t\t\t\n\t\t\tray = new THREE.Raycaster( camera.position, _vector.sub( camera.position ).normalize() );\n\t\t\tintersection = ray.intersectObject( intersect_plane );\n\t\t\t\t\t\t\t\t\t\n\t\t\tif(typeof intersection[0] !== \"undefined\") {\n\t\t\t\tmouse_position.copy( intersection[0].point );\n\t\t\t}\n\t\t\tintersect_plane.position.y = mouse_position.y;\t\n\n\t\t\texamineItem(selected_block);\n\n\t\t\t\/\/container.style.cursor = 'move';\n\n\t\t} else {\n\t\t\t\n\t\t\t_vector.set(\n\t\t\t\t( 0.5 ) * 2 - 1,\n\t\t\t\t-( 0.5  ) * 2 + 1,\n\t\t\t\t1\n\t\t\t);\n\t\t\t\t\t\t\t\t\n\t\t\t_vector.unproject( camera );\n\t\t\t\n\t\t\tray = new THREE.Raycaster( camera.position, _vector.sub( camera.position ).normalize() );\n\t\t\tintersection = ray.intersectObjects( ob3d );\n\t\t\t\n\t\t\tintersection = ray.intersectObjects( ob3d );\n\t\t\t\t\n\t\t\tif ( intersection.length > 0 && orbit === false) {\n\t\t\t\t\n\t\t\t\tif(typeof highlight_block !== \"undefined\") {\n\t\t\t\t\tprevBlock = highlight_block;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\thighlight_block = intersection[0].object;\n\n\t\t\t\tintersect_plane.position.y = mouse_position.y;\t\n\t\t\t\tintersect_plane.position.copy( highlight_block.position );\n\t\t\t\t\n\t\t\t\tif (typeof highlight_block !== \"undefined\"){\n\t\t\t\t\thighlight_block.material.transparent = true;\n\t\t\t\t\thighlight_block.material.opacity = 0.2;\n\t\t\t\t\t\/\/highlight_block.material.opacity = 0.0;\n\t\t\t\t\thighlight_block.material.color.setHex( 0xbb0000 );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(typeof prevBlock !== \"undefined\" && prevBlock !== highlight_block) {\n\t\t\t\t\tprevBlock.material.transparent = true;\n\t\t\t\t\tprevBlock.material.opacity = 0;\n\t\t\t\t\tprevBlock.material.color.setHex( 0xffffff );\n\t\t\t\t}\n\t\t\t\t\/\/container.style.cursor = 'pointer';\n\t\t\t\texamineItem(highlight_block);\n\t\t\t\t\n\t\t\t} \telse {\n\t\t\t\t\n\t\t\t\t\/\/container.style.cursor = 'auto';\n\t\t\t\tif(typeof highlight_block !== \"undefined\" ) {\n\t\t\t\t\thighlight_block.material.transparent = true;\n\t\t\t\t\thighlight_block.material.opacity = 0;\n\t\t\t\t\thighlight_block.material.color.setHex( 0xffffff );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\texamineItem();\n\t\t\t}\n\t\t}\n\t\t\n\t};\n\t\t\t\n\tfunction handleMouseUp() {\n\t\tdpad=false;\n\t\t\n\t\tvar _vector = new THREE.Vector3;\n\t\t\/\/startCrossHairScan();\n\t\t\n\t\tif ( selected_block !== null ) {\n\t\t\t_vector.set( 1, 1, 1 );\n\t\t\tselected_block.setAngularFactor( _vector );\n\t\t\tselected_block.setLinearFactor( _vector );\n\t\t\tselected_block = null;\n\t\t}\n\t}\n\n\tfunction startCrossHairScan() {\n\t\tautoCrossScan = setInterval(function(){ \n\t\t\thandleMouseMove();\n\t\t}, 500);\n\t}\n\n\tfunction stopCrossHairScan() {\n\t\tclearInterval (autoCrossScan);\n\t}\n\n\t\t\t\t\n\tfunction examineItem(inspect_block){\n\t\tif(typeof inspect_block !== \"undefined\") {\n\t\t\t\/\/ turn on\n\t\t\t$('.containerContentsIns').html( '#'+(inspect_block.userData.itemNumber+1) + ': ' + inspect_block.userData.name);\n\t\t\t$('.containerContentsVol').html( ((inspect_block.userData.vol\/1728).toFixed(1)) + ' cu. ft.' );\n\t\t\t$('.containerContentsSize').html( \n\t\t\t\t(inspect_block.userData.len_x\/12).toFixed(1) + ' x '  +\n\t\t\t\t(inspect_block.userData.len_y\/12).toFixed(1) + ' x '  +\n\t\t\t\t(inspect_block.userData.len_z\/12).toFixed(1)\n\t\t\t);\n\t\t} else {\n\t\t\t\/\/ turn off\n\t\t\t$('.containerContentsIns').html('None');\n\t\t\t$('.containerContentsVol').html('--');\n\t\t\t$('.containerContentsSize').html('--');\n\t\t}\n\t}\n\n\tfunction makeTextSprite( message, parameters ) {\n\t\tif ( parameters === undefined ) parameters = {};\n\t\t\n\t\tvar fontface = parameters.hasOwnProperty(\"fontface\") ? \n\t\t\tparameters[\"fontface\"] : \"Arial\";\n\t\t\n\t\tvar fontsize = parameters.hasOwnProperty(\"fontsize\") ? \n\t\t\tparameters[\"fontsize\"] : 18;\n\t\t\n\t\t\n\t\tvar backgroundColor = parameters.hasOwnProperty(\"backgroundColor\") ?\n\t\t\tparameters[\"backgroundColor\"] : { r:255, g:255, b:255, a:1.0 };\n\t\t\n\t\tvar rotX = parameters.hasOwnProperty(\"s_rotX\") ?\n\t\t\tparameters[\"s_rotX\"] : 0;\n\t\t\n\t\tvar rotY = parameters.hasOwnProperty(\"s_rotY\") ?\n\t\t\tparameters[\"s_rotY\"] : 0;\n\t\t\n\t\tvar rotZ = parameters.hasOwnProperty(\"s_rotZ\") ?\n\t\t\tparameters[\"s_rotZ\"] : 0;\n\n\t\t\/\/var spriteAlignment = THREE.SpriteAlignment.topLeft;  \n\t\tfSize = fontsize*scale_mult;\t\n\t\tvar canvas = document.createElement('canvas');\n\t\tvar context = canvas.getContext('2d');\n\t\t\n\t\t\/\/ get size data (height depends only on font size)\n\t\tvar metrics = context.measureText( message );\n\t\t\n\t\tvar textWidth = metrics.width*scale_mult;\n\t\tvar textHeight = fSize;\n\t\t\n\t\tcanvas.width = textWidth;\n\t\tcanvas.height = textHeight;\n\t\tcontext.textAlign = \"center\";\n\t\tcontext.textBaseline = \"middle\";\n\t\tcontext.font = \"normal \" + fSize + \"px \" + fontface;\n\t\tcontext.textAlign = \"center\";\n\t\tcontext.textBaseline = \"middle\";\n\t\tcontext.fillStyle = \"#000000\";\n\t\tcontext.fillText(message, textWidth \/ 2, textHeight \/ 2);\n\t\t\n\t\t\/\/ canvas contents will be used for a texture\n\t\tvar texture = new THREE.Texture(canvas);\n\t\t\n\t\t$(canvas).remove();\n\t\ttexture.offset.x = 0; \/\/ 0.0 - 1.0\n\t\ttexture.offset.y = 0; \/\/ 0.0 - 1.0\n\t\ttexture.minFilter = THREE.NearestFilter;\n\t\ttexture.needsUpdate = true;  \n\n\t\tvar geometry_text \t= new THREE.PlaneGeometry( textWidth ,textHeight ,1, 1 );\n\t\tvar material_text\t= new THREE.MeshLambertMaterial( {color: 0xffffff, side: THREE.DoubleSide, map: texture ,transparent: true, opacity: .3} )\n\t\t\t\t\t\n\t\tsprite\t= new THREE.Mesh( geometry_text, \tmaterial_text );\n\t\t\n\t\tsprite.rotation.x = rotX;\n\t\tsprite.rotation.y = rotY;\n\t\tsprite.rotation.z = rotZ;\n\t\t\t\n\t\tsprite.scale.set(1\/scale_mult,1\/scale_mult,1.0);\n\t\treturn sprite;\n\t}\n\n\tfunction positionScroller() {\n\t\t$('.scroller_viewport').each( function() {\n\t\t\t\n\t\t\tvar s_viewport = $(this);\n\t\t\tvar s_container = $(this).parent();\t\n\t\t\t\n\t\t\tvar s_contWidth = $(s_container).width();\t\n\t\t\tvar s_catsWidth  = $(s_viewport).width();\n\t\t\t\n\t\t\t$(s_viewport).css('left',0);\n\t\t\t\n\t\t\tif(s_catsWidth > s_contWidth) {\n\t\t\t\t$(s_container).find('.prevCats').hide();\n\t\t\t\t$(s_container).find('.nextCats').show();\n\t\t\t} else {\n\t\t\t\t$(s_container).find('.prevCats').hide();\n\t\t\t\t$(s_container).find('.nextCats').hide();\n\t\t\t}\n\t\t});\n\t}\n\t\t\t\n\tfunction doSim() {\n\t\tif ( selected_block !== null ) {\n\t\t\t_v3.copy( mouse_position ).add( block_offset ).sub( selected_block.position ).multiplyScalar( 5 );\n\t\t\t_v3.y = 1;\n\t\t\t\/\/_v3.y = _vY*100 ;\/\/_vY*10;\n\t\t\tselected_block.setLinearVelocity( _v3 );\n\t\t\t_v3.set( 0, 0, 0 );\n\t\t\tfor ( _i = 0; _i < ob3d.length; _i++ ) {\n\t\t\t\tob3d[_i].applyCentralImpulse( _v3 );\n\t\t\t}\n\t\t}\n\t\t\/\/applyForce();\n\t\tif(!isPaused) scene.simulate( undefined, 1 );\n\t}\n\n\t\t\t\t\n\tfunction dist(x0,y0,z0,x1,y1,z1){\n\t\tdeltaX = x1 - x0;\n\t\tdeltaY = y1 - y0;\n\t\tdeltaZ = z1 - z0;\n\t\t\n\t\tdistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);\n\t\t\n\t\treturn distance;\n\t}\n\n\tfunction addLight( h, s, l, x, y, z ) {\n\t\tvar textureFlare0 = THREE.ImageUtils.loadTexture( \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/lensflarea0.png\" );\n\t\tvar textureFlare2 = THREE.ImageUtils.loadTexture( \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/lensflarea2.png\" );\n\t\tvar textureFlare3 = THREE.ImageUtils.loadTexture( \"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-content\/plugins\/3D_calculator\/\/images\/lensflare3.png\" );\n\n\t\tvar flareColor = new THREE.Color( 0xffffff );\n\t\tflareColor.setHSL( h, s, l + 0.5 );\n\n\t\tvar lensFlare = new THREE.LensFlare( textureFlare0, 700, 0.0, THREE.AdditiveBlending, flareColor );\n\n\t\tlensFlare.add( textureFlare2, 512, 0.0, THREE.AdditiveBlending );\n\t\tlensFlare.add( textureFlare2, 512, 0.0, THREE.AdditiveBlending );\n\t\tlensFlare.add( textureFlare2, 512, 0.0, THREE.AdditiveBlending );\n\n\t\tlensFlare.add( textureFlare3, 60, 0.6, THREE.AdditiveBlending );\n\t\tlensFlare.add( textureFlare3, 70, 0.7, THREE.AdditiveBlending );\n\t\tlensFlare.add( textureFlare3, 120, 0.9, THREE.AdditiveBlending );\n\t\tlensFlare.add( textureFlare3, 70, 1.0, THREE.AdditiveBlending );\n\n\t\tlensFlare.customUpdateCallback = lensFlareUpdateCallback;\n\t\tlensFlare.position.set( x, y, z  );\n\n\t\tscene.add( lensFlare );\n\t}\n\n\tfunction getAverageRGB(imgEl) {\n\t\tvar blockSize = 5, \/\/ only visit every 5 pixels\n\t\t\tdefaultRGB = {r:0,g:0,b:0}, \/\/ for non-supporting envs\n\t\t\tcanvas_rgb = document.createElement('canvas'),\n\t\t\tcontext = canvas_rgb.getContext && canvas_rgb.getContext('2d'),\n\t\t\tdata, width, height,\n\t\t\ti = -4,\n\t\t\tlength,\n\t\t\trgb = {r:0,g:0,b:0},\n\t\t\tcount = 0;\n\n\t\tif (!context) {\n\t\t\treturn defaultRGB;\n\t\t}\n\n\t\theight = canvas_rgb.height = imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height;\n\t\twidth = canvas_rgb.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width;\n\n\t\tcontext.drawImage(imgEl, 0, 0);\n\n\t\ttry {\n\t\t\tdata = context.getImageData(0, 0, width, height);\n\t\t} catch(e) {\n\t\t\t\/* security error, img on diff domain *\/\n\t\t\treturn defaultRGB;\n\t\t}\n\n\t\tlength = data.data.length;\n\n\t\twhile ( (i += blockSize * 4) < length ) {\n\t\t\t++count;\n\t\t\trgb.r += data.data[i];\n\t\t\trgb.g += data.data[i+1];\n\t\t\trgb.b += data.data[i+2];\n\t\t}\n\n\t\t\/\/ ~~ used to floor values\n\t\trgb.r = ~~(rgb.r\/count);\n\t\trgb.g = ~~(rgb.g\/count);\n\t\trgb.b = ~~(rgb.b\/count);\n\n\t\treturn rgb;\n\t}\n\n\t\/\/ convert 0..255 R,G,B values to a hexidecimal color string\n\tRGBToHex = function(r,g,b){\n\t\tvar bin = r << 16 | g << 8 | b;\n\t\treturn (function(h){\n\t\t\treturn new Array(7-h.length).join(\"0\")+h\n\t\t})(bin.toString(16).toUpperCase())\n\t}\n\t\n\t<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/full-width.php","meta":{"footnotes":""},"class_list":["post-4","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/pages\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":2,"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/pages\/4\/revisions"}],"predecessor-version":[{"id":6,"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/pages\/4\/revisions\/6"}],"wp:attachment":[{"href":"https:\/\/iframe.live-pinnacle.com\/3d-calculator\/wp-json\/wp\/v2\/media?parent=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}