有没有办法使用仅具有模型浏览器功能的无头查看器?
Is there any way to use headless viewer with only model browser functionality?
有没有办法使用只有模型浏览器功能的无头查看器
我在 angular 5
中使用并遵循了 Headless Viewer 的用法
<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.js?v=v4.1.*"></script>
我使用缩放/平移/全屏/旋转功能来使用 setActiveNavigationTool 选择但没有得到任何关于模型浏览器事件代码的解决方案..
有什么想法可以在 javascript 中获取模型浏览器代码而不是它自己的面板用法。
谢谢
模型浏览器面板显示的数据实际上来自加载模型的实例树。这里有两种获取实例树的方法:
//To get the instance tree
var it = viewer.model.getData().instanceTree;
//or
viewer.getObjectTree(function( instanceTree ) {
console.log( instanceTree );
});
获得实例树后,您可能需要使用一些技巧来重建树层次结构,如下所示,因为 Forge Viewer 在扁平数据结构中存储实例关系。
// To rebuild node tree hierarchy
function buildModelTree( model ) {
//builds model tree recursively
function _buildModelTreeRec( node ) {
it.enumNodeChildren( node.dbId, function(childId) {
node.children = node.children || [];
var childNode = {
dbId: childId,
name: it.getNodeName( childId )
};
node.children.push( childNode );
_buildModelTreeRec( childNode );
});
}
//get model instance tree and root component
var it = model.getData().instanceTree;
var rootId = it.getRootId();
var rootNode = {
dbId: rootId,
name: it.getNodeName( rootId )
};
_buildModelTreeRec( rootNode );
return rootNode;
}
var root = buildModelTree( viewer.model );
但以上只是数据部分。如果你想在某个地方像树一样显示它们,你可以尝试使用 Tree UI 库,例如 jstree 来完成它。
希望对您有所帮助。
有没有办法使用只有模型浏览器功能的无头查看器 我在 angular 5
中使用并遵循了 Headless Viewer 的用法<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.js?v=v4.1.*"></script>
我使用缩放/平移/全屏/旋转功能来使用 setActiveNavigationTool 选择但没有得到任何关于模型浏览器事件代码的解决方案..
有什么想法可以在 javascript 中获取模型浏览器代码而不是它自己的面板用法。
谢谢
模型浏览器面板显示的数据实际上来自加载模型的实例树。这里有两种获取实例树的方法:
//To get the instance tree
var it = viewer.model.getData().instanceTree;
//or
viewer.getObjectTree(function( instanceTree ) {
console.log( instanceTree );
});
获得实例树后,您可能需要使用一些技巧来重建树层次结构,如下所示,因为 Forge Viewer 在扁平数据结构中存储实例关系。
// To rebuild node tree hierarchy
function buildModelTree( model ) {
//builds model tree recursively
function _buildModelTreeRec( node ) {
it.enumNodeChildren( node.dbId, function(childId) {
node.children = node.children || [];
var childNode = {
dbId: childId,
name: it.getNodeName( childId )
};
node.children.push( childNode );
_buildModelTreeRec( childNode );
});
}
//get model instance tree and root component
var it = model.getData().instanceTree;
var rootId = it.getRootId();
var rootNode = {
dbId: rootId,
name: it.getNodeName( rootId )
};
_buildModelTreeRec( rootNode );
return rootNode;
}
var root = buildModelTree( viewer.model );
但以上只是数据部分。如果你想在某个地方像树一样显示它们,你可以尝试使用 Tree UI 库,例如 jstree 来完成它。
希望对您有所帮助。