我正在为类型定义,文档和查看器的行为之间的表象不一致而苦苦挣扎。
我已经为色彩元素编写了一个简单的扩展名(无论如何我都无法使用,但这是different question)。
当我尝试使用InstanceTree#enumNodeFragments
方法获取给定节点的片段时,我得到了一个空数组:
getFragmentsForNode(dbId: number): number[] {
const fragments: number[] = [];
this.viewer.model.getInstanceTree().enumNodeFragments(dbId, (fragId) => fragments.push(fragId));
return fragments;
}
文档没有提供此回调的预期参数,但是从在线示例中,我猜测签名类似于以下内容:
enumNodeFragments(dbId: number, callback: (fragId: number) => void, recursive?: boolean): void;
打字稿定义令人困惑,因为它将node: any
列为第一个参数,这意味着它可能不是id,而是其他东西。
当我对任何元素运行此命令时,总是会得到一个令人困惑的空数组,因为无法访问片段,我无法真正设置颜色等。
答案 0 :(得分:0)
很遗憾,我无法使用有效的dbid和模型来重现该问题-请参见实时示例here
viewer.model.getInstanceTree().enumNodeFragments(dbId, fragId=> console.log(fragId));
您提供了有效的dbid吗?