Я пытаюсь отобразить файл GLB в Xeokit Viewer и переключить некоторые из его элементов с помощью Treeviewplugin . Мой html -файл выглядит так: < /p>
Model
/*ommited for simplicity*/
< /code>
и мой файл main.js выглядит так: < /p>
onload = async () => {
const viewer = new Viewer({
canvasId: "xeokit_canvas",
transparent: true
});
viewer.camera.eye = [-2.56, 8.38, 8.27];
viewer.camera.look = [13.44, 3.31, -14.83];
viewer.camera.up = [0.10, 0.98, -0.14];
viewer.cameraControl.panRightClick = false; // Prevents right-click-drag panning interfering with ContextMenus
viewer.scene.xrayMaterial.fill = true;
viewer.scene.xrayMaterial.fillAlpha = 0.1;
viewer.scene.xrayMaterial.fillColor = [0, 0, 0];
viewer.scene.xrayMaterial.edgeAlpha = 0.3;
viewer.scene.xrayMaterial.edgeColor = [0, 0, 0];
viewer.scene.highlightMaterial.fill = true;
viewer.scene.highlightMaterial.edges = true;
viewer.scene.highlightMaterial.fillAlpha = 0.1;
viewer.scene.highlightMaterial.edgeAlpha = 0.1;
viewer.scene.highlightMaterial.edgeColor = [1, 1, 0];
viewer.scene.selectedMaterial.fill = true;
viewer.scene.selectedMaterial.edges = true;
viewer.scene.selectedMaterial.fillAlpha = 0.5;
viewer.scene.selectedMaterial.edgeAlpha = 0.6;
viewer.scene.selectedMaterial.edgeColor = [0, 1, 1];
viewer.cameraControl.followPointer = true;
const treeView = new TreeViewPlugin(viewer, {
containerElement: document.getElementById("treeViewContainer"),
autoExpandDepth: 3,
hierarchy: "containment"
});
treeView.on("nodeTitleClicked", (e) => {
const scene = viewer.scene;
const objectIds = [];
e.treeViewPlugin.withNodeTree(e.treeViewNode, (treeViewNode) => {
if (treeViewNode.objectId) {
objectIds.push(treeViewNode.objectId);
}
});
e.treeViewPlugin.unShowNode();
scene.setObjectsXRayed(scene.objectIds, true);
scene.setObjectsVisible(scene.objectIds, true);
scene.setObjectsXRayed(objectIds, false);
viewer.cameraFlight.flyTo({
aabb: scene.getAABB(objectIds),
duration: 0.5
}, () => {
setTimeout(function () {
scene.setObjectsVisible(scene.xrayedObjectIds, false);
scene.setObjectsXRayed(scene.xrayedObjectIds, false);
}, 500);
});
});
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const src = urlParams.get("load");
const tokens = src.split('.');
const extension = tokens[1];
const gltfLoader = new GLTFLoaderPlugin(viewer);
gltfLoader.load({
id: "myModel",
src: src,
metaModelSrc: src.replace('glb', 'json'),
edges: true,
excludeUnclassifiedObjects: false
});
gltfLoader.on("loaded", (model) => {
treeView.setModel(model);
});
window.viewer = viewer;
}
< /code>
Однако, когда я запускаю его, я вижу, что элементы TreeViewPanel не проверяются по умолчанию, как и должно быть. И если я их проверю, ничего не произойдет. Что не так с этим и как я могу это исправить?>
Подробнее здесь: https://stackoverflow.com/questions/785 ... -glb-model
Xeokit treeviewplugin не работает с моделью GLB ⇐ Html
Программисты Html
-
Anonymous
1745599654
Anonymous
Я пытаюсь отобразить файл GLB в Xeokit Viewer и переключить некоторые из его элементов с помощью Treeviewplugin . Мой html -файл выглядит так: < /p>
Model
/*ommited for simplicity*/
< /code>
и мой файл main.js выглядит так: < /p>
onload = async () => {
const viewer = new Viewer({
canvasId: "xeokit_canvas",
transparent: true
});
viewer.camera.eye = [-2.56, 8.38, 8.27];
viewer.camera.look = [13.44, 3.31, -14.83];
viewer.camera.up = [0.10, 0.98, -0.14];
viewer.cameraControl.panRightClick = false; // Prevents right-click-drag panning interfering with ContextMenus
viewer.scene.xrayMaterial.fill = true;
viewer.scene.xrayMaterial.fillAlpha = 0.1;
viewer.scene.xrayMaterial.fillColor = [0, 0, 0];
viewer.scene.xrayMaterial.edgeAlpha = 0.3;
viewer.scene.xrayMaterial.edgeColor = [0, 0, 0];
viewer.scene.highlightMaterial.fill = true;
viewer.scene.highlightMaterial.edges = true;
viewer.scene.highlightMaterial.fillAlpha = 0.1;
viewer.scene.highlightMaterial.edgeAlpha = 0.1;
viewer.scene.highlightMaterial.edgeColor = [1, 1, 0];
viewer.scene.selectedMaterial.fill = true;
viewer.scene.selectedMaterial.edges = true;
viewer.scene.selectedMaterial.fillAlpha = 0.5;
viewer.scene.selectedMaterial.edgeAlpha = 0.6;
viewer.scene.selectedMaterial.edgeColor = [0, 1, 1];
viewer.cameraControl.followPointer = true;
const treeView = new TreeViewPlugin(viewer, {
containerElement: document.getElementById("treeViewContainer"),
autoExpandDepth: 3,
hierarchy: "containment"
});
treeView.on("nodeTitleClicked", (e) => {
const scene = viewer.scene;
const objectIds = [];
e.treeViewPlugin.withNodeTree(e.treeViewNode, (treeViewNode) => {
if (treeViewNode.objectId) {
objectIds.push(treeViewNode.objectId);
}
});
e.treeViewPlugin.unShowNode();
scene.setObjectsXRayed(scene.objectIds, true);
scene.setObjectsVisible(scene.objectIds, true);
scene.setObjectsXRayed(objectIds, false);
viewer.cameraFlight.flyTo({
aabb: scene.getAABB(objectIds),
duration: 0.5
}, () => {
setTimeout(function () {
scene.setObjectsVisible(scene.xrayedObjectIds, false);
scene.setObjectsXRayed(scene.xrayedObjectIds, false);
}, 500);
});
});
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const src = urlParams.get("load");
const tokens = src.split('.');
const extension = tokens[1];
const gltfLoader = new GLTFLoaderPlugin(viewer);
gltfLoader.load({
id: "myModel",
src: src,
metaModelSrc: src.replace('glb', 'json'),
edges: true,
excludeUnclassifiedObjects: false
});
gltfLoader.on("loaded", (model) => {
treeView.setModel(model);
});
window.viewer = viewer;
}
< /code>
Однако, когда я запускаю его, я вижу, что элементы TreeViewPanel не проверяются по умолчанию, как и должно быть. И если я их проверю, ничего не произойдет. Что не так с этим и как я могу это исправить?>
Подробнее здесь: [url]https://stackoverflow.com/questions/78523291/xeokit-treeviewplugin-does-not-work-with-glb-model[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия