forgemodel.js 合併
This commit is contained in:
		
						commit
						05ecdb90ee
					
				@ -48,6 +48,7 @@
 | 
				
			|||||||
                setLightColor();
 | 
					                setLightColor();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (arr.indexOf(3) != -1) {
 | 
					            if (arr.indexOf(3) != -1) {
 | 
				
			||||||
 | 
					                getLightPoint();
 | 
				
			||||||
                getHotspotPoint(() => {
 | 
					                getHotspotPoint(() => {
 | 
				
			||||||
                    show3DModel(data.urn_3D);
 | 
					                    show3DModel(data.urn_3D);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
@ -462,11 +463,49 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    async function getLightPoint(callback = null) {
 | 
				
			||||||
 | 
					        let url = baseApiUrl + "/api/GetDevNodeForCor";
 | 
				
			||||||
 | 
					        let sendData = {
 | 
				
			||||||
 | 
					            "device_area_tag": pageAct.AreaTag,
 | 
				
			||||||
 | 
					            "device_building_tag": pageAct.buiTag,
 | 
				
			||||||
 | 
					            "device_system_tag": pageAct.sysMainTag,
 | 
				
			||||||
 | 
					            "device_name_tag": pageAct.sysSubTag,
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        objSendData.Data = sendData;
 | 
				
			||||||
 | 
					        ytAjax = new YourTeam.Ajax(url, objSendData, function (res) {
 | 
				
			||||||
 | 
					            if (!res || res.code != "0000" || !res.data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                let myDataList = [];
 | 
				
			||||||
 | 
					                $.each(res.data, (idx, data) => {
 | 
				
			||||||
 | 
					                    let item = {};
 | 
				
			||||||
 | 
					                    item.position = {};
 | 
				
			||||||
 | 
					                    if (data.device_node_coordinate_3d != null && isJSON(data.device_node_coordinate_3d)) {
 | 
				
			||||||
 | 
					                        item.position = JSON.parse(data.device_node_coordinate_3d);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    $.extend(item, data);
 | 
				
			||||||
 | 
					                    myDataList.push(item);
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                console.log("2", myDataList)
 | 
				
			||||||
 | 
					                setLightPoint(myDataList);
 | 
				
			||||||
 | 
					                callback ? callback() : "";
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }, null, "POST").send();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function setHotspotPoint(myDataList = []) {
 | 
					    function setHotspotPoint(myDataList = []) {
 | 
				
			||||||
        console.log(myDataList)
 | 
					        console.log(myDataList)
 | 
				
			||||||
        getHopspotPoint(myDataList);
 | 
					        getHopspotPoint(myDataList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    async function setLightPoint(myDataList = []) {
 | 
				
			||||||
 | 
					        console.log(myDataList)
 | 
				
			||||||
 | 
					        getLightData(myDataList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var parentEle = "";
 | 
					    var parentEle = "";
 | 
				
			||||||
    onEvent("autodesk:click:sprite", "[name=forgeViewer]", function (e, obj) {
 | 
					    onEvent("autodesk:click:sprite", "[name=forgeViewer]", function (e, obj) {
 | 
				
			||||||
        forgeUnFocusAll();
 | 
					        forgeUnFocusAll();
 | 
				
			||||||
 | 
				
			|||||||
@ -51,6 +51,7 @@
 | 
				
			|||||||
            <canvas id="iot-heatmap-legend" width="300" height="50"></canvas>
 | 
					            <canvas id="iot-heatmap-legend" width="300" height="50"></canvas>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <button type="button" class="btn btn-info" onclick="showHeat()">顯示熱圖圖示</button>
 | 
					        <button type="button" class="btn btn-info" onclick="showHeat()">顯示熱圖圖示</button>
 | 
				
			||||||
 | 
					        <button type="button" class="btn btn-default" onclick="showList()">顯示設備清單</button>
 | 
				
			||||||
        <!--<input id="lightBar" type="range" min="0" max="100" step="5" onchange="changeLightPower()">亮度-->
 | 
					        <!--<input id="lightBar" type="range" min="0" max="100" step="5" onchange="changeLightPower()">亮度-->
 | 
				
			||||||
        <!-- <input type="range">Main Axis</input> -->
 | 
					        <!-- <input type="range">Main Axis</input> -->
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@ -244,7 +245,7 @@
 | 
				
			|||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1pdHN1YmlzaGkvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU5JUExJUFGXzEyMjgubndk');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1pdHN1YmlzaGkvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU5JUExJUFGXzEyMjgubndk');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //12.30 整棟樓 ARC + MEP
 | 
					            //12.30 整棟樓 ARC + MEP
 | 
				
			||||||
            launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8xMl8zMC5ud2Q');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8xMl8zMC5ud2Q');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //12.30 整棟樓 ARC + MEP 半透明
 | 
					            //12.30 整棟樓 ARC + MEP 半透明
 | 
				
			||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTUlOEQlOEElRTklODAlOEYlRTYlOTglOEUlRTUlQkIlQkElRTclQUYlODlfMTJfMzAubndk');
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8lRTUlOEQlOEElRTklODAlOEYlRTYlOTglOEUlRTUlQkIlQkElRTclQUYlODlfMTJfMzAubndk');
 | 
				
			||||||
@ -254,8 +255,11 @@
 | 
				
			|||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwTUVQJUUzJTgwJTkxXzIwMjJfMTJfMTMubndj');//new MEP
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwTUVQJUUzJTgwJTkxXzIwMjJfMTJfMTMubndj');//new MEP
 | 
				
			||||||
            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwQVJDJUUzJTgwJTkxJUU1JTg1JUE4JUU2JUEzJTlGXzIwMjJfMTJfMTMubndj');//全棟 ARC
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwQVJDJUUzJTgwJTkxJUU1JTg1JUE4JUU2JUEzJTlGXzIwMjJfMTJfMTMubndj');//全棟 ARC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //01.06 加上room_id(樓層有燈具)
 | 
				
			||||||
 | 
					            //launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnNjb2RlX2ZvcmdlX3Rlc3QvJUUzJTgwJTkwJUU1JThGJUIwJUU1JThDJTk3JUU0JUI4JUFEJUU4JThGJUIxJUU1JUE0JUE3JUU2JUE4JTkzJUUzJTgwJTkxQVJDJUU5JTlCJTk5JUU2JUE4JUExJUU1JUJDJThGK01FUCVFNiU4QiU4NiVFNyVCMyVCQiVFNyVCNSVCMV8yMDIzXzAxXzA2Lm53ZA');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //01.06 樓層刪除燈具
 | 
				
			||||||
 | 
					            launchViewer('dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6LW1vZGVsX3Rlc3QxMTIxLyVFMyU4MCU5MCVFNSU4RiVCMCVFNSU4QyU5NyVFNCVCOCVBRCVFOCU4RiVCMSVFNSVBNCVBNyVFNiVBOCU5MyVFMyU4MCU5MUFSQyVFOSU5QiU5OSVFNiVBOCVBMSVFNSVCQyU4RitNRVAlRTYlOEIlODYlRTclQjMlQkIlRTclQjUlQjFfJUU1JTg4JUFBJUU3JTg3JTg4JUU1JTg1JUI3XzIwMjNfMDFfMDYubndk');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        //function move1Floor() {
 | 
					        //function move1Floor() {
 | 
				
			||||||
@ -412,6 +416,10 @@
 | 
				
			|||||||
            createHeatmapRect(labels, colorStops);
 | 
					            createHeatmapRect(labels, colorStops);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function showList() {
 | 
				
			||||||
 | 
					            consoleList();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function createHeatmapRect(labels, colorStops) {
 | 
					        function createHeatmapRect(labels, colorStops) {
 | 
				
			||||||
            if (!this.canvas) {
 | 
					            if (!this.canvas) {
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
 | 
				
			|||||||
@ -330,15 +330,6 @@ class elevator3D {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function onDocumentLoadSuccess(doc, eleOption) {
 | 
					function onDocumentLoadSuccess(doc, eleOption) {
 | 
				
			||||||
    //取得燈光清單
 | 
					 | 
				
			||||||
    if (lightDataList != undefined && lightDataList != null && lightDataList.length > 0) {
 | 
					 | 
				
			||||||
        lightDataList.forEach((myData, index) => {
 | 
					 | 
				
			||||||
            //if (myData.priority == 5) {
 | 
					 | 
				
			||||||
                const position = JSON.parse(myData.device_coordinate_3d);
 | 
					 | 
				
			||||||
                lightList.push({ dbid: myData.forge_dbid, spotLight: newLight(position) });
 | 
					 | 
				
			||||||
            //}
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var viewables = doc.getRoot().getDefaultGeometry();
 | 
					    var viewables = doc.getRoot().getDefaultGeometry();
 | 
				
			||||||
    viewer.loadDocumentNode(doc, viewables).then(i => {
 | 
					    viewer.loadDocumentNode(doc, viewables).then(i => {
 | 
				
			||||||
@ -727,15 +718,26 @@ function hideColor(nodeId) {//顏色改成透明
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------------------ 紀錄熱點座標 ---------------
 | 
					//紀錄燈具座標
 | 
				
			||||||
function getHopspotPoint(data) {
 | 
					async function getLightData(data) {
 | 
				
			||||||
    //var av = Autodesk.Viewing;
 | 
					    lightDataList = data;
 | 
				
			||||||
    myDataList = data;
 | 
					}
 | 
				
			||||||
    //viewer.addEventListener(av.GEOMETRY_LOADED_EVENT, addHotPoint, {
 | 
					
 | 
				
			||||||
    //    once: true,
 | 
					async function testNewLight(dataList) {
 | 
				
			||||||
    //});
 | 
					    dataList.forEach((myData, index) => {
 | 
				
			||||||
 | 
					        const position = JSON.parse(myData.device_node_coordinate_3d);
 | 
				
			||||||
 | 
					        lightList.push({ dbid: myData.forge_dbid, device_guid: myData.device_guid, lightObject: new THREE.SpotLight(0xffffff, 200, 20, 0.6, 0.5, 10) });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        lightList[index].lightObject.position.set(position.x, position.y, position.z);
 | 
				
			||||||
 | 
					        lightList[index].lightObject.castShadow = true;
 | 
				
			||||||
 | 
					        lightList[index].lightObject.visible = true;
 | 
				
			||||||
 | 
					        lightList[index].lightObject.target.position.set(position.x, position.y, position.z - 20);
 | 
				
			||||||
 | 
					        viewer.scene.add(lightList[index].lightObject.target);
 | 
				
			||||||
 | 
					        viewer.scene.add(lightList[index].lightObject);
 | 
				
			||||||
 | 
					        viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//-------------------- end ----------------------
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------------------- 加入熱點 -----------------
 | 
					//------------------- 加入熱點 -----------------
 | 
				
			||||||
async function addHotPoint(data) {
 | 
					async function addHotPoint(data) {
 | 
				
			||||||
@ -753,13 +755,10 @@ async function addHotPoint(data) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
					    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //取得燈光清單
 | 
					    if (lightDataList != undefined && lightDataList != null && lightDataList.length > 0) {
 | 
				
			||||||
    //if (lightDataList != undefined && lightDataList != null && lightDataList.length > 0) {
 | 
					        testNewLight(lightDataList);
 | 
				
			||||||
    //    lightDataList.forEach((myData, index) => {
 | 
					    }
 | 
				
			||||||
    //        const position = JSON.parse(myData.device_node_coordinate_3d);
 | 
					    
 | 
				
			||||||
    //        lightList.push({ dbid: myData.forge_dbid, spotLight: newLight(position) });
 | 
					 | 
				
			||||||
    //    });
 | 
					 | 
				
			||||||
    //}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //熱點 點擊事件註冊
 | 
					    //熱點 點擊事件註冊
 | 
				
			||||||
    viewer.addEventListener(DataVizCore.MOUSE_CLICK, onSpriteClicked);// SPRITE_SELECTED
 | 
					    viewer.addEventListener(DataVizCore.MOUSE_CLICK, onSpriteClicked);// SPRITE_SELECTED
 | 
				
			||||||
@ -790,12 +789,17 @@ async function addHotPoint(data) {
 | 
				
			|||||||
        if (event != undefined && event != null) {
 | 
					        if (event != undefined && event != null) {
 | 
				
			||||||
            if (event.dbId >= dbIdStart) {//event.dbId > 0 && event.dbId < 19
 | 
					            if (event.dbId >= dbIdStart) {//event.dbId > 0 && event.dbId < 19
 | 
				
			||||||
                console.log(`Sprite clicked: ${event.dbId}`);
 | 
					                console.log(`Sprite clicked: ${event.dbId}`);
 | 
				
			||||||
                openHotspotModal();
 | 
					                
 | 
				
			||||||
                for (let i = dbIdStart; i <= myDataList.length + 10; i++) {
 | 
					                for (let i = dbIdStart; i <= myDataList.length + 10; i++) {
 | 
				
			||||||
                    changeColorForHotspot(i);
 | 
					                    changeColorForHotspot(i);
 | 
				
			||||||
                    changeScaleForHotspot(i, false);
 | 
					                    changeScaleForHotspot(i, false);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                let myData = myDataList.filter(x => x._dbId == event.dbId)[0];
 | 
					                let myData = myDataList.filter(x => x._dbId == event.dbId)[0];
 | 
				
			||||||
 | 
					                if (lightList != undefined && lightList != null && lightList.length > 0) {
 | 
				
			||||||
 | 
					                    //setLightOpenOrClose(false, myData.device_guid);//關燈測試
 | 
				
			||||||
 | 
					                    //setLightValues(myData.device_guid, 20, 0x00ff00);//更改燈光顏色和強度的測試
 | 
				
			||||||
 | 
					                    moveViewToDevice(myData.forge_dbid);//移動視角至該設備
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                $(selector).trigger("autodesk:click:sprite", { event, myData });
 | 
					                $(selector).trigger("autodesk:click:sprite", { event, myData });
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                $(selector).trigger("autodesk:clickOut:sprite", { event });
 | 
					                $(selector).trigger("autodesk:clickOut:sprite", { event });
 | 
				
			||||||
@ -817,7 +821,6 @@ async function addHotPoint(data) {
 | 
				
			|||||||
    //        if (dbIds.length > 0) {
 | 
					    //        if (dbIds.length > 0) {
 | 
				
			||||||
    //            // 處理已選取元件的邏輯
 | 
					    //            // 處理已選取元件的邏輯
 | 
				
			||||||
    //            $(selector).trigger("autodesk:click:sprite", event);
 | 
					    //            $(selector).trigger("autodesk:click:sprite", event);
 | 
				
			||||||
    //            //openHotspotModal();
 | 
					 | 
				
			||||||
    //            console.log(`------ name: ${viewer.model.getInstanceTree().getNodeName(dbIds)} , dbId: ${dbIds}`);//, id: ${event.clickInfo.object.id}, position.x: ${event.clickInfo.point.x}, y: ${event.clickInfo.point.y}, z: ${event.clickInfo.point.z}
 | 
					    //            console.log(`------ name: ${viewer.model.getInstanceTree().getNodeName(dbIds)} , dbId: ${dbIds}`);//, id: ${event.clickInfo.object.id}, position.x: ${event.clickInfo.point.x}, y: ${event.clickInfo.point.y}, z: ${event.clickInfo.point.z}
 | 
				
			||||||
    //        } else {
 | 
					    //        } else {
 | 
				
			||||||
    //            // 處理沒有選取元件的邏輯
 | 
					    //            // 處理沒有選取元件的邏輯
 | 
				
			||||||
@ -864,22 +867,7 @@ async function changeScaleForHotspot(dbId, type = true) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
//------------------- end --------------
 | 
					//------------------- end --------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//----------------- 開關熱點小視窗 ----------------------
 | 
					 | 
				
			||||||
function openHotspotModal() {
 | 
					 | 
				
			||||||
    //var modal = document.getElementById("hotspotModal");
 | 
					 | 
				
			||||||
    //modal.style.display = "block";
 | 
					 | 
				
			||||||
    //$("#pills-register-tab").removeClass("active");
 | 
					 | 
				
			||||||
    //$("#pills-alarm-tab").removeClass("active");
 | 
					 | 
				
			||||||
    //$("#pills-operation-tab").removeClass("active");
 | 
					 | 
				
			||||||
    //$("#pills-login-tab").tab("show");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
function closeHotspotModal() {
 | 
					 | 
				
			||||||
    //var modal = document.getElementById("hotspotModal");
 | 
					 | 
				
			||||||
    //modal.style.display = "none";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
//------------------ end --------------------------------
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------------------ 熱圖 -------------------------------
 | 
					//------------------ 熱圖 -------------------------------
 | 
				
			||||||
async function loadHeatmaps(model) {
 | 
					async function loadHeatmaps(model) {
 | 
				
			||||||
@ -1118,25 +1106,24 @@ async function newLight(lightPosition) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//調整燈光 強度、顏色
 | 
					//調整燈光 強度、顏色
 | 
				
			||||||
async function setLightValues(dbid, intensity, color) {
 | 
					async function setLightValues(deviceGuid, intensity, color) {
 | 
				
			||||||
    for (var i = 0; i < lightList.length; i++) { 
 | 
					    for (var i = 0; i < lightList.length; i++) { 
 | 
				
			||||||
        if (lightList[i].dbid == dbid) {
 | 
					        if (lightList[i].device_guid == deviceGuid) {
 | 
				
			||||||
            lightList[i].spotLight.intensity = intensity;
 | 
					            lightList[i].lightObject.intensity = intensity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var tempcolor = new THREE.Color().setHex(color);
 | 
					            var tempcolor = new THREE.Color().setHex(color);
 | 
				
			||||||
            lightList[i].spotLight.color = tempcolor;
 | 
					            lightList[i].lightObject.color = tempcolor;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    viewer.impl.sceneUpdated(true);
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//燈光開關
 | 
					//燈光開關
 | 
				
			||||||
function setLightOpenOrClose(value, light) {
 | 
					async function setLightOpenOrClose(value, deviceGuid) {
 | 
				
			||||||
    if (value) {
 | 
					    for (var i = 0; i < lightList.length; i++) {
 | 
				
			||||||
        light.visible = true;
 | 
					        if (lightList[i].device_guid == deviceGuid) {
 | 
				
			||||||
 | 
					            lightList[i].lightObject.visible = value;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    else {
 | 
					 | 
				
			||||||
        light.visible = false;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    viewer.impl.sceneUpdated(true);
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1209,11 +1196,6 @@ function getHopspotPoint(data) {
 | 
				
			|||||||
    myDataList = data;
 | 
					    myDataList = data;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//紀錄燈具座標
 | 
					 | 
				
			||||||
async function getLightData(data) {
 | 
					 | 
				
			||||||
    lightDataList = data;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//呼叫載入熱圖
 | 
					//呼叫載入熱圖
 | 
				
			||||||
async function toLoadHeatmap(roomArr) {
 | 
					async function toLoadHeatmap(roomArr) {
 | 
				
			||||||
    const model = viewer.model;
 | 
					    const model = viewer.model;
 | 
				
			||||||
@ -1226,3 +1208,14 @@ function setShadowShow(type = false) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//============================= end ===================================
 | 
					//============================= end ===================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function moveViewToDevice(letter) {
 | 
				
			||||||
 | 
					    if (letter != "") {
 | 
				
			||||||
 | 
					        viewer.clearSelection();
 | 
				
			||||||
 | 
					        viewer.select(letter);
 | 
				
			||||||
 | 
					        viewer.fitToView([letter]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					        viewer.clearSelection();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -5,6 +5,7 @@ var elevatorSpeed;
 | 
				
			|||||||
var allDbIdsStr;
 | 
					var allDbIdsStr;
 | 
				
			||||||
let bulbLight;//點燈
 | 
					let bulbLight;//點燈
 | 
				
			||||||
var spotLight;//聚光燈
 | 
					var spotLight;//聚光燈
 | 
				
			||||||
 | 
					let testLight;
 | 
				
			||||||
var myDataList;//設備清單
 | 
					var myDataList;//設備清單
 | 
				
			||||||
var viewableData;
 | 
					var viewableData;
 | 
				
			||||||
var dataVizExtn;
 | 
					var dataVizExtn;
 | 
				
			||||||
@ -12,6 +13,8 @@ var spriteColorRed;
 | 
				
			|||||||
var levels;//剖面用
 | 
					var levels;//剖面用
 | 
				
			||||||
var light;
 | 
					var light;
 | 
				
			||||||
let pointLightHelper;
 | 
					let pointLightHelper;
 | 
				
			||||||
 | 
					var tagIdDevList = [];//模型設備List: device_number、device_coordinate_3d、forge_dbid
 | 
				
			||||||
 | 
					var roomDataList = [];//模型房間List: room_id、room_name
 | 
				
			||||||
                   
 | 
					                   
 | 
				
			||||||
function launchViewer(urn) {
 | 
					function launchViewer(urn) {
 | 
				
			||||||
    var av = Autodesk.Viewing;
 | 
					    var av = Autodesk.Viewing;
 | 
				
			||||||
@ -140,11 +143,9 @@ function onDocumentLoadSuccess(doc) {
 | 
				
			|||||||
   
 | 
					   
 | 
				
			||||||
    viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function () {
 | 
					    viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function () {
 | 
				
			||||||
        var instanceTree = viewer.model.getData().instanceTree;
 | 
					        var instanceTree = viewer.model.getData().instanceTree;
 | 
				
			||||||
     
 | 
					 | 
				
			||||||
        var domElem = document.getElementById('all_id');
 | 
					        var domElem = document.getElementById('all_id');
 | 
				
			||||||
        allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
					        allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
 | 
				
			||||||
        domElem.innerText = allDbIdsStr;
 | 
					        domElem.innerText = allDbIdsStr;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    //parseInt(allDbIdsStr[i]
 | 
					    //parseInt(allDbIdsStr[i]
 | 
				
			||||||
    //for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
					    //for (var i = 0; i < allDbIdsStr.length; i++) {
 | 
				
			||||||
    //    //setTransparency(parseInt(allDbIdsStr[i]), 0.2);
 | 
					    //    //setTransparency(parseInt(allDbIdsStr[i]), 0.2);
 | 
				
			||||||
@ -161,105 +162,152 @@ function onDocumentLoadSuccess(doc) {
 | 
				
			|||||||
    //     })
 | 
					    //     })
 | 
				
			||||||
    //}
 | 
					    //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ------------------ 取得tag_id底下的nodeId --------------------------------------
 | 
					    //// ------------------ 取得tag_id底下的nodeId --------------------------------------
 | 
				
			||||||
    var curDbId = 0;
 | 
					    //var curDbId = 0;
 | 
				
			||||||
    var tagId = 0;
 | 
					    ////var tagId = 0;
 | 
				
			||||||
    var _parentId = 0;
 | 
					    ////var _parentId = 0;
 | 
				
			||||||
    var _childId = 0;
 | 
					    ////var _childId = 0;
 | 
				
			||||||
    var itemName = '';
 | 
					    ////var itemName = '';
 | 
				
			||||||
    var childIdArr = new Array();
 | 
					    ////var childIdArr = new Array();
 | 
				
			||||||
    let evelMap = new Map();
 | 
					    ////let evelMap = new Map();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let tree = viewer.model.getData().instanceTree;
 | 
					    //let tree = viewer.model.getData().instanceTree;
 | 
				
			||||||
    const model = viewer.model;
 | 
					    //const model = viewer.model;
 | 
				
			||||||
    const fragList = model.getFragmentList();
 | 
					    //const fragList = model.getFragmentList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     //loadHeatmaps(model);
 | 
					    // //loadHeatmaps(model);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////allDbIdsStr.forEach((dbId) => {
 | 
				
			||||||
 | 
					    ////    curDbId = parseInt(dbId);
 | 
				
			||||||
 | 
					    ////    viewer.getProperties(curDbId, function (e) {
 | 
				
			||||||
 | 
					    ////        e.properties.forEach(function (item) {
 | 
				
			||||||
 | 
					    ////            if (item.displayName == "tag_id" && e.name == "【電梯】") {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                //getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
				
			||||||
 | 
					    ////                //let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                tree.enumNodeFragments(e.dbId, function (frag) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                    let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					    ////                    let matrix = new THREE.Matrix4();
 | 
				
			||||||
 | 
					    ////                    console.log("proxy: " + fragProxy.position);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                    fragProxy.getWorldMatrix(matrix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                tagId = e.dbId;
 | 
				
			||||||
 | 
					    ////                viewer.getProperties(tagId, function (e2) {
 | 
				
			||||||
 | 
					    ////                    e2.properties.forEach(function (item2) {
 | 
				
			||||||
 | 
					    ////                        if (item2.displayName == "child") {
 | 
				
			||||||
 | 
					    ////                            _parentId = item2.displayValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                            viewer.getProperties(_parentId, function (e3) {
 | 
				
			||||||
 | 
					    ////                                let itemMap = new Map();
 | 
				
			||||||
 | 
					    ////                                e3.properties.forEach(function (item3) {
 | 
				
			||||||
 | 
					    ////                                    if (item3.displayName == "child") {
 | 
				
			||||||
 | 
					    ////                                        _childId = item3.displayValue;
 | 
				
			||||||
 | 
					    ////                                        childIdArr.push(_childId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                                        var n = 0;
 | 
				
			||||||
 | 
					    ////                                        viewer.getProperties(childIdArr[n], function (e5) {
 | 
				
			||||||
 | 
					    ////                                            e5.properties.forEach(function (item5) {
 | 
				
			||||||
 | 
					    ////                                                if (item5.displayName == "Name") {
 | 
				
			||||||
 | 
					    ////                                                    itemName = item5.displayValue;
 | 
				
			||||||
 | 
					    ////                                                    itemMap.set(childIdArr[0], itemName)
 | 
				
			||||||
 | 
					    ////                                                    console.log("childIdArr[0] ", childIdArr[0])
 | 
				
			||||||
 | 
					    ////                                                    console.log("item name: ", itemName);
 | 
				
			||||||
 | 
					    ////                                                    n += 3;
 | 
				
			||||||
 | 
					    ////                                                }
 | 
				
			||||||
 | 
					    ////                                            });
 | 
				
			||||||
 | 
					    ////                                        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                                        n = 1;
 | 
				
			||||||
 | 
					    ////                                        viewer.getProperties(childIdArr[n], function (e6) {
 | 
				
			||||||
 | 
					    ////                                            e6.properties.forEach(function (item6) {
 | 
				
			||||||
 | 
					    ////                                                if (item6.displayName == "Name") {
 | 
				
			||||||
 | 
					    ////                                                    itemName = item6.displayValue;
 | 
				
			||||||
 | 
					    ////                                                    itemMap.set(childIdArr[1], itemName)
 | 
				
			||||||
 | 
					    ////                                                    console.log("childIdArr[1] ", childIdArr[1])
 | 
				
			||||||
 | 
					    ////                                                    console.log("item name: ", itemName);
 | 
				
			||||||
 | 
					    ////                                                    n += 3;
 | 
				
			||||||
 | 
					    ////                                                }
 | 
				
			||||||
 | 
					    ////                                            });
 | 
				
			||||||
 | 
					    ////                                        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                                        n = 2;
 | 
				
			||||||
 | 
					    ////                                        viewer.getProperties(childIdArr[n], function (e7) {
 | 
				
			||||||
 | 
					    ////                                            e7.properties.forEach(function (item7) {
 | 
				
			||||||
 | 
					    ////                                                if (item7.displayName == "Name") {
 | 
				
			||||||
 | 
					    ////                                                    itemName = item7.displayValue;
 | 
				
			||||||
 | 
					    ////                                                    itemMap.set(childIdArr[2], itemName)
 | 
				
			||||||
 | 
					    ////                                                    console.log("childIdArr[2] ", childIdArr[2])
 | 
				
			||||||
 | 
					    ////                                                    console.log("item name: ", itemName);
 | 
				
			||||||
 | 
					    ////                                                    n += 3;
 | 
				
			||||||
 | 
					    ////                                                }
 | 
				
			||||||
 | 
					    ////                                            });
 | 
				
			||||||
 | 
					    ////                                        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                                    }
 | 
				
			||||||
 | 
					    ////                                });
 | 
				
			||||||
 | 
					    ////                                evelMap.set(item.displayValue, itemMap)
 | 
				
			||||||
 | 
					    ////                            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////                        }
 | 
				
			||||||
 | 
					    ////                    });
 | 
				
			||||||
 | 
					    ////                })
 | 
				
			||||||
 | 
					    ////            }
 | 
				
			||||||
 | 
					    ////        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //allDbIdsStr.forEach((dbId) => {
 | 
					    //allDbIdsStr.forEach((dbId) => {
 | 
				
			||||||
    //    curDbId = parseInt(dbId);
 | 
					    //    curDbId = parseInt(dbId);
 | 
				
			||||||
    //    viewer.getProperties(curDbId, function (e) {
 | 
					    //    viewer.getProperties(curDbId, function (e) {
 | 
				
			||||||
    //        e.properties.forEach(function (item) {
 | 
					    //        e.properties.forEach(function (item) {
 | 
				
			||||||
    //            if (item.displayName == "tag_id" && e.name == "【電梯】") {
 | 
					    //            if (item.displayName == "【tag_id】") { // Tag_name tag_id 【tag_id】
 | 
				
			||||||
 | 
					    //                if (item.displayValue != "") {
 | 
				
			||||||
 | 
					    //                    if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {// TPE_B1_ME_M10
 | 
				
			||||||
 | 
					    //                        console.log("--------------------------------------------------");
 | 
				
			||||||
 | 
					    //                        console.log("Tag_name dbid: " + e.dbId);
 | 
				
			||||||
 | 
					    //                        console.log("value: " + item.displayValue);
 | 
				
			||||||
 | 
					    //                    }
 | 
				
			||||||
 | 
					    //                    //var v = getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
				
			||||||
 | 
					    //                    //console.log("v: " + v);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //                    //tree.enumNodeFragments(e.dbId, function (frag) {
 | 
				
			||||||
 | 
					    //                    //    fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					    //                    //    fragProxy.getAnimTransform();
 | 
				
			||||||
 | 
					    //                    //    console.log("postion: " + fragProxy.position + ", fragP: " + fragProxy.fragPosition);
 | 
				
			||||||
 | 
					    //                    //});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //                    let bounds = new THREE.Box3();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //                    instanceTree.enumNodeFragments(e.dbId, (fragId) => {
 | 
				
			||||||
 | 
					    //                        let box = new THREE.Box3();
 | 
				
			||||||
 | 
					    //                        fragList.getWorldBounds(fragId, box);
 | 
				
			||||||
 | 
					    //                        bounds.union(box);
 | 
				
			||||||
 | 
					    //                    }, true);
 | 
				
			||||||
 | 
					    //                    var position = bounds.center();
 | 
				
			||||||
 | 
					    //                    if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {
 | 
				
			||||||
 | 
					    //                    console.log("position: (" + (position.x).toFixed(2) + ", " + (position.y).toFixed(2) + ", " + (position.z).toFixed(2) + ")");
 | 
				
			||||||
 | 
					    //                    console.log("--------------------------------------------------");
 | 
				
			||||||
 | 
					    //                    }
 | 
				
			||||||
 | 
					    //                }
 | 
				
			||||||
    //                //getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
					    //                //getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
				
			||||||
    //                //let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					    //                //let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //                tree.enumNodeFragments(e.dbId, function (frag) {
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //                    let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					 | 
				
			||||||
    //                    let matrix = new THREE.Matrix4();
 | 
					 | 
				
			||||||
    //                    console.log("proxy: " + fragProxy.position);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                    fragProxy.getWorldMatrix(matrix);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                tagId = e.dbId;
 | 
					 | 
				
			||||||
    //                viewer.getProperties(tagId, function (e2) {
 | 
					 | 
				
			||||||
    //                    e2.properties.forEach(function (item2) {
 | 
					 | 
				
			||||||
    //                        if (item2.displayName == "child") {
 | 
					 | 
				
			||||||
    //                            _parentId = item2.displayValue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                            viewer.getProperties(_parentId, function (e3) {
 | 
					 | 
				
			||||||
    //                                let itemMap = new Map();
 | 
					 | 
				
			||||||
    //                                e3.properties.forEach(function (item3) {
 | 
					 | 
				
			||||||
    //                                    if (item3.displayName == "child") {
 | 
					 | 
				
			||||||
    //                                        _childId = item3.displayValue;
 | 
					 | 
				
			||||||
    //                                        childIdArr.push(_childId);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                                        var n = 0;
 | 
					 | 
				
			||||||
    //                                        viewer.getProperties(childIdArr[n], function (e5) {
 | 
					 | 
				
			||||||
    //                                            e5.properties.forEach(function (item5) {
 | 
					 | 
				
			||||||
    //                                                if (item5.displayName == "Name") {
 | 
					 | 
				
			||||||
    //                                                    itemName = item5.displayValue;
 | 
					 | 
				
			||||||
    //                                                    itemMap.set(childIdArr[0], itemName)
 | 
					 | 
				
			||||||
    //                                                    console.log("childIdArr[0] ", childIdArr[0])
 | 
					 | 
				
			||||||
    //                                                    console.log("item name: ", itemName);
 | 
					 | 
				
			||||||
    //                                                    n += 3;
 | 
					 | 
				
			||||||
    //                                                }
 | 
					 | 
				
			||||||
    //                                            });
 | 
					 | 
				
			||||||
    //                                        })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                                        n = 1;
 | 
					 | 
				
			||||||
    //                                        viewer.getProperties(childIdArr[n], function (e6) {
 | 
					 | 
				
			||||||
    //                                            e6.properties.forEach(function (item6) {
 | 
					 | 
				
			||||||
    //                                                if (item6.displayName == "Name") {
 | 
					 | 
				
			||||||
    //                                                    itemName = item6.displayValue;
 | 
					 | 
				
			||||||
    //                                                    itemMap.set(childIdArr[1], itemName)
 | 
					 | 
				
			||||||
    //                                                    console.log("childIdArr[1] ", childIdArr[1])
 | 
					 | 
				
			||||||
    //                                                    console.log("item name: ", itemName);
 | 
					 | 
				
			||||||
    //                                                    n += 3;
 | 
					 | 
				
			||||||
    //                                                }
 | 
					 | 
				
			||||||
    //                                            });
 | 
					 | 
				
			||||||
    //                                        })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                                        n = 2;
 | 
					 | 
				
			||||||
    //                                        viewer.getProperties(childIdArr[n], function (e7) {
 | 
					 | 
				
			||||||
    //                                            e7.properties.forEach(function (item7) {
 | 
					 | 
				
			||||||
    //                                                if (item7.displayName == "Name") {
 | 
					 | 
				
			||||||
    //                                                    itemName = item7.displayValue;
 | 
					 | 
				
			||||||
    //                                                    itemMap.set(childIdArr[2], itemName)
 | 
					 | 
				
			||||||
    //                                                    console.log("childIdArr[2] ", childIdArr[2])
 | 
					 | 
				
			||||||
    //                                                    console.log("item name: ", itemName);
 | 
					 | 
				
			||||||
    //                                                    n += 3;
 | 
					 | 
				
			||||||
    //                                                }
 | 
					 | 
				
			||||||
    //                                            });
 | 
					 | 
				
			||||||
    //                                        })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                                    }
 | 
					 | 
				
			||||||
    //                                });
 | 
					 | 
				
			||||||
    //                                evelMap.set(item.displayValue, itemMap)
 | 
					 | 
				
			||||||
    //                            })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //                        }
 | 
					 | 
				
			||||||
    //                    });
 | 
					 | 
				
			||||||
    //                })
 | 
					 | 
				
			||||||
    //            }
 | 
					    //            }
 | 
				
			||||||
    //        });
 | 
					    //        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -267,44 +315,55 @@ function onDocumentLoadSuccess(doc) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    //})
 | 
					    //})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ////---------------------- end ---------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // ------------------ 2023.01.06 取得tag_id、底下的nodeId --------------------------------------
 | 
				
			||||||
 | 
					        var curDbId = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let tree = viewer.model.getData().instanceTree;
 | 
				
			||||||
 | 
					        const model = viewer.model;
 | 
				
			||||||
 | 
					        const fragList = model.getFragmentList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        allDbIdsStr.forEach((dbId) => {
 | 
					        allDbIdsStr.forEach((dbId) => {
 | 
				
			||||||
            curDbId = parseInt(dbId);
 | 
					            curDbId = parseInt(dbId);
 | 
				
			||||||
            viewer.getProperties(curDbId, function (e) {
 | 
					            viewer.getProperties(curDbId, function (e) {
 | 
				
			||||||
                e.properties.forEach(function (item) {
 | 
					                e.properties.forEach(function (item) {
 | 
				
			||||||
                    if (item.displayName == "【tag_id】") { // Tag_name tag_id 【tag_id】
 | 
					                    if (item.displayName == "【tag_id】") { // Tag_name tag_id 【tag_id】
 | 
				
			||||||
                        if (item.displayValue != "") {
 | 
					                        if (item.displayValue != "") {
 | 
				
			||||||
                        if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {// TPE_B1_ME_M10
 | 
					                            ////if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {// TPE_B1_ME_M10
 | 
				
			||||||
                            console.log("--------------------------------------------------");
 | 
					                            //console.log("--------------------------------------------------");
 | 
				
			||||||
                            console.log("Tag_name dbid: " + e.dbId);
 | 
					                            //console.log("Tag_name dbid: " + e.dbId);
 | 
				
			||||||
                            console.log("value: " + item.displayValue);
 | 
					                            //console.log("value: " + item.displayValue);
 | 
				
			||||||
 | 
					                            ////}
 | 
				
			||||||
 | 
					                            var str = item.displayValue.split('_');
 | 
				
			||||||
 | 
					                            if (str.length == 2) { //兩段為房間 ex: U7F_01
 | 
				
			||||||
 | 
					                                roomDataList.push({ room_id: e.dbId, room_name: item.displayValue });
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        //var v = getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
					                            else if (str.length == 8) { //八段為設備 ex: TPE_B1_ME_M10_U7F_NA_FCU_N1
 | 
				
			||||||
                        //console.log("v: " + v);
 | 
					                                //取得座標
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        //tree.enumNodeFragments(e.dbId, function (frag) {
 | 
					 | 
				
			||||||
                        //    fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					 | 
				
			||||||
                        //    fragProxy.getAnimTransform();
 | 
					 | 
				
			||||||
                        //    console.log("postion: " + fragProxy.position + ", fragP: " + fragProxy.fragPosition);
 | 
					 | 
				
			||||||
                        //});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                let bounds = new THREE.Box3();
 | 
					                                let bounds = new THREE.Box3();
 | 
				
			||||||
 | 
					 | 
				
			||||||
                                instanceTree.enumNodeFragments(e.dbId, (fragId) => {
 | 
					                                instanceTree.enumNodeFragments(e.dbId, (fragId) => {
 | 
				
			||||||
                                    let box = new THREE.Box3();
 | 
					                                    let box = new THREE.Box3();
 | 
				
			||||||
                                    fragList.getWorldBounds(fragId, box);
 | 
					                                    fragList.getWorldBounds(fragId, box);
 | 
				
			||||||
                                    bounds.union(box);
 | 
					                                    bounds.union(box);
 | 
				
			||||||
                                }, true);
 | 
					                                }, true);
 | 
				
			||||||
                                var position = bounds.center();
 | 
					                                var position = bounds.center();
 | 
				
			||||||
                        if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {
 | 
					                                ////if ((item.displayValue).indexOf('TPE_B1_LT_L1') > -1) {
 | 
				
			||||||
                        console.log("position: (" + (position.x).toFixed(2) + ", " + (position.y).toFixed(2) + ", " + (position.z).toFixed(2) + ")");
 | 
					                                //console.log("position: (" + (position.x).toFixed(2) + ", " + (position.y).toFixed(2) + ", " + (position.z).toFixed(2) + ")");
 | 
				
			||||||
                        console.log("--------------------------------------------------");
 | 
					                                //console.log("--------------------------------------------------");
 | 
				
			||||||
 | 
					                                ////}
 | 
				
			||||||
 | 
					                                tagIdDevList.push({ device_number: item.displayValue, device_coordinate_3d: '{ "x": ' + (position.x).toFixed(2) + ', "y": ' + (position.y).toFixed(2) + ', "z": ' + (position.z).toFixed(2) + ' }', forge_dbid: e.dbId });
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    //getFragmentWorldMatrixByNodeId(e.dbId, viewer);
 | 
					 | 
				
			||||||
                    //let fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@ -313,7 +372,6 @@ function onDocumentLoadSuccess(doc) {
 | 
				
			|||||||
            })
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 | 
					 | 
				
			||||||
        //---------------------- end ---------------------------------------------------
 | 
					        //---------------------- end ---------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -361,114 +419,49 @@ function onDocumentLoadSuccess(doc) {
 | 
				
			|||||||
        //})
 | 
					        //})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     //let tree = viewer.model.getData().instanceTree;
 | 
					 | 
				
			||||||
    let nodeId = 12112;//12104; //749; //10952;
 | 
					 | 
				
			||||||
    let nodeId2 = 12111;//12105; //750;
 | 
					 | 
				
			||||||
    let nodeId3 = 12110;//12104; //751;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
     tree.enumNodeFragments(nodeId, function (frag) {
 | 
					        // //let tree = viewer.model.getData().instanceTree;
 | 
				
			||||||
         fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					        //let nodeId = 12112;//12104; //749; //10952;
 | 
				
			||||||
         fragProxy.getAnimTransform();
 | 
					        //let nodeId2 = 12111;//12105; //750;
 | 
				
			||||||
         let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
					        //let nodeId3 = 12110;//12104; //751;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         fragProxy.position = fragPosition
 | 
					        //tree.enumNodeFragments(nodeId, function (frag) {
 | 
				
			||||||
 | 
					        //     fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					        //     fragProxy.getAnimTransform();
 | 
				
			||||||
 | 
					        //     let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
				
			||||||
 | 
					        //     fragProxy.position = fragPosition
 | 
				
			||||||
 | 
					        //     fragProxy.updateAnimTransform()
 | 
				
			||||||
 | 
					        //});
 | 
				
			||||||
 | 
					        //viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         fragProxy.updateAnimTransform()
 | 
					        ////------------ add -------------
 | 
				
			||||||
 | 
					        //tree.enumNodeFragments(nodeId2, function (frag) {
 | 
				
			||||||
 | 
					        //    fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					        //    fragProxy.getAnimTransform();
 | 
				
			||||||
 | 
					        //    let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    fragProxy.position = fragPosition
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    fragProxy.updateAnimTransform()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //});
 | 
				
			||||||
 | 
					        //viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //tree.enumNodeFragments(nodeId3, function (frag) {
 | 
				
			||||||
 | 
					        //    fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
				
			||||||
 | 
					        //    fragProxy.getAnimTransform();
 | 
				
			||||||
 | 
					        //    let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    fragProxy.position = fragPosition
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //    fragProxy.updateAnimTransform()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //});
 | 
				
			||||||
 | 
					        //viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
        viewer.impl.sceneUpdated(true);
 | 
					    //newLight();
 | 
				
			||||||
 | 
					    //testLight = new THREE.SpotLight();
 | 
				
			||||||
        //------------ add -------------
 | 
					 | 
				
			||||||
        tree.enumNodeFragments(nodeId2, function (frag) {
 | 
					 | 
				
			||||||
            fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					 | 
				
			||||||
            fragProxy.getAnimTransform();
 | 
					 | 
				
			||||||
            let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            fragProxy.position = fragPosition
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            fragProxy.updateAnimTransform()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        viewer.impl.sceneUpdated(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        tree.enumNodeFragments(nodeId3, function (frag) {
 | 
					 | 
				
			||||||
            fragProxy = viewer.impl.getFragmentProxy(viewer.model, frag);
 | 
					 | 
				
			||||||
            fragProxy.getAnimTransform();
 | 
					 | 
				
			||||||
            let fragPosition = new THREE.Vector3(0, 0, 0);// 一樓0 二樓15 三樓 26
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            fragProxy.position = fragPosition
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            fragProxy.updateAnimTransform()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        viewer.impl.sceneUpdated(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //add toolbar fail
 | 
					 | 
				
			||||||
    //function ToolbarExtension(viewer, options) {
 | 
					 | 
				
			||||||
    //    Autodesk.Viewing.Extension.call(this, viewer, options);
 | 
					 | 
				
			||||||
    //}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //ToolbarExtension.prototype = Object.create(Autodesk.Viewing.Extension.prototype);
 | 
					 | 
				
			||||||
    //ToolbarExtension.prototype.constructor = ToolbarExtension;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //ToolbarExtension.prototype.load = function () {
 | 
					 | 
				
			||||||
    //    this.viewer.setLightPreset(6);
 | 
					 | 
				
			||||||
    //    this.viewer.setEnvMapBackground(true);
 | 
					 | 
				
			||||||
    //    this.viewer.fitToView();
 | 
					 | 
				
			||||||
    //    return true;
 | 
					 | 
				
			||||||
    //};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //ToolbarExtension.prototype.unload = function () {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //};
 | 
					 | 
				
			||||||
    //Autodesk.Viewing.theExtensionManager.registerExtension('ToolbarExtension', ToolbarExtension);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //ToolbarExtension.prototype.onToolbarCreated = function (toolbar) {
 | 
					 | 
				
			||||||
    //    //alert('TODO: customize Viewer toolbar');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //    var viewer = this.viewer;
 | 
					 | 
				
			||||||
    //    var button1 = new Autodesk.Viewing.UI.Button('show-env-bg-button');
 | 
					 | 
				
			||||||
    //    button1.onClick = function (e) {
 | 
					 | 
				
			||||||
    //        viewer.setEnvMapBackground(true);
 | 
					 | 
				
			||||||
    //    };
 | 
					 | 
				
			||||||
    //    button1.addClass('show-env-bg-button');
 | 
					 | 
				
			||||||
    //    button1.setToolTip('Show Environment');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //    //SubToolbar
 | 
					 | 
				
			||||||
    //    this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('my-custom-toolbar');
 | 
					 | 
				
			||||||
    //    this.subToolbar.addControl(button1);
 | 
					 | 
				
			||||||
    //    toolbar.addControl(this.subToolbar);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //加入點燈光
 | 
					 | 
				
			||||||
    //bulbLight = new THREE.PointLight(0xffffff, 1, 1, 2);//0xff0000
 | 
					 | 
				
			||||||
    //bulbLight.position.set(-17.33, 51.03, -2.52);//17.880840301513672
 | 
					 | 
				
			||||||
    //bulbLight.castShadow = true;
 | 
					 | 
				
			||||||
    //bulbLight.intensity = 50;
 | 
					 | 
				
			||||||
    //bulbLight.distance = 1;
 | 
					 | 
				
			||||||
    //bulbLight.emissiveIntensity = bulbLight.intensity / Math.pow(0.02, 2.0);
 | 
					 | 
				
			||||||
    //viewer.scene.add(bulbLight);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //聚光燈
 | 
					 | 
				
			||||||
    //spotLight = new THREE.SpotLight(0xffff00, 80, 10);//0xffffff
 | 
					 | 
				
			||||||
    //spotLight.position.set(-7.58, 18.20, -0.25); //set(-17.33, 51.03, -2.52);
 | 
					 | 
				
			||||||
    //spotLight.castShadow = true;
 | 
					 | 
				
			||||||
    //spotLight.visible = true;
 | 
					 | 
				
			||||||
    //var geom = new THREE.BoxGeometry(); //create 幾何對象 -17.33, 51.03, -4.52
 | 
					 | 
				
			||||||
    //var material = new THREE.MeshLambertMaterial({ color: 0xffff00 });//0xff0000
 | 
					 | 
				
			||||||
    //var cube = new THREE.Mesh(geom, material);
 | 
					 | 
				
			||||||
    //cube.position.set(-7.58, 18.20, -1); //set(-17.33, 51.03, -10);//-4.52
 | 
					 | 
				
			||||||
    //viewer.scene.add(cube);
 | 
					 | 
				
			||||||
    //spotLight.target = cube;
 | 
					 | 
				
			||||||
    //viewer.scene.add(spotLight);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //light = newLight();
 | 
					 | 
				
			||||||
    newLight();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//------------------- 加入熱點 -----------------
 | 
					//------------------- 加入熱點 -----------------
 | 
				
			||||||
@ -482,7 +475,8 @@ async function addHotPoint(data) {
 | 
				
			|||||||
    const spriteIcon = "https://d2zqnmauvnpnnm.cloudfront.net/assets-1/images/circle.svg"; //"/img/forge/hotspot.svg";
 | 
					    const spriteIcon = "https://d2zqnmauvnpnnm.cloudfront.net/assets-1/images/circle.svg"; //"/img/forge/hotspot.svg";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
					    const style = new DataVizCore.ViewableStyle(viewableType, spriteColor, spriteIcon);
 | 
				
			||||||
    var a = newLight();
 | 
					    //var a = newLight();
 | 
				
			||||||
 | 
					    newLight();
 | 
				
			||||||
    //function onSpriteClicked(event) {
 | 
					    //function onSpriteClicked(event) {
 | 
				
			||||||
    //    console.log(`Sprite clicked: ${event.dbId}`);
 | 
					    //    console.log(`Sprite clicked: ${event.dbId}`);
 | 
				
			||||||
    //}
 | 
					    //}
 | 
				
			||||||
@ -521,7 +515,7 @@ async function addHotPoint(data) {
 | 
				
			|||||||
        event.hasStopped = true;
 | 
					        event.hasStopped = true;
 | 
				
			||||||
        if (event != undefined && event != null) {
 | 
					        if (event != undefined && event != null) {
 | 
				
			||||||
            if (event.dbId >= 10 && event.dbId <= 13) {//event.dbId > 0 && event.dbId < 19
 | 
					            if (event.dbId >= 10 && event.dbId <= 13) {//event.dbId > 0 && event.dbId < 19
 | 
				
			||||||
                setLightValues(20, 0x00ff00)
 | 
					                setLightValues(20, 0x00ff00);
 | 
				
			||||||
                console.log(`Sprite clicked: ${event.dbId}`);
 | 
					                console.log(`Sprite clicked: ${event.dbId}`);
 | 
				
			||||||
                openHotspotModal();
 | 
					                openHotspotModal();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -1387,26 +1381,26 @@ async function newLight() {
 | 
				
			|||||||
    //angle - 光從其上界為 Math.PI / 2 的方向散射的最大角度。
 | 
					    //angle - 光從其上界為 Math.PI / 2 的方向散射的最大角度。
 | 
				
			||||||
    //半影 - 由於半影而衰減的聚光燈錐體的百分比。取值介於 0 和 1 之間。默認值為零。
 | 
					    //半影 - 由於半影而衰減的聚光燈錐體的百分比。取值介於 0 和 1 之間。默認值為零。
 | 
				
			||||||
    //decay - 光沿光的距離變暗的量。
 | 
					    //decay - 光沿光的距離變暗的量。
 | 
				
			||||||
    //spotLight = new THREE.SpotLight(0xff0000, 200, 20, 0.6, 0.5, 10);//0xffffff 80, 10  //15, 20 , Math.PI / 12
 | 
					    spotLight = new THREE.SpotLight(0xff0000, 200, 20, 0.6, 0.5, 10);//0xffffff 80, 10  //15, 20 , Math.PI / 12
 | 
				
			||||||
    //spotLight.position.set(43.72, -15.65, -44.96); //set(-17.33, 51.03, -2.52); // -7.58, 18.20, -0.25 -44.96
 | 
					    spotLight.position.set(43.72, -15.65, -44.96); //set(-17.33, 51.03, -2.52); // -7.58, 18.20, -0.25 -44.96
 | 
				
			||||||
    //spotLight.castShadow = false;
 | 
					    spotLight.castShadow = false;
 | 
				
			||||||
    //spotLight.visible = true;
 | 
					    spotLight.visible = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //spotLight.target.position.set(43.72, -15.65, -60);// -15.65 -48
 | 
					    spotLight.target.position.set(43.72, -15.65, -60);// -15.65 -48
 | 
				
			||||||
    //viewer.scene.add(spotLight.target);
 | 
					    viewer.scene.add(spotLight.target);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //viewer.scene.add(spotLight);
 | 
					    viewer.scene.add(spotLight);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //viewer.impl.sceneUpdated(true);
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //return spotLight;
 | 
					    //return spotLight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //加入點燈光
 | 
					    //加入點燈光
 | 
				
			||||||
    bulbLight = new THREE.PointLight(0xff0000, 50, 20, 2);//0xff0000
 | 
					    //bulbLight = new THREE.PointLight(0xffffff, 50, 20, 2);//0xff0000
 | 
				
			||||||
    bulbLight.position.set(43.72, -15.65, -44.96);//17.880840301513672
 | 
					    //bulbLight.position.set(43.72, -15.65, -44.96);//17.880840301513672
 | 
				
			||||||
    bulbLight.castShadow = true;
 | 
					    //bulbLight.castShadow = true;
 | 
				
			||||||
    bulbLight.visible = true;
 | 
					    //bulbLight.visible = true;
 | 
				
			||||||
    viewer.scene.add(bulbLight);
 | 
					    //viewer.scene.add(bulbLight);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //pointLightHelper = new THREE.PointLightHelper(pointLight);
 | 
					    //pointLightHelper = new THREE.PointLightHelper(pointLight);
 | 
				
			||||||
    //viewer.scene.add(pointLightHelper);
 | 
					    //viewer.scene.add(pointLightHelper);
 | 
				
			||||||
@ -1439,13 +1433,15 @@ function setLightValues(intensity, color) {// distance, angle, penumbra, decay,
 | 
				
			|||||||
function setLightOpenOrClose(value) {//, light
 | 
					function setLightOpenOrClose(value) {//, light
 | 
				
			||||||
    if (value) {
 | 
					    if (value) {
 | 
				
			||||||
        //light.visible = true;
 | 
					        //light.visible = true;
 | 
				
			||||||
        //spotLight.visible = true;
 | 
					        spotLight.visible = true;
 | 
				
			||||||
        bulbLight.visible = true;
 | 
					        //bulbLight.visible = true;
 | 
				
			||||||
 | 
					        //testLight.visible = true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        //light.visible = false;
 | 
					        //light.visible = false;
 | 
				
			||||||
        //spotLight.visible = false;
 | 
					        spotLight.visible = false;
 | 
				
			||||||
        bulbLight.visible = false;
 | 
					        //bulbLight.visible = false;
 | 
				
			||||||
 | 
					        //testLight.visible = false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    viewer.impl.sceneUpdated(true);
 | 
					    viewer.impl.sceneUpdated(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1457,3 +1453,7 @@ function setLightTransparency(value) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
//------------- end -----------------------------------
 | 
					//------------- end -----------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function consoleList() {
 | 
				
			||||||
 | 
					    console.log(tagIdDevList);
 | 
				
			||||||
 | 
					    console.log(roomDataList);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user