Bitbybit Docs
    Preparing search index...

    Class ManifoldCrossSection

    Плоские очертания в ядре Manifold, 2D-формы, которые operations.extrude и operations.revolve превращают в тела и которые slice и project вырезают из них. Сечение - это один или несколько замкнутых многоугольников в плоскости XY, включая отверстия; shapes строит их, booleans объединяет, operations смещает, строит выпуклые оболочки и выдавливает их, transforms перемещает их, а evaluate измеряет их. Методы здесь конвертируют между сечениями и простыми списками точек и освобождают память, которую занимает сечение.

    Index

    Constructors

    Properties

    create

    • Строит сечение из одного многоугольника, заданного точками; используются только X и Y каждой точки.

      fillRule решает, какие области самопересекающегося многоугольника считаются внутренними; removeDuplicates сначала отбрасывает повторяющиеся подряд точки в пределах tolerance.

      Parameters

      Returns Promise<CrossSectionPointer>

      Сечение

      const outline = await bitbybit.manifold.crossSection.crossSectionFromPoints({
      points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]],
      fillRule: Bit.Inputs.Manifold.fillRuleEnum.positive,
      removeDuplicates: false,
      tolerance: 1e-7,
      });
    • Строит сечение из нескольких многоугольников, заданных точками, например очертания и его отверстий; используются только X и Y каждой точки.

      fillRule решает, какие области считаются внутренними там, где многоугольники перекрываются; removeDuplicates сначала отбрасывает повторяющиеся подряд точки в пределах tolerance.

      Parameters

      • inputs: CrossSectionFromPolygonsPointsDto

        Многоугольники как списки точек, правило заливки и обработка дубликатов

      Returns Promise<CrossSectionPointer>

      Сечение

      const plate = await bitbybit.manifold.crossSection.crossSectionFromPolygons({
      polygonPoints: [outerPoints, holePoints],
      fillRule: Bit.Inputs.Manifold.fillRuleEnum.evenOdd,
      removeDuplicates: false,
      tolerance: 1e-7,
      });

    decompose

    • Читает сечение обратно как его многоугольники, каждый - список 2D-точек.

      Parameters

      Returns Promise<Vector2[][]>

      По одному списку 2D-точек на многоугольник

      const polygons = await bitbybit.manifold.crossSection.crossSectionToPolygons({ crossSection: outline });
      
    • Читает сечение обратно как его многоугольники с 3D-точками, Z равным 0, готовые к отрисовке как полилинии.

      Parameters

      Returns Promise<Point3[][]>

      По одному списку точек на многоугольник

      const polylines = await bitbybit.manifold.crossSection.crossSectionToPoints({ crossSection: outline });
      
    • Читает несколько сечений обратно как их многоугольники, как crossSectionToPolygons для одного.

      Parameters

      Returns Promise<Vector2[][][]>

      По одному списку многоугольников на сечение, в том же порядке

      const polygons = await bitbybit.manifold.crossSection.crossSectionsToPolygons({ crossSections: [outline, hole] });
      
    • Читает несколько сечений обратно как многоугольники с 3D-точками, как crossSectionToPoints для одного.

      Parameters

      Returns Promise<number[][][][]>

      По одному списку многоугольников из точек на сечение, в том же порядке

      const polylines = await bitbybit.manifold.crossSection.crossSectionsToPoints({ crossSections: [outline, hole] });