Получить все треугольники сетки внутри объекта
Aug 18 2020
Я хочу взаимодействовать с пространственной картой / сеткой, к которой я получаю доступ через mrtk. Я хочу создать сферу в позиции курсора и получить каждый треугольник пространственной сетки, находящейся внутри сферы, чтобы я мог вырезать его и сохранить для себя . Я знаю, как создать и позиционировать сферу, и я знаю, как получить пространственную сетку через SDK, понимающий сцену, но я не знаю, как к этому подойти. Чтобы лучше понять, что я хочу попробовать, я нарисовал небольшой набросок:

--Редактировать и решение -
- TriggerEnter & -Exit для получения столкнувшихся объектов
- My Sphere / Cube / Независимо от того, что имеет сценарий управления объектами из mrtk, у которого есть событие EndOfManipulation, которое запускается после размещения моего объекта Any-object.
- Получение всех сеток-фильтров и сеток
- Проверьте через collider.bounds.contains, находится ли точка внутри моего коллайдера, и сохраните все эти точки, чтобы создать новую сетку с помощью кода из @Pluto .
- Объединение сеток в одну сетку и размещение где-то
Ответы
1 Pluto Aug 17 2020 at 23:28
- Получить индексы вершин
spatialMesh
, находящихся внутри сферы ->indicesList
- Из массива треугольников
spatialMesh
получить треугольники, у которых есть все индексы вершин внутриindicesList
->triangleList
И у вас есть все необходимое для создания массива вершин и массива треугольников для сетки внутри сферы.
Как пример:
for i = 0 to triangleList.Count
newVertices[i] = spatialMesh.vertices[triangleList[i]];
newTriangles[i] = i;