Xeokit treeviewplugin не работает с моделью GLBHtml

Программисты Html
Ответить
Anonymous
 Xeokit treeviewplugin не работает с моделью GLB

Сообщение 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 не проверяются по умолчанию, как и должно быть. И если я их проверю, ничего не произойдет. Что не так с этим и как я могу это исправить?>

Подробнее здесь: https://stackoverflow.com/questions/785 ... -glb-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»