handleSetModelDbidAlpha(设置构件透明度)
sRect 2022-2-18
/**
* 设置构件透明度
* @param {Object} viewer
* @param {Number} dbid
* @param {Number} alpha 透明度
*/
function handleSetModelDbidAlpha(viewer, dbid, alpha = 0.5) {
if (!viewer) return;
const model = viewer.model;
const fragList = model.getFragmentList();
const instanceTree = model.getData().instanceTree;
let fragIds = [];
if(!instanceTree) return;
instanceTree.enumNodeFragments(typeof dbid === 'number' ? dbid : parseInt(dbid), (fragId) => {
fragIds.push(fragId);
});
fragIds.forEach((fragId) => {
//获取材质
var material = fragList.getMaterial(fragId);
if (material) {
//设置透明度
material.opacity = alpha;
material.transparent = true;
//标记更新
material.needsUpdate = true;
}
});
//更新viewer
viewer.impl.invalidate(true, true, true);
}
export default handleSetModelDbidAlpha;