function Menu(layer) { this.layer = layer; this.clickItem; this.state = false; this.productEdit = null; this.init(); }; Menu.prototype.init = function () { this.dragWindow(); this.addWallMenuItem(); this.addDoorsMenuItem(); this.addWindowMenuItem(); this.addStairwayMenuItem(); this.addBedroomMenuItem(); this.addOutsideMenuItem(); this.addFloorMenuItem(); this.addWallpaperMenuItem(); this.addsoftDecorationMenuItem(); //this.addMenuItemEvents(); this.addMenuTabsEvent(); //左上角的楼层按钮 this.addfloorAddMenuItem(); this.editProduct(); var deletewall = document.getElementById("deleteWall"); deletewall.addEventListener("click", Menu.prototype.deleteWall.bind(this)); var changeWall = document.getElementById("changeWall"); changeWall.addEventListener("click", Menu.prototype.changeWall.bind(this)); }; //使得弹出框能拖拽 Menu.prototype.dragWindow = function () { ["editproducttitle", "addModelTitle", "addfloorTitle", "edit2DTitle"].forEach(function (id) { var header = document.getElementById(id); var control = {}; control.dragging = false; control.lastX = 0; control.lastY = 0; var configWindow = header.parentElement; header.addEventListener("mousedown", function (e) { control.dragging = true; control.lastX = e.clientX; control.lastY = e.clientY; this.layer.control.draggingDialog = true; e.stopPropagation(); }.bind(this)); header.addEventListener("mouseup", function (e) { control.dragging = false; control.lastX = 0; control.lastY = 0; this.layer.control.draggingDialog = false; e.stopPropagation(); }.bind(this)); document.addEventListener("mousemove", function (e) { if (control.dragging) { var dx = e.clientX - control.lastX; var dy = e.clientY - control.lastY; var top = configWindow.style.top.replace("px", ""); var left = configWindow.style.left.replace("px", ""); top = parseInt(top); left = parseInt(left); top += dy; left += dx; configWindow.style.top = top + "px"; configWindow.style.left = left + "px"; control.lastX = e.clientX; control.lastY = e.clientY; } e.stopPropagation(); }.bind(this)); for (var i = 0; i < header.childNodes.length; ++i) { if (header.childNodes[i].className == "window-close") { header.childNodes[i].addEventListener("click", function () { configWindow.style.display = "none"; }); break; } } }); ["edit2D1", "edit2D2"].forEach(function (id) { var range = document.getElementById(id); var value = null; if (id == "edit2D1") { value = document.getElementById("edit2D11"); } else if (id == "edit2D2") { value = document.getElementById("edit2D22"); } else { return; } range.addEventListener("input", function () { value.value = range.value; var id = this.layer.select.selectWall.wallid; var index = this.layer.select.selectWall.index; if (range.id == "edit2D1") { this.layer.vectors[id].geometry.wallInfo[index].thick = parseInt(range.value); this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); } else if (range.id == "edit2D2") { this.layer.vectors[id].geometry.wallInfo[index].height = parseInt(range.value); this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); } }.bind(this), false); }); } Menu.prototype.addfloorAddMenuItem = function () { var button = document.getElementById("floorAdd"); button.addEventListener("click", Menu.prototype.showDialog.bind(this)); //开始时,自动添加一层 var controlFloor = document.getElementById("wnp-floor-controller-node"); var a = document.createElement("a"); a.setAttribute('class', 'photonui-wnpfloorcontrollerbutton photonui-widget editable deletable selected'); var span = document.createElement("span"); var index = parseInt(button.rel); span.innerHTML = "+0.00米" + "    " + index + "楼"; a.appendChild(span); var div1 = document.createElement("div"); div1.setAttribute('class', 'delete'); div1.innerText = "x"; //删除 div1.addEventListener("click", Menu.prototype.deleteFloors.bind(this)); a.appendChild(div1); var div2 = document.createElement("div"); div2.setAttribute('class', 'settings'); div2.style = "color: rgb(0, 255, 0);"; div2.innerText = "i"; a.appendChild(div2); a.rel = index; // 选择楼层 a.addEventListener("click", Menu.prototype.seleteFloor.bind(this)); controlFloor.insertBefore(a, button); var createbutton = document.getElementById("widget-createfloor"); var cancelbutton = document.getElementById("widget-cancelfloor"); createbutton.addEventListener("click", Menu.prototype.createFloor.bind(this)); cancelbutton.addEventListener("click", Menu.prototype.cancelFloor.bind(this)); //编辑弹出框的checkbox var check1 = document.getElementById("wnp-floor-controller_walls"); var check2 = document.getElementById("wnp-floor-controller_overtures"); var check3 = document.getElementById("wnp-floor-controller_stairways"); check1.addEventListener("click", function (e) { if (e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = false; } else if (!e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = true; } }.bind(this)); check2.addEventListener("click", function (e) { if (e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = false; } else if (!e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = true; } }.bind(this)); check3.addEventListener("click", function (e) { if (e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = false; } else if (!e.currentTarget.children[0].checked) { e.currentTarget.children[0].checked = true; } }.bind(this)); }; //显示添加楼层的弹出框 Menu.prototype.showDialog = function (e) { var newfloor = document.getElementById("editFloor"); newfloor.style.display = ""; document.getElementById("wnp-floor-controller_walls-input").checked = true; document.getElementById("wnp-floor-controller_overtures-input").checked = true; e.stopPropagation(); }; Menu.prototype.createFloor = function (e) { var but = document.getElementById("floorAdd"); var index = parseInt(but.rel); ++index; but.rel = index; var height = this.layer.parameter.floorHeight * (index - 1); var controlFloor = document.getElementById("wnp-floor-controller-node"); var a = document.createElement("a"); a.rel = index; a.setAttribute('class', 'photonui-wnpfloorcontrollerbutton photonui-widget editable deletable selected'); var span = document.createElement("span"); span.innerHTML = "+" + height.toFixed(2) + "米    " + index + "楼"; a.appendChild(span); var div1 = document.createElement("div"); div1.setAttribute('class', 'delete'); div1.innerText = "x"; //删除 div1.addEventListener("click", Menu.prototype.deleteFloors.bind(this)); a.appendChild(div1); var div2 = document.createElement("div"); div2.setAttribute('class', 'settings'); div2.style = "color: rgb(0, 255, 0);"; div2.innerText = "i"; a.appendChild(div2); // 选择楼层 a.addEventListener("click", Menu.prototype.seleteFloor.bind(this)); for (var i = 0; i < controlFloor.children.length - 1; ++i) { controlFloor.children[i].classList.remove("selected"); } controlFloor.insertBefore(a, but); this.layer.selectFloor = index; this.copyFloor(); this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); if (show3D) { my3DEngine.decorate3D.deleteRoomMeshes(); GetWallPoints(layer); if (!one3d) { //initRoom3D(); one3d = true; } my3DEngine.scene3D.render(); } //编辑 //div2.addEventListener("click",Menu.prototype.editFloor.bind(this)); var newfloor = document.getElementById("editFloor"); newfloor.style.display = "none"; e.stopPropagation(); }; //从下一楼层拷贝过来 //wnp-floor-controller_walls-input表示墙 //wnp-floor-controller_overtures-input表示门,窗 Menu.prototype.copyFloor = function () { var wallc = document.getElementById("wnp-floor-controller_walls-input"); var doorwindowc = document.getElementById("wnp-floor-controller_overtures-input"); if (wallc.checked) { for (var i = 0; i < this.layer.data2d.wallIds.length; ++i) { var id = this.layer.data2d.wallIds[i]; if (this.layer.vectors[id].geometry.floor == (parseInt(this.layer.selectFloor) - 1)) { //var points = this.layer.vectors[id].geometry.points; var points = []; for (var k = 0; k < this.layer.vectors[id].geometry.points.length; ++k) { points[k] = {}; points[k].x = this.layer.vectors[id].geometry.points[k].x; points[k].y = this.layer.vectors[id].geometry.points[k].y; } var wall = new Wall(points, document.getElementById("imgWall")); var vector = new Vector(wall, wallStyle); vector.geometry.floor = parseInt(this.layer.selectFloor); vector.geometry.state = this.layer.vectors[id].geometry.state; //vector.geometry.copyWallId = id; this.layer.drawSingleVector(vector); this.layer.data2d.wallIds.push(vector.id); if (doorwindowc.checked) { for (var j in this.layer.vectors[id].symbol2Ds) { var symbolid = this.layer.vectors[id].symbol2Ds[j].id; var symbolpoints = this.layer.vectors[symbolid].geometry.points; var symbol = this.layer.build.createSymbol2(this.layer.vectors[symbolid].geometry.geoType); if (symbol == null) { alert("149"); } else { symbol.geometry.point1 = {}; symbol.geometry.point1.x = this.layer.vectors[symbolid].geometry.point1.x; symbol.geometry.point1.y = this.layer.vectors[symbolid].geometry.point1.y; symbol.geometry.point2 = {}; symbol.geometry.point2.x = this.layer.vectors[symbolid].geometry.point2.x; symbol.geometry.point2.y = this.layer.vectors[symbolid].geometry.point2.y; for (var i = 0; i < symbolpoints.length; ++i) { if (symbolpoints[i].x) { symbol.geometry.points[i] = {}; symbol.geometry.points[i].x = symbolpoints[i].x; symbol.geometry.points[i].y = symbolpoints[i].y; } else { symbol.geometry.points[i] = symbolpoints[i]; } } symbol.geometry.wallType = this.layer.vectors[symbolid].geometry.wallType; symbol.attributes.wallId = this.layer.vectors[symbolid].attributes.wallId; symbol.attributes.wallendindex = this.layer.vectors[symbolid].attributes.wallendindex; symbol.attributes.wallstartindex = this.layer.vectors[symbolid].attributes.wallstartindex; symbol.attributes.toward = this.layer.vectors[symbolid].attributes.toward; symbol.attributes.draw = this.layer.vectors[symbolid].attributes.draw; symbol.attributes.selectSymbolIds = []; this.layer.drawSingleVector(symbol); symbol.geometry.floor = parseInt(this.layer.selectFloor); vector.symbol2Ds[symbolid] = symbol; ++vector.symbol2dsCount; this.layer.data2d.symbol2DIds.push(symbol.id); } } } } } } }; //选择楼层 Menu.prototype.seleteFloor = function (e) { var controlFloor = document.getElementById("wnp-floor-controller-node"); for (var i = 0; i < controlFloor.children.length - 1; ++i) { controlFloor.children[i].classList.remove("selected"); } e.currentTarget.classList.add("selected"); this.layer.selectFloor = e.currentTarget.rel; if (document.getElementById("mainMenuTitle").innerHTML == "绘图") { this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); } else { my3DEngine.decorate3D.showFloors(parseInt(this.layer.selectFloor)); my3DEngine.decorate3D.hideFloors(parseInt(this.layer.selectFloor)); if (document.getElementById("transparencyButton").children[0].children[0].src.indexOf("icon-opacity.png") > -1) { my3DEngine.decorate3D.transparentWall(0.05); } else { my3DEngine.decorate3D.transparentWall(1); } } e.stopPropagation(); }; Menu.prototype.cancelFloor = function (e) { var newfloor = document.getElementById("editFloor"); newfloor.style.display = "none"; e.stopPropagation(); }; //删除楼层 //"floorAdd"的rel表示当前的楼层是多少 Menu.prototype.deleteFloors = function (e) { if (window.confirm('你确定要删除楼层吗?')) { var but = document.getElementById("floorAdd"); var index = parseInt(but.rel); --index; but.rel = index; var controlFloor = document.getElementById("wnp-floor-controller-node"); var deletefloor = null; for (var i = 0; i < controlFloor.children.length - 1; ++i) { if (e.currentTarget.parentElement == controlFloor.children[i]) { deletefloor = i; controlFloor.removeChild(controlFloor.children[i]); --i; if (i != -1) { this.layer.selectFloor = i + 1; controlFloor.children[i].classList.add("selected"); } else { this.layer.selectFloor = i; controlFloor.children[0].classList.add("selected"); } continue; } else if (deletefloor) { var floor = controlFloor.children[i].rel; floor = parseInt(floor); --floor; controlFloor.children[i].rel = floor; var height = this.layer.parameter.floorHeight * (floor - 1); controlFloor.children[i].children[0].innerHTML = "+" + height.toFixed(2) + "    " + floor + "楼"; controlFloor.children[i].classList.remove("selected"); } } } e.stopPropagation(); }; Menu.prototype.addWallMenuItem = function () { var id = this.layer.parameter.draw2DMenuItemsId[0]; var name = this.layer.parameter.menuitem2DName[0]; var menuitems = this.layer.parameter.menuitemwall; this.addSymbolMenuItem(id, name, menuitems, 0); }; Menu.prototype.addDoorsMenuItem = function () { var id = this.layer.parameter.draw2DMenuItemsId[1]; var name = this.layer.parameter.menuitem2DName[1]; var menuitems = this.layer.parameter.menuitemdoor; this.addSymbolMenuItem(id, name, menuitems, 0); }; Menu.prototype.addWindowMenuItem = function () { var id = this.layer.parameter.draw2DMenuItemsId[2]; var name = this.layer.parameter.menuitem2DName[2]; var menuitems = this.layer.parameter.menuitemwindow; this.addSymbolMenuItem(id, name, menuitems, 0); }; Menu.prototype.addStairwayMenuItem = function () { var id = this.layer.parameter.draw2DMenuItemsId[3]; var name = this.layer.parameter.menuitem2DName[3]; var menuitems = this.layer.parameter.menuitemstairway; this.addSymbolMenuItem(id, name, menuitems, 0); }; Menu.prototype.addBedroomMenuItem = function () { var id = this.layer.parameter.draw3DMenuItemsId[0]; var name = this.layer.parameter.menuitem3DName[0]; var menuitems = this.layer.parameter.menuitembedroom; this.addSymbolMenuItem(id, name, menuitems, 1); document.getElementById(this.layer.parameter.draw3DMenuItemsId[0]).style.display = "none"; }; Menu.prototype.addOutsideMenuItem = function () { var id = this.layer.parameter.drawDecorateMenuItemsId[0]; var name = this.layer.parameter.menuitemDecorateName[0]; this.addDecorateMenuItem(id, name); document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[0]).style.display = "none"; }; Menu.prototype.addWallpaperMenuItem = function () { var id = this.layer.parameter.drawDecorateMenuItemsId[1]; var name = this.layer.parameter.menuitemDecorateName[1]; this.addDecorateMenuItem2(id, name); document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[1]).style.display = "none"; }; Menu.prototype.addFloorMenuItem = function () { var id = this.layer.parameter.drawDecorateMenuItemsId[2]; var name = this.layer.parameter.menuitemDecorateName[2]; this.addDecorateMenuItem3(id, name); document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[2]).style.display = "none"; }; Menu.prototype.addsoftDecorationMenuItem = function () { var id = this.layer.parameter.drawDecorateMenuItemsId[3]; var name = this.layer.parameter.menuitemDecorateName[3]; var menuitems = this.layer.parameter.menuitemsoftDecoration; this.addSymbolMenuItem(id, name, menuitems, 1); document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[3]).style.display = "none"; }; //添加墙和地板的贴图 Menu.prototype.addDecorateMenuItem3 = function (id, name) { var symbol = document.createElement("li"); symbol.id = id; symbol.className = "menu-item menu-subitem"; var span = document.createElement("span"); span.className = "menu-title"; var oText = document.createTextNode(name); span.appendChild(oText); symbol.appendChild(span); symbol.addEventListener("click", Menu.prototype.opened2.bind(this)); var ul = this.addWallFloorTexture(); symbol.appendChild(ul); var main = document.getElementById("mainMenuContentList"); main.appendChild(symbol); }; //添加装修墙纸 Menu.prototype.addDecorateMenuItem2 = function (id, name) { var symbol = document.createElement("li"); symbol.id = id; symbol.className = "menu-item menu-subitem"; var span = document.createElement("span"); span.className = "menu-title"; var oText = document.createTextNode(name); span.appendChild(oText); symbol.appendChild(span); symbol.addEventListener("click", Menu.prototype.opened2.bind(this)); var ul = this.addPaint(); symbol.appendChild(ul); var main = document.getElementById("mainMenuContentList"); main.appendChild(symbol); }; //添加装修户外 Menu.prototype.addDecorateMenuItem = function (id, name) { var symbol = document.createElement("li"); symbol.id = id; symbol.className = "menu-item menu-subitem"; var span = document.createElement("span"); span.className = "menu-title"; var oText = document.createTextNode(name); span.appendChild(oText); symbol.appendChild(span); symbol.addEventListener("click", Menu.prototype.opened2.bind(this)); var ul = this.addGround(); symbol.appendChild(ul); var main = document.getElementById("mainMenuContentList"); main.appendChild(symbol); }; //0表示二维,1表示三维 Menu.prototype.addSymbolMenuItem = function (id, name, menuitems, flag) { var symbol = document.createElement("li"); symbol.id = id; symbol.className = "menu-item menu-subitem"; var span = document.createElement("span"); span.className = "menu-title"; var oText = document.createTextNode(name); span.appendChild(oText); symbol.appendChild(span); symbol.addEventListener("click", Menu.prototype.opened); var ul = document.createElement("ul"); var len = menuitems.length; for (var i = 0; i < len; ++i) { var li = document.createElement("li"); li.id = "menuitem" + id + i; li.className = "menu-item"; var span = document.createElement("span"); span.className = "menu-title"; var oText = document.createTextNode(menuitems[i]); span.appendChild(oText); li.appendChild(span); if (flag == 0) { var type = this.Events[0][0]; var listener = this.Events[0][1]; li.addEventListener(type, listener.bind(this), true); } else if (flag == 1) { li.addEventListener("click", Menu.prototype.openProduct); } else if (flag == 2) { var type = this.Events[2][0]; var listener = this.Events[2][1]; li.addEventListener(type, listener.bind(this), true); } ul.appendChild(li); } symbol.appendChild(ul); var main = document.getElementById("mainMenuContentList"); main.appendChild(symbol); }; Menu.prototype.addMenuTabsEvent = function () { var tabs = document.getElementById("mainMenuTabs"); var len = mainMenu.children.length; for (var i = 0; i < len; ++i) { var tab = tabs.children[i]; var type = this.Events[1][0]; var listener = this.Events[1][1]; listener = CanvasSketch.bindAsEventListener(listener, this); tab.addEventListener(type, listener, true); } }; Menu.prototype.addMenuItemEvents = function () { var mainMenu = document.getElementById("mainMenuContentList"); //var len=mainMenu.children.length; var len = 3; for (var i = 0; i < len; ++i) { var item = mainMenu.children[i]; item.addEventListener("click", Menu.prototype.opened); var ul = item.lastChild; for (var j = 0; j < ul.children.length; ++j) { var childitem = ul.children[j]; var type = this.Events[0][0]; var listener = this.Events[0][1]; listener = CanvasSketch.bindAsEventListener(listener, this); childitem.addEventListener(type, listener, true); childitem.children[0].addEventListener(type, listener, true); } } }; // 点击绘图各个菜单 改变当前绘画状态 Menu.prototype.add2DSymbol = (function () { // 各大菜单策咯 index为第几个菜单,id为点击的菜单的标识 var strategy = { menuitemrooms_walls: function (index) { this.tryAddSymbol = null this.layer.currentState.addSymbol = null; this.layer.currentState.startbuild = index ? "partition" : "wall"; }, menuitemdoors: function (index, id) { this.layer.currentState.startbuild = null this.layer.currentState.addSymbol = id; this.layer.build.createSymbol(id); console.log(this.layer.build) } } strategy.menuitemstairways = strategy.menuitemwindows = strategy.menuitemdoors; return function (e) { var target = e.currentTarget var result = /\d$/.exec(target.id) var instructions = result && target.id.substr(0, result.index) if (strategy[instructions]){ strategy[instructions].call(this, Number(result[0]), result.input) e.stopPropagation() } } })() Menu.prototype.addWallFloorTexture = function (e) { var ul_floor = document.createElement("ul"); ul_floor.className = "layout-table-60"; for (var i = 0; i < this.layer.parameter.floorTypeLength; ++i) { var li_floor = document.createElement("li"); li_floor.id = "floor" + i; li_floor.className = "menu-item"; var span = document.createElement("span"); span.className = "menu-icon"; var img = document.createElement("img"); img.src = this.layer.parameter.floorSrc_Pre + i + ".jpg"; img.id = "txt_img" + i; span.appendChild(img); li_floor.appendChild(span); if (i == 0) { li_floor.classList.add("selected"); ul_floor.lang = i; } ul_floor.appendChild(li_floor); } ul_floor.addEventListener("click", function (e) { if (e.target.parentNode.className == "menu-icon") { var img = document.getElementById(e.target.id); my3DEngine.decorate3D.floors.floorImg = img.src; my3DEngine.paint.beginPaint = true; var txtindex = img.id.replace("txt_img", ""); ul_floor.children[ul_floor.lang].classList.remove("selected"); ul_floor.children[parseInt(txtindex)].classList.add("selected"); ul_floor.lang = parseInt(txtindex); document.getElementById("container3d").style.cursor = "url('images/brush.ico'),auto"; } }); return ul_floor; }; Menu.prototype.addPaint = function (e) { var ul = document.createElement("ul"); ul.className = "layout-table-26"; for (var i = 0; i < this.layer.parameter.paint.length; ++i) { var li = document.createElement("li"); li.id = "paintitem" + i; li.className = "menu-item"; var span = document.createElement("span"); span.className = "menu-icon"; span.style.backgroundColor = this.layer.parameter.paint[i]; if (i == 0) { li.classList.add("selected"); ul.lang = i; } li.appendChild(span); ul.appendChild(li); } ul.addEventListener("click", function (e) { if (e.target.className == "menu-icon") { var parentid = e.target.parentNode.id; document.getElementById(parentid).classList.add("selected"); my3DEngine.paint.beginPaint = true; my3DEngine.paint.value = document.getElementById(parentid).children[0].style.backgroundColor; var color = my3DEngine.paint.value.replace("rgb(", "").replace(")", "").split(","); my3DEngine.paint.value = {}; my3DEngine.paint.value.r = color[0].trim() / 255; my3DEngine.paint.value.g = color[1].trim() / 255; my3DEngine.paint.value.b = color[2].trim() / 255; var selectid = "paintitem" + ul.lang; document.getElementById(selectid).classList.remove("selected"); ul.lang = parentid.replace("paintitem", ""); document.getElementById("container3d").style.cursor = "url('images/brush.ico'),auto"; } }); return ul; }; Menu.prototype.addGround = function (e) { var ul = document.createElement("ul"); ul.className = "layout-list"; var li = document.createElement("li"); li.id = "ground"; li.className = "menu-item menu-subitem"; var span = document.createElement("span"); span.className = "menu-title"; span.innerText = "地面"; li.appendChild(span); ul.appendChild(li); var ul_ground = document.createElement("ul"); ul_ground.className = "layout-table-60"; for (var i = 0; i < this.layer.parameter.groundTypeLength; ++i) { var li_ground = document.createElement("li"); li_ground.id = "ground" + i; li_ground.className = "menu-item"; var span = document.createElement("span"); span.className = "menu-icon"; var img = document.createElement("img"); img.src = this.layer.parameter.groundSrc_Pre + i + ".jpg"; img.id = "grd_img" + i; span.appendChild(img); li_ground.appendChild(span); if (i == 0) { li_ground.classList.add("selected"); ul_ground.lang = i; } ul_ground.appendChild(li_ground); } li.appendChild(ul_ground); ul_ground.addEventListener("click", function (e) { if (e.target.parentNode.className == "menu-icon") { var img = document.getElementById(e.target.id); //my3DEngine.groundTexture=img.src; var grdindex = img.id.replace("grd_img", ""); ul_ground.children[ul_ground.lang].classList.remove("selected"); ul_ground.children[parseInt(grdindex)].classList.add("selected"); ul_ground.lang = parseInt(grdindex); my3DEngine.decorate3D.refreshGround(img.src); } }); var li2 = document.createElement("li"); li2.id = "sky"; li2.className = "menu-item menu-subitem"; var span2 = document.createElement("span"); span2.className = "menu-title"; span2.innerText = "天空"; li2.appendChild(span2); ul.appendChild(li2); var ul_sky = document.createElement("ul"); ul_sky.className = "layout-table-60"; for (var i = 0; i < this.layer.parameter.skyTypeLength; ++i) { var li_sky = document.createElement("li"); li_sky.id = "sky" + i; li_sky.className = "menu-item"; var span = document.createElement("span"); span.className = "menu-icon"; var img = document.createElement("img"); img.src = this.layer.parameter.skySrc_Pre + i + ".jpg"; img.id = "sky_img" + i; span.appendChild(img); li_sky.appendChild(span); if (i == 0) { li_sky.classList.add("selected"); ul_sky.lang = i; } ul_sky.appendChild(li_sky); } li2.appendChild(ul_sky); ul_sky.addEventListener("click", function (e) { if (e.target.parentNode.className == "menu-icon") { var img = document.getElementById(e.target.id); var skyindex = img.id.replace("sky_img", ""); ul_sky.children[ul_sky.lang].classList.remove("selected"); ul_sky.children[parseInt(skyindex)].classList.add("selected"); ul_sky.lang = parseInt(skyindex); my3DEngine.decorate3D.refreshSkybox(img.src.replace(".jpg", "")); } }); return ul; }; Menu.prototype.opened = function (e) { if (e.currentTarget.className == "menu-item menu-subitem") { e.currentTarget.className = "menu-item menu-subitem selected opened"; } else if (e.currentTarget.className == "menu-item menu-subitem selected opened") { e.currentTarget.className = "menu-item menu-subitem"; } }; Menu.prototype.opened2 = function (e) { if (e.currentTarget.className == "menu-item menu-subitem") { e.currentTarget.className = "menu-item menu-subitem selected opened"; } else if (e.currentTarget.className == "menu-item menu-subitem selected opened") { if (e.target.id == this.layer.parameter.drawDecorateMenuItemsId[0]) { e.currentTarget.className = "menu-item menu-subitem"; } else if (e.target.id == this.layer.parameter.drawDecorateMenuItemsId[1]) { e.currentTarget.className = "menu-item menu-subitem"; } else if (e.target.id == this.layer.parameter.drawDecorateMenuItemsId[2]) { e.currentTarget.className = "menu-item menu-subitem"; } } }; Menu.prototype.show2D = function () { var container2d = document.getElementById("container2d"); container2d.style.display = "block"; container2d.style.cursor = "default"; container3d.style.display = "none"; document.getElementById("mark").style.marginTop = this.layer.scale.top; document.getElementById("mainMenuTitle").innerHTML = "绘图"; for (var i = 0; i < this.layer.parameter.draw2DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw2DMenuItemsId[i]).style.display = "block"; } for (var i = 0; i < this.layer.parameter.draw3DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw3DMenuItemsId[i]).style.display = "none"; } for (var i = 0; i < this.layer.parameter.drawDecorateMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[i]).style.display = "none"; } show3D = false; document.getElementById("lock-icon").classList.add("hidden"); document.getElementById("transparencyButton").classList.add("hidden"); }; Menu.prototype.addSelectTab = function (e) { var tabs = document.getElementById("mainMenuTabs"); var len = mainMenu.children.length; for (var i = 0; i < len; ++i) { var tab = tabs.children[i]; tab.classList.remove("selected"); } e.currentTarget.classList.add("selected"); var container2d = document.getElementById("container2d"); var container3d = document.getElementById("container3d"); if (e.currentTarget.id == "draw2D") { this.show2D(); } else if (e.currentTarget.id == "furnishing3D") { container3d.style.display = "block"; container3d.style.cursor = "default"; container2d.style.display = "none"; document.getElementById("mark").style.marginTop = this.layer.scale.top3d; document.getElementById("mainMenuTitle").innerHTML = "家具"; for (var i = 0; i < this.layer.parameter.draw2DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw2DMenuItemsId[i]).style.display = "none"; } for (var i = 0; i < this.layer.parameter.drawDecorateMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[i]).style.display = "none"; } for (var i = 0; i < this.layer.parameter.draw3DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw3DMenuItemsId[i]).style.display = "block"; } Show3DBase(); document.getElementById("lock-icon").classList.remove("hidden"); document.getElementById("transparencyButton").classList.remove("hidden"); } else if (e.currentTarget.id == "decorate3D") { if (container2d.style.display == "block") { container3d.style.display = "block"; container3d.style.cursor = "default"; container2d.style.display = "none"; document.getElementById("mark").style.marginTop = this.layer.scale.top3d; for (var i = 0; i < this.layer.parameter.draw2DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw2DMenuItemsId[i]).style.display = "none"; } Show3DBase(); } else { for (var i = 0; i < this.layer.parameter.draw3DMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.draw3DMenuItemsId[i]).style.display = "none"; } } for (var i = 0; i < this.layer.parameter.drawDecorateMenuItemsId.length; ++i) { document.getElementById(this.layer.parameter.drawDecorateMenuItemsId[i]).style.display = "block"; } document.getElementById("mainMenuTitle").innerHTML = "装修"; document.getElementById("lock-icon").classList.remove("hidden"); document.getElementById("transparencyButton").classList.remove("hidden"); } }; Menu.prototype.closeProduct = function (e) { var product = document.getElementById("productList"); product.style.display = "none"; }; Menu.prototype.editProduct = function (e) { var product_size = document.getElementById("editsize"); var product_ptrot = document.getElementById("editptrot"); var tabSize = document.getElementById("tabSize"); var tabPtRot = document.getElementById("tabPtRot"); product_size.addEventListener("click", function () { if (product_size.className == "") { product_size.className = "active"; tabSize.classList.add("active"); product_ptrot.classList.remove("active"); tabPtRot.classList.remove("active"); } }); product_ptrot.addEventListener("click", function () { if (product_ptrot.className == "") { product_ptrot.className = "active"; tabPtRot.classList.add("active"); product_size.classList.remove("active"); tabSize.classList.remove("active"); } }); /* var header=document.getElementById("editproducttitle"); if(this.productEdit==null) { this.productEdit={}; this.productEdit.dragging=false; this.productEdit.lastX=null; this.productEdit.lastY=null; } //var dragging=false; //var lastX,lastY; var configuratorProduct=document.getElementById("configuratorWindow"); header.addEventListener("mousedown", function(e){ this.productEdit.dragging=true; this.productEdit.lastX = e.clientX; this.productEdit.lastY = e.clientY; e.stopPropagation(); }.bind(this)); header.addEventListener("mouseup", function(e){ this.productEdit.dragging=false; e.stopPropagation(); }.bind(this)); document.addEventListener("mousemove", function(e){ if(this.productEdit.dragging) { var dx = e.clientX - this.productEdit.lastX; var dy = e.clientY - this.productEdit.lastY; var top=configuratorProduct.style.top.replace("px",""); var left=configuratorProduct.style.left.replace("px",""); top=parseInt(top); left=parseInt(left); top+=dy; left+=dx; configuratorProduct.style.top=top+"px"; configuratorProduct.style.left=left+"px"; this.productEdit.lastX = e.clientX; this.productEdit.lastY = e.clientY; } e.stopPropagation(); }.bind(this)); header.childNodes[0].addEventListener("click",function(){ configuratorProduct.style.display="none"; }); */ var anglevalue = document.getElementById("angleValue"); var range = document.getElementById("rangeAngle"); range.addEventListener("input", function () { anglevalue.value = range.value; var diffangle = range.value / 180 * Math.PI - my3DEngine.action3D.currentModelMesh.rotation.y; my3DEngine.action3D.currentModelMesh.rotate(BABYLON.Axis.Y, diffangle, BABYLON.Space.LOCAL); my3DEngine.action3D.currentModelMesh.rotation.y += diffangle; my3DEngine.action3D.currentModelMesh.angle = my3DEngine.action3D.currentModelMesh.rotation.y; for (var i = 0; i < my3DEngine.collectMeshes.arrowMeshes.length; ++i) { if (my3DEngine.collectMeshes.arrowMeshes[i] != null && typeof (my3DEngine.collectMeshes.arrowMeshes[i]) != "undefined") { my3DEngine.collectMeshes.arrowMeshes[i].dispose(); my3DEngine.collectMeshes.arrowMeshes[i] = null; my3DEngine.collectMeshes.arrowMeshes.splice(i, 1); --i; } } }, false); var removeMesh = document.getElementById("removeMesh"); removeMesh.addEventListener("click", function () { if (my3DEngine.action3D.currentModelMesh != null) { for (var i = 0; i < my3DEngine.collectMeshes.collidableMeshes.length; ++i) { if (my3DEngine.collectMeshes.collidableMeshes[i].name == my3DEngine.action3D.currentModelMesh.name) { my3DEngine.collectMeshes.collidableMeshes.splice(i, 1); --i; break; } } my3DEngine.action3D.currentModelMesh.dispose(); my3DEngine.action3D.currentModelMesh = null; } if (my3DEngine.modelLoader.currentPhotoMesh != null) { my3DEngine.modelLoader.currentPhotoMesh.dispose(); my3DEngine.modelLoader.currentPhotoMesh = null; } if (my3DEngine.collectMeshes.arrowMeshes.length > 0) { for (var i = 0; i < my3DEngine.collectMeshes.arrowMeshes.length; ++i) { my3DEngine.collectMeshes.arrowMeshes[i].dispose(); my3DEngine.collectMeshes.arrowMeshes[i] = null; } } configuratorProduct.style.display = "none"; my3DEngine.action3D.editProduct = false; }); var editMesh = document.getElementById("editMesh"); editMesh.addEventListener("click", function () { //var calculateLine=new CalculateLine(); var calculateLine = layer.calculateLine; var length = document.getElementById("params-length").childNodes[1].childNodes[0].value; if (!calculateLine.checkRate(length)) { alert("输入的长度有误!"); return; } length = parseFloat(length); var lastlength = document.getElementById("params-length").childNodes[1].childNodes[0].alt; var height = document.getElementById("params-height").childNodes[1].childNodes[0].value; if (!calculateLine.checkRate(height)) { alert("输入的高度有误!"); return; } height = parseFloat(height); var lastheight = document.getElementById("params-height").childNodes[1].childNodes[0].alt; if (my3DEngine.action3D.currentModelMesh != null && my3DEngine.action3D.currentModelMesh.name != "photo") { var width = document.getElementById("params-width").childNodes[1].childNodes[0].value; if (!calculateLine.checkRate(width)) { alert("输入的宽度有误!"); return; } width = parseFloat(width); var lastwidth = document.getElementById("params-width").childNodes[1].childNodes[0].alt; var positionX = document.getElementById("position-x").childNodes[1].childNodes[0].value; var positionY = document.getElementById("position-y").childNodes[1].childNodes[0].value; var positionZ = document.getElementById("position-z").childNodes[1].childNodes[0].value; if (!calculateLine.checkRate2(positionX)) { alert("输入的位置X有误!"); return; } if (!calculateLine.checkRate2(positionY)) { alert("输入的位置Y有误!"); return; } if (!calculateLine.checkRate2(positionZ)) { alert("输入的位置Z有误!"); return; } var mesh = my3DEngine.action3D.currentModelMesh; mesh.position.x = parseFloat(positionX); mesh.position.y = parseFloat(positionY); mesh.position.z = parseFloat(positionZ); var newscal = new BABYLON.Vector3(length / lastlength * mesh.scaling.x.toFixed(2), height / lastheight * mesh.scaling.y.toFixed(2), width / lastwidth * mesh.scaling.z.toFixed(2)); if (width != lastwidth) { mesh.scaling.z = newscal.z; } if (height != lastheight) { mesh.scaling.y = newscal.y; } if (length != lastlength) { mesh.scaling.x = newscal.x; } if (my3DEngine.collectMeshes.arrowMeshes.length > 0) { for (var i = 0; i < my3DEngine.collectMeshes.arrowMeshes.length; ++i) { my3DEngine.collectMeshes.arrowMeshes[i].dispose(); my3DEngine.collectMeshes.arrowMeshes[i] = null; } } mesh.computeWorldMatrix(true); mesh.refreshBoundingInfo(); my3DEngine.refreshSelectMesh(mesh); } else if (my3DEngine.modelLoader.currentPhotoMesh != null) { var mesh = my3DEngine.modelLoader.currentPhotoMesh; var newscal = new BABYLON.Vector2(length / lastlength * mesh.scaling.x.toFixed(2), height / lastheight * mesh.scaling.y.toFixed(2)); if (length != lastlength) { mesh.scaling.x = newscal.x; mesh.length = length; } if (height != lastheight) { mesh.scaling.y = newscal.y; mesh.height = height; } } configuratorProduct.style.display = "none"; my3DEngine.action3D.editProduct = false; }); }; Menu.prototype.openProduct = function (e) { var product = document.getElementById("productList"); product.style.display = "block"; var productItems = document.getElementById("productItems"); while (productItems.hasChildNodes()) //当div下还存在子节点时 循环继续 { productItems.removeChild(productItems.firstChild); } var load = document.createElement("div"); load.id = "loadproduct"; load.innerText = "加载中。。。"; productItems.appendChild(load); var productCount = 0; var productDivs = []; var addProductItem = function (id, text, type) { var div = document.createElement("div"); div.className = "product-item"; div.id = "div" + id; div.addEventListener("click", function () { var div = document.getElementById(this.id); if (div != null) { div.children[0].className = "selected show"; } }); var span1 = document.createElement("span"); span1.className = "selected"; var oText = document.createTextNode("Added"); span1.appendChild(oText); var span2 = document.createElement("span"); span2.className = "product-item-image"; var img = document.createElement("img"); img.src = "images/product/" + id + ".jpg"; img.id = "product" + id; if (type == 1) { img.addEventListener("click", showPhoFrame); } else if (type == 2) { img.addEventListener("click", showPicture); } else { img.addEventListener("click", showProduct3D); } span2.appendChild(img); var span3 = document.createElement("span"); span3.className = "product-item-description"; //span3.rel="wnp.engine3D.addProgrammable_"+id; var oText2 = document.createTextNode(text); span3.appendChild(oText2); div.appendChild(span1); div.appendChild(span2); div.appendChild(span3); --productCount; productDivs.push(div); if (productCount == 0) { for (var i = 0; i < productDivs.length; ++i) { productItems.appendChild(productDivs[i]); } productItems.removeChild(productItems.firstChild); } //return div; } if (e.target.innerHTML.indexOf(">床") > 0) { productCount = 4; addProductItem("c1", "床1"); addProductItem("c2", "床2"); addProductItem("c3", "床3"); addProductItem("c4", "床4"); } else if (e.target.innerHTML.indexOf(">沙发") > 0) { productCount = 12; addProductItem("s1", "沙发1"); addProductItem("d", "沙发2"); addProductItem("s3", "沙发3"); addProductItem("s4", "沙发4"); addProductItem("s5", "沙发5"); addProductItem("s6", "沙发6"); addProductItem("s7", "沙发7"); addProductItem("s8", "沙发8"); addProductItem("s9", "沙发9"); addProductItem("s10", "沙发10"); addProductItem("s11", "沙发11"); addProductItem("s12", "沙发12"); } else if (e.target.innerHTML.indexOf(">椅子") > 0) { productCount = 10; addProductItem("y1", "椅子1"); addProductItem("y2", "椅子2"); addProductItem("y3", "椅子3"); addProductItem("y4", "椅子4"); addProductItem("y5", "椅子5"); addProductItem("y6", "椅子6"); addProductItem("y7", "椅子7"); addProductItem("y8", "椅子8"); addProductItem("y9", "椅子9"); addProductItem("y10", "椅子10"); } else if (e.target.innerHTML.indexOf(">柜子") > 0) { productCount = 24; addProductItem("g1", "柜子1"); addProductItem("g2", "柜子2"); addProductItem("g3", "柜子3"); addProductItem("g4", "柜子4"); addProductItem("g5", "柜子5"); addProductItem("g6", "柜子6"); addProductItem("g7", "柜子7"); addProductItem("g8", "柜子8"); addProductItem("g9", "柜子9"); addProductItem("g10", "柜子10"); addProductItem("g11", "柜子11"); addProductItem("g12", "柜子12"); addProductItem("g13", "柜子13"); addProductItem("g14", "柜子14"); addProductItem("g15", "柜子15"); addProductItem("g16", "柜子16"); //addProductItem("g17","柜子17"); addProductItem("g18", "柜子18"); addProductItem("g19", "柜子19"); addProductItem("g20", "柜子20"); addProductItem("g21", "柜子21"); addProductItem("g22", "柜子22"); addProductItem("g23", "柜子23"); addProductItem("g24", "柜子24"); addProductItem("g25", "柜子25"); } else if (e.target.innerHTML.indexOf(">桌子") > 0) { productCount = 6; addProductItem("z1", "桌子1"); addProductItem("z2", "桌子2"); addProductItem("z3", "桌子3"); addProductItem("z4", "桌子4"); addProductItem("z5", "桌子5"); addProductItem("gui", "桌子6"); /* addProductItem("d1","桌子6"); addProductItem("d2","桌子7"); addProductItem("d3","桌子8"); addProductItem("w1","桌子9"); addProductItem("w2","桌子10"); addProductItem("w3","桌子11"); addProductItem("test","桌子12"); addProductItem("test1","桌子13"); addProductItem("test2","桌子14"); */ } else if (e.target.innerHTML.indexOf(">古董") > 0) { productCount = 17; addProductItem("11", "古董1"); addProductItem("12", "古董2"); addProductItem("13", "古董3"); addProductItem("15", "古董4"); addProductItem("17", "古董5"); addProductItem("21", "古董6"); addProductItem("37", "古董7"); addProductItem("44", "古董8"); addProductItem("45", "古董9"); addProductItem("52", "古董11"); addProductItem("54", "古董12"); addProductItem("64", "古董13"); addProductItem("65", "古董14"); addProductItem("66", "古董15"); addProductItem("67", "古董16"); addProductItem("84", "古董17"); addProductItem("86", "古董18"); } else if (e.target.innerHTML.indexOf(">相框") > 0) { //productCount=11; productCount = 1; addProductItem("h2_11", "相框1", 1); /* addProductItem("h2_2","相框2",1); addProductItem("h2_3","相框3",1); addProductItem("h3_1","相框4",1); addProductItem("h3_2","相框5",1); addProductItem("h3_3","相框6",1); addProductItem("h3_4","相框7",1); addProductItem("h3_5","相框8",1); addProductItem("h4_1","相框9",1); addProductItem("h4_2","相框10",1); */ } }; Menu.prototype.deleteWall = function (e) { var wallid = this.layer.select.selectWall.wallid; var index = this.layer.select.selectWall.index; var state = this.layer.vectors[wallid].geometry.state; var vector = null; //0表示闭合 if (state == 0) { this.layer.vectors[wallid].geometry.state = 1; //处理wallInfo if (index != this.layer.vectors[wallid].geometry.wallInfo.length - 1) { var wallInfo = []; var points = []; var mapping = {}; for (var i = 0; i < this.layer.vectors[wallid].geometry.wallInfo.length; ++i) { mapping[i] = index + 1; wallInfo[i] = this.layer.vectors[wallid].geometry.wallInfo[index + 1]; points[i] = this.layer.vectors[wallid].geometry.points[index + 1]; ++index; if (index == this.layer.vectors[wallid].geometry.wallInfo.length - 1) { index = -1; } } //删除symbols for (var key in this.layer.vectors[wallid].symbol2Ds) { var symbol2d = this.layer.vectors[id].symbol2Ds[key]; if (symbol2d.attributes.wallstartindex == index) { this.layer.deleteSymbol(symbol2d.id, symbol2d.attributes.wallId); } else { symbol2d.wallstartindex = mapping[symbol2d.wallstartindex]; symbol2d.wallendindex = mapping[symbol2d.wallendindex]; } } this.layer.vectors[wallid].geometry.wallInfo = wallInfo; this.layer.vectors[wallid].geometry.points = points; } //删除symbols else { for (var key in this.layer.vectors[wallid].symbol2Ds) { var symbol2d = this.layer.vectors[id].symbol2Ds[key]; if (symbol2d.attributes.wallstartindex == index) { this.layer.deleteSymbol(symbol2d.id, symbol2d.attributes.wallId); } } } //修改border以及wallInfo var len = this.layer.vectors[wallid].geometry.wallInfo.length; this.layer.vectors[wallid].geometry.wallInfo[len - 1].thick = 0; this.layer.vectors[wallid].geometry.wallInfo[len - 1].height = 0; this.layer.vectors[wallid].geometry.wallInfo[len - 1].measuredistance = 0; } //1表示不闭合 else { //删除墙 if (this.layer.vectors[wallid].geometry.points.length == 2) { this.layer.deleteVector(wallid); } //删除最后一个点 else if (index == this.layer.vectors[wallid].geometry.wallInfo.length - 2) { this.layer.vectors[wallid].geometry.points.pop(); this.layer.vectors[wallid].geometry.wallInfo.pop(); //修改border以及wallInfo this.layer.vectors[wallid].geometry.wallInfo[index].thick = 0; this.layer.vectors[wallid].geometry.wallInfo[index].height = 0; this.layer.vectors[wallid].geometry.wallInfo[index].measuredistance = 0; } //分成两堵墙 else { var points = []; var mapping = {}; //var wallInfo=[]; //修改border以及wallInfo this.layer.vectors[wallid].geometry.wallInfo[index].thick = 0; this.layer.vectors[wallid].geometry.wallInfo[index].height = 0; this.layer.vectors[wallid].geometry.wallInfo[index].measuredistance = 0; //array.splice(start,delCount);//从start的位置开始向后删除delCount个元素 for (var i = index + 1; i < this.layer.vectors[wallid].geometry.wallInfo.length; ++i) { mapping[i] = points.length; points.push(this.layer.vectors[wallid].geometry.points[i]); //wallInfo.push(this.layer.vectors[wallid].geometry.wallInfo[i]); } this.layer.vectors[wallid].geometry.wallInfo.splice(index + 1, points.length); this.layer.vectors[wallid].geometry.points.splice(index + 1, points.length); //新建墙 var wall = new Wall(points, document.getElementById("imgWall")); var vector = new Vector(wall, wallStyle); vector.geometry.state = 1; vector.geometry.wallInfo[points.length - 1].thick = 0; vector.geometry.wallInfo[points.length - 1].height = 0; vector.geometry.wallInfo[points.length - 1].measuredistance = 0; vector.geometry.floor = this.layer.selectFloor; vector.geometry.contextIndex = this.layer.vectors[wallid].geometry.contextIndex; //处理symbols for (var key in this.layer.vectors[wallid].symbol2Ds) { var symbol2d = this.layer.vectors[id].symbol2Ds[key]; if (symbol2d.attributes.wallstartindex == index) { this.layer.deleteSymbol(symbol2d.id, symbol2d.attributes.wallId); } else if (symbol2d.attributes.wallstartindex > index) { symbol2d.wallstartindex = mapping[symbol2d.wallstartindex]; symbol2d.wallendindex = mapping[symbol2d.wallendindex]; } } } } //更新 this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); if (vector != null) { this.layer.data2d.wallIds.push(vector.id); this.layer.drawSingleVector(vector); } document.getElementById('configuratorWindow2').style.display = "none"; e.stopPropagation(); }; Menu.prototype.showWallDialog = function () { document.getElementById('configuratorWindow2').style.display = ""; }; Menu.prototype.changeWall = function (e) { var wallid = this.layer.select.selectWall.wallid; var index = this.layer.select.selectWall.index; var thick = document.getElementById("edit2D1").value; var height = document.getElementById("edit2D2").value; this.layer.vectors[wallid].geometry.wallInfo[index].height = parseInt(height); this.layer.vectors[wallid].geometry.wallInfo[index].thick = parseInt(thick); this.layer.control.refreshCanvas = true; this.layer.renderer.autoRedraw(); document.getElementById('configuratorWindow2').style.display = "none"; e.stopPropagation(); }; Menu.prototype.initEdit2D = function (wallid, index) { var height = this.layer.vectors[wallid].geometry.wallInfo[index].height; var thick = this.layer.vectors[wallid].geometry.wallInfo[index].thick; var measuredistance = this.layer.vectors[wallid].geometry.wallInfo[index].measuredistance; document.getElementById("edit2D1").value = thick; document.getElementById("edit2D11").value = thick; document.getElementById("edit2D2").value = height; document.getElementById("edit2D22").value = height; this.layer.select.selectWall.wallid = wallid; this.layer.select.selectWall.index = index; }; Menu.prototype.Events = [["click", Menu.prototype.add2DSymbol], ["click", Menu.prototype.addSelectTab], ["click", Menu.prototype.addGround]];