Загрузить несколько URN в одном и том же средстве просмотра

Как загрузить несколько URN или массив URN в средство просмотра, а также использовать GlobalOffest первого URN для загрузки второго URN в том же средстве просмотра


person Carol Jones    schedule 09.09.2017    source источник


Ответы (1)


Это просто, базовый сценарий взят из этого официального функция loadModel блога.

Вы можете загрузить 2-ю модель, пока Autodesk.Viewing.GEOMETRY_LOADED_EVENT был запущен, и применить GlobalOffest 1-й модели ко 2-й модели по моему опыту. Вот пример для этого случая:

 function _onGeometryLoaded( event ) {
   if( urns.length <= 0 ) {
       viewer.removeEventListener(
         Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
         _onGeometryLoaded
       );
       return;
   }

   viewer.loadModel( urns[0], { globalOffset: event.model.getData().globalOffset } );
   urns.splice( 0, 1 );
 }

 viewer.addEventListener(
   Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
   _onGeometryLoaded
 );

 viewer.loadModel( urns[0] );
 urns.splice( 0, 1 );

Если вы используете viewer.start() для загрузки первой модели при инициализации средства просмотра, эти коды будут изменены на:

 function _onGeometryLoaded( event ) {
   if( urns.length <= 0 ) {
       viewer.removeEventListener(
         Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
         _onGeometryLoaded
       );
       return;
   }

   viewer.loadModel( urns[0], { globalOffset: event.model.getData().globalOffset } );
   urns.splice( 0, 1 );
 }

 viewer.addEventListener(
   Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
   _onGeometryLoaded
 );

 // Change here
 viewer.start( urns[0], options, onSuccessCallback, onErrorCallback );
 urns.splice( 0, 1 );
person Eason Kang    schedule 09.09.2017
comment
Спасибо за этот ответ. Это мне очень помогает. Теперь это event.model.getData().globalOffset для получения globalOffset. - person Wandrille; 06.12.2017