Есть ли способ использовать безголовый просмотрщик только с функциональностью браузера модели? - PullRequest
0 голосов
/ 30 апреля 2018

Есть ли способ использовать безголовый просмотрщик только с функциональностью браузера модели? я использовал и следил за использованием Headless Viewer в угловых 5

<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.js?v=v4.1.*"></script>

Я использовал функцию масштабирования / панорамирования / полноэкранного режима / поворота для использования выбора setActiveNavigationTool, но не получил никакого решения относительно кода события браузера модели.

Есть ли идея получить код браузера модели в javascript вместо использования собственной панели.

Спасибо

1 Ответ

0 голосов
/ 01 мая 2018

Данные, отображаемые на панели браузера модели, на самом деле взяты из дерева экземпляров загруженной модели. Вот два способа получить дерево экземпляров:

//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 );

Но выше приведена только часть данных. Если вы хотите отобразить их как дерево где-то, вы можете попробовать использовать библиотеки UI Tree, такие как jstree , чтобы сделать это.

Надеюсь, это поможет.

...