#autodesk-forge #autodesk-viewer #autodesk #autodesk-model-derivative
#autodesk-forge #autodesk-viewer #autodesk #autodesk-модель-производная
Вопрос:
Я пытаюсь нарисовать геометрию в моем средстве просмотра на основе кратчайшего пути между 2 объектами. до сих пор я знаю, как мы можем рисовать пользовательскую геометрию с помощью vector3. также я выяснил, какой алгоритм я могу использовать, чтобы найти кратчайший путь от точки A до точки B. вот несколько: Поиск Дейкстры A * Я видел этот пример, где был реализован этот алгоритм, и я пытаюсь аналогичное решение в forge viewer вот ссылка
также, если кто-нибудь может мне помочь, как я могу ограничить просмотр от первого лица сквозными стенами, как в приведенном выше примере. прямо сейчас в forge Viewer я могу проникнуть сквозь стену, которую я хочу избежать, или есть какой-нибудь способ, которым я могу идентифицировать стены
Ответ №1:
К сожалению, программа просмотра не обеспечивает достаточной поддержки поиска путей, поэтому большую часть этого вам придется выполнять вручную.
Вот некоторые из доступных функций, которые могут пригодиться в вашем случае:
- вы можете «стрелять лучами» внутри сцены и вычислять их пересечения с ближайшей геометрией, например, используя
viewer.impl.rayIntersect(ray, ignoreTransparent)
- например, это можно использовать для обнаружения столкновений со стенами, если у вас есть какой-то аватар внутри сцены
- при необходимости вы можете получить геометрию отдельных объектов в сцене, используя «список фрагментов»:
let frags = viewer.model.getFragmentList();
let tree = viewer.model.getInstanceTree();
tree.enumNodeFragments(dbid, function (fragid) {
let mesh = frags.getVizmesh(fragid);
// Do something with the mesh...
});
Комментарии:
1. Спасибо, Петр, это добавило мне больше знаний и помогло заставить это работать с вашим вышеупомянутым решением