Получить все треугольники сетки внутри объекта

Aug 18 2020

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

--Редактировать и решение -

  1. TriggerEnter & -Exit для получения столкнувшихся объектов
  2. My Sphere / Cube / Независимо от того, что имеет сценарий управления объектами из mrtk, у которого есть событие EndOfManipulation, которое запускается после размещения моего объекта Any-object.
  3. Получение всех сеток-фильтров и сеток
  4. Проверьте через collider.bounds.contains, находится ли точка внутри моего коллайдера, и сохраните все эти точки, чтобы создать новую сетку с помощью кода из @Pluto .
  5. Объединение сеток в одну сетку и размещение где-то

Ответы

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;