Поддержка многомодельного поиска в Forge Viewer v4.0
С выпуском версии 4.0 Forge Viewer, вы сможете использовать «браузер модели» для поиска среди нескольких моделей.
Это краткая демонстрация, показывающая, как загрузить две модели: «ручная пила» и «1-й этаж здания».
Вот исходный код загрузки:
- var urnHandsaw = "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnJwYXJ0eTEvSGFuZF9Sb3V0ZXIuZjNk";
- var urnLevel1 = "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6dnJwYXJ0eTEvRG9nX0hvdXNlXzIwMTZfQ2xhc3NpZmllZF9XaXRoTWF0ZXJpYWxUZXh0dXJlLmR3Zg";
- function onLoadSuccessInit() {
- var viewables = viewerApp.bubble.search({ 'type': 'geometry' });
- if (viewables.length < 1) return;
- viewerApp.selectItem(viewables[0].data);
- }
- function onLoadSuccess(doc) {
- var viewables = viewerApp.bubble.search({ 'type': 'geometry' });
- const path = doc.getViewablePath(viewables[0].data);
- console.log(viewables);
- const posOptions = {
- placementTransform: (new THREE.Matrix4()).setPosition({x:1,y:100,z:1}).scale({x:2,y:2,z:2})
- };
- var viewables = viewerApp.bubble.search({ 'type': 'geometry' });
- let viewer = viewerApp.getCurrentViewer();
- viewer.loadModel(path, posOptions);
- };
- function onInitialized() {
- viewerApp = new Autodesk.Viewing.ViewingApplication('forgeViewer');
- viewerApp.registerViewer( viewerApp.k3D, Autodesk.Viewing.Private.GuiViewer3D );
- viewerApp.loadDocument( "urn:"+urnHandsaw, onLoadSuccessInit);
- window.setTimeout(e =>
- viewerApp.loadDocument( "urn:"+urnLevel1, onLoadSuccess), 3000);
- };
- options = getViewingOptions();
- Autodesk.Viewing.Initializer( options, onInitialized);
- }
Во время загрузки, я устанавливаю матрицу преобразования как для уменьшения размера здания, так и для его сдвига над пилой (как видно из кода ниже) - просто чтобы выделить эти две совершенно разные модели.
- const posOptions = {
- placementTransform: (new THREE.Matrix4()).setPosition({x:1,y:100,z:1}).scale({x:2,y:2,z:
- };
- viewer.loadModel(path, posOptions);
Теперь, со сценой на месте, нажмите на браузер модели и введите в новое окно поиска «bas», теперь вы увидите результаты поиска для обеих моделей:
«basic wall» от здания и «BasePlate1» из проекта HandSaw.
Вы можете видеть это на видео выше.
Точно так же вы можете правильно установить видимость, блики и ореолы на нескольких моделях.
Раньше работали только результаты первой модели.
Есть еще некоторые причуды с отражением земли и тенями.
Вы можете найти исходный код здесь.
А демо здесь.
Источник: https://forge.autodesk.com/blog/multimodel-search-support-forge-viewer-v40
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 27.02.2018Отредактировано 27.02.2018 в 13:53:08