Вычисляет нормаль для каждой вершины из меша и сохраняет ее в трех каналах свойств, начиная с normalIdx.
Ребра острее minSharpAngle, в градусах, сохраняют отдельные нормали с каждой стороны и остаются четкими; при 0 каждый треугольник сохраняет свою нормаль. Плоские грани из нескольких треугольников остаются плоскими.
Тело, первый канал нормалей и острый угол в градусах
Тело с сохраненными нормалями
Вычисляет, насколько сильно поверхность изгибается в каждой вершине, и сохраняет это в каналах свойств: гауссову кривизну в gaussianIdx, среднюю кривизну в meanIdx.
Кривизна - величина, обратная радиусу изгиба, положительная там, где поверхность выпукла, и отрицательная там, где вогнута; индекс меньше 0 пропускает этот канал.
Тело и два канала для сохранения
Тело с сохраненной кривизной
Добавляет треугольники к сглаженному телу, пока каждая точка его меша не окажется в пределах tolerance от гладкой поверхности, так что сильно изогнутые области получают больше треугольников, чем плоские.
Меняется только тело, сглаженное через smoothOut или smoothByNormals; любое другое возвращается копией.
Тело и допуск в единицах модели
Уточненное тело
Добавляет треугольники к телу, разбивая каждое ребро на части примерно заданной длины, добавляя внутренние вершины, чтобы треугольники оставались ровными.
На теле, сглаженном через smoothOut или smoothByNormals, новые вершины перемещаются на гладкую поверхность; иначе поверхность остается как есть.
Тело и целевая длина ребра в единицах модели
Уточненное тело
Добавляет треугольники к телу, разбивая каждое ребро на number частей; при 2 каждый треугольник становится четырьмя.
На теле, сглаженном через smoothOut или smoothByNormals, новые вершины перемещаются на гладкую поверхность; иначе новые треугольники остаются плоскими.
Тело и на сколько частей разделить каждое ребро
Уточненное тело
Помечает тело для сглаживания, вычисляя касательные из его треугольников, так что последующий refine или refineToLength изгибает новые треугольники в гладкую поверхность.
Ребра острее minSharpAngle, в градусах, остаются острыми; minSmoothness больше 0 немного скругляет их, а 1 сглаживает все. Сама геометрия не меняется, пока не уточнена.
Тело, острый угол в градусах и гладкость острых ребер
Тело со сглаживающими касательными
Помечает тело для сглаживания, используя нормали, хранящиеся в его свойствах вершин, так что последующий refine или refineToLength изгибает новые треугольники в гладкую поверхность.
normalIdx - первый из трех каналов нормалей, как их хранит calculateNormals; там, где нормали в вершине расходятся, ребро остается острым.
Тело и первый канал нормалей
Тело со сглаживающими касательными
Удаляет вершины из меша тела, удерживая каждую поверхность в пределах tolerance от того, где она была, чтобы сократить число треугольников.
Результат сохраняет подмножество исходных вершин; собственное значение допуска тела остается неизменным.
Тело и насколько могут сдвигаться поверхности, в единицах модели
Упрощенное тело
Переписывает свойства вершин тела функцией, которая получает позицию каждой вершины и старые свойства и заполняет новые.
numProp задает, сколько свойств будет у каждой вершины после этого, так что каналы можно добавлять или убирать; чтение за пределами старого числа или запись за пределами нового не определены.
Тело, новое число свойств и функция, которая заполняет свойства
Тело с новыми свойствами
Дает телу новый допуск, ошибку округления, которую ему позволено нести, и упрощает его меш, когда допуск растет.
Треугольники тоньше допуска считаются вырожденными и удаляются.
Тело и допуск в единицах модели
Тело с новым допуском
Резервирует серию из count уникальных id мешей и возвращает первый, для пометки наборов треугольников, которые можно найти снова после последующих операций.
Присвойте их runOriginalID меша перед построением из него тела, например чтобы держать раздельно несколько материалов.
Сколько id зарезервировать
Первый из зарезервированных id; остальные следуют по порядку
Делает копию тела, которая считается новым оригиналом, так что копия может нести собственные свойства вершин, например другое отображение UV, и отличаться от того, из чего она построена.
Компланарные грани объединяются, а ребра между ними схлопываются по пути; вместо этого используйте путь через меш, когда эти ребра должны остаться.
Тело
Копия, помеченная как оригинал
Упаковывает несколько тел в одно, обратное к decompose.
Перекрывающиеся тела сливаются, как при булевом объединении; тела, разнесённые друг от друга, остаются отдельными частями одного результата.
Тела для упаковки вместе
Одно тело, содержащее все их
Разбивает тело на его отдельные, несвязанные части, обратное к compose.
Тело, являющееся одним целым, возвращается списком из одной копии.
Тело
Отдельные части
Режет тело плоскостью, параллельной плоскости XY, на заданной высоте Z и возвращает плоское сечение как сечение.
Высота на дне ограничивающего бокса тела дает его нижние грани; высота на верху дает пустое сечение.
Тело и высота реза по Z
Срез как сечение
Сплющивает тело на плоскость XY и возвращает его очертание как сечение, как его тень при свете прямо сверху.
Тело
Очертание как сечение
Оборачивает тело его выпуклой оболочкой, наименьшей формой без вмятин, содержащей его, как термоусадочная пленка, туго натянутая на него.
Тело
Выпуклая оболочка
Оборачивает точки, тела или их смесь одной выпуклой оболочкой, наименьшей формой без вмятин, содержащей их все.
Точки и тела, которые нужно охватить
Выпуклая оболочка
Изменение тел Manifold за пределами булевых операций: обертывание их в выпуклую оболочку, срезы и проецирование в сечения, уточнение и сглаживание их мешей, упрощение, составление и разложение, а также вычисление нормалей и кривизны в каналы свойств вершин. Канал свойства - это одно число на вершину, хранящееся в меше, например три канала нормали. Каждый метод возвращает новое тело.