Bitbybit Docs
    Preparing search index...

    Class ManifoldEvaluate

    Измерение тел Manifold и чтение их служебных данных: площадь поверхности и объем, число вершин, треугольников и ребер, ограничивающий бокс, допуск, род, зазор до другого тела, а также id и статус, которые ядро отслеживает для каждого тела. Ничто здесь не изменяет тело.

    Index

    Constructors

    basic

    • Измеряет полную площадь поверхности тела, в квадратных единицах модели.

      Parameters

      Returns Promise<number>

      Площадь поверхности

      const area = await bitbybit.manifold.manifold.evaluate.surfaceArea({ manifold: cube });
      
    • Измеряет объем тела, в кубических единицах модели.

      Parameters

      Returns Promise<number>

      Объем

      const volume = await bitbybit.manifold.manifold.evaluate.volume({ manifold: cube });
      
    • Сообщает, нет ли у тела треугольников вообще, как было бы у результата пересечения форм, которые не перекрываются.

      Parameters

      Returns Promise<boolean>

      true, если тело пустое

      const empty = await bitbybit.manifold.manifold.evaluate.isEmpty({ manifold: shape });
      
    • Считает вершины меша тела, углы, которые разделяют его треугольники.

      Parameters

      Returns Promise<number>

      Число вершин

      const vertices = await bitbybit.manifold.manifold.evaluate.numVert({ manifold: shape });
      
    • Считает треугольники меша тела, то есть всю его поверхность.

      Parameters

      Returns Promise<number>

      Число треугольников

      const triangles = await bitbybit.manifold.manifold.evaluate.numTri({ manifold: shape });
      
    • Считает ребра меша тела, каждое разделяется двумя треугольниками.

      Parameters

      Returns Promise<number>

      Число ребер

      const edges = await bitbybit.manifold.manifold.evaluate.numEdge({ manifold: shape });
      
    • Считает каналы свойств, которые несет каждая вершина тела; одна только позиция занимает три.

      Parameters

      Returns Promise<number>

      Число свойств на вершину

      const channels = await bitbybit.manifold.manifold.evaluate.numProp({ manifold: shape });
      
    • Считает вершины свойств тела, которых не меньше numVert: вершина, соседние треугольники которой несут разные свойства, например острое ребро с двумя нормалями, хранится более одного раза.

      Parameters

      Returns Promise<number>

      Число вершин свойств

      const propVertices = await bitbybit.manifold.manifold.evaluate.numPropVert({ manifold: shape });
      
    • Находит выровненный по осям бокс вокруг каждой вершины тела.

      Parameters

      Returns Promise<Vector3[]>

      Минимальный угол и максимальный угол

      const [min, max] = await bitbybit.manifold.manifold.evaluate.boundingBox({ manifold: shape });
      
    • Читает допуск тела, ошибку округления, накопившуюся за преобразования и операции, которые его создали.

      Треугольники тоньше этого считаются вырожденными и удаляются.

      Parameters

      Returns Promise<number>

      Допуск в единицах модели

      const tolerance = await bitbybit.manifold.manifold.evaluate.tolerance({ manifold: shape });
      
    • Считает сквозные отверстия тела, как у кольца одно, а у сферы ни одного.

      Это имеет смысл только для одной связной части, так что сначала выполните operations.decompose на теле из нескольких.

      Parameters

      Returns Promise<number>

      Число сквозных отверстий в теле

      const holes = await bitbybit.manifold.manifold.evaluate.genus({ manifold: shape });
      
    • Измеряет наименьшее расстояние между двумя телами, ища не дальше searchLength.

      Результат между 0 и дистанцией поиска.

      Parameters

      Returns Promise<number>

      Наименьший зазор между ними

      const gap = await bitbybit.manifold.manifold.evaluate.minGap({ manifold1: cube, manifold2: sphere, searchLength: 100 });
      
    • Читает id тела, являющегося оригиналом, каким его делает operations.asOriginal или свежепостроенное тело; тело, полученное из других операцией, сообщает -1.

      Parameters

      Returns Promise<number>

      Исходный id или -1

      const id = await bitbybit.manifold.manifold.evaluate.originalID({ manifold: shape });
      
    • Сообщает, почему тело получилось пустым: NoError или причина, такая как NotManifold или InvalidConstruction, когда меш, из которого оно построено, не был замкнутой поверхностью.

      Статус переносится через последующие операции, так что сломанный вход не теряется; пустое тело все еще может сообщать NoError, как это делает пересечение неперекрывающихся форм.

      Parameters

      Returns Promise<string>

      Имя статуса

      const status = await bitbybit.manifold.manifold.evaluate.status({ manifold: shape });
      

    spatial

    • Пускает отрезок луча из одной точки в другую и перечисляет каждое место, где он пересекает поверхность тела, ближайшее первым; пустой список при промахе.

      Попадание несёт точку, нормаль в ней, id исходной грани и своё расстояние вдоль отрезка как долю длины отрезка.

      Parameters

      Returns Promise<RayHit[]>

      Попадания, отсортированные по расстоянию

      const hits = await bitbybit.manifold.manifold.evaluate.rayCast({ manifold: shape, origin: [0, 10, 0], endpoint: [0, -10, 0] });