第一步 獲取並建立樹結構
通過呼叫獲取模型空間樹的介面,獲取對應模型樹結構並在三維介面左側展示出來,具體介面在頁面下方相關介面中展示。
// 新增左側樹
const
inittree
=(tree)
=>
,(threeballmarker)
=>);
vizbim.
resetscene
(false
,false
,false
,true
,true
,false);
vizbim.
adaptivesize
(hightarray)
; vizbim.
reversetransparentobjs
(hightarray,
0.4,
true);
},onnodeunselected:
(event, data)
=>})
;$('#tree').
treeview
('collapseall',)
;}// 空間樹資料初始化
const
getlocationtreenodes
=(arr)
=>
; node.id = arr[i]
.key;
var name ="";
switch
(arr[i]
.type)
node.text=arr[i]
.name||name;
if(arr[i]
.childrenresultlist&&arr[i]
.childrenresultlist.length >
0&&arr[i]
.childrenresultlist[0]
.childrenresultlist)
else
if(arr[i]
.childrenresultlist&&arr[i]
.childrenresultlist.length ===0)
);continue;}
tree.
push
(node);}
return tree;};
// 獲取模型空間樹結構
const
getspacetreecomponents
=(filekey)
=>
models/
$/trees/location?devcode=$`
).then
(response => response.
json()
)}// 初始化空間樹資料
const
initspacetreedata
=(treedata)
=>
第二步 獲取空間包圍區域
獲取所選區域的包圍盒,在包圍盒幾何中心點上方,新增標籤。
// 傳入所選區域的構件陣列,返回包圍盒
const
getboundingboxbycomponents
=(components)
=>);
return box;
}// 計算 4*4矩陣與4*1 向量的數乘,目的是將構件的包圍盒的區域性座標更新為世界座標,用於新增標籤
const
compute4matrixand1matrix
=(matrix44,matrix41)
=>
return
[x,y,z,d]
;}
第三步 為空間新增標籤
利用已經獲取的空間包圍區域,為選中區域新增三維標籤。
// 為選中區域新增三維標籤
vizbim.
addthreewordmarker(,
(threeballmarker)
=>);
vizbim.
resetscene
(false
,false
,false
,true
,true
,false);
vizbim.
adaptivesize
(hightarray)
; vizbim.
reversetransparentobjs
(hightarray,
0.4,
true);
},onnodeunselected:
(event, data)
=>})
;
如何給filter新增介面
給乙個filter新增介面,步驟如下 1 建立乙個宣告介面的標頭檔案 inte ce.h 內容包括指定介面的guid 使用guidgen.exe 以及介面函式的宣告。記得加 initguid.h 的include,不然使用時會出現 無法解析的外部符號 iid 錯誤 2 在cfilter類的標頭檔案f...
如何給UITextView 新增連線
要想給uitextview 新增連線 我們要使用到 nsmutableattributedstring 給 uitextview的 attributedtext 新增個連線 這是 長按會進入到uitextview的 delegate中去 我們只需要在delegate中實現連線就好了 在這裡 如果長按...
如何給刀新增紋理
1.首先製作一張使用顏色標註不同部分材質的圖 2.將該圖作為資源匯入sp,在texture set setting中選擇select id map,將其作為 id map 3.之後每種材質都做乙個填充層,然後再新增蒙板,選擇最後一種蒙板,然後再pick color中選擇對應的顏色 4.對於凹凸的地方...