Bitbybit Docs
    Preparing search index...

    Class ManifoldBooleans

    Menggabungkan solid Manifold: melebur, memotong dan memotongkan dua atau banyak sekaligus, dan memisahkan solid dengan solid lain atau bidang. Karena kernel bekerja pada mesh segitiga tertutup, operasi ini cepat dan selalu memberikan hasil kedap air; bentuk dua-bentuk dan banyak-bentuk memberikan hasil yang sama dan ada demi kenyamanan. Setiap metode mengembalikan solid baru dan membiarkan masukan apa adanya.

    Index

    Constructors

    2 manifolds

    • Memotong solid kedua dari yang pertama, sama dengan subtract.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid pertama dikurangi yang kedua

      const holed = await bitbybit.manifold.manifold.booleans.differenceTwo({ manifold1: cube, manifold2: sphere });
      

    a to b

    • Memotong solid kedua dari yang pertama, menyisakan apa yang tersisa dari yang pertama.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid pertama dikurangi yang kedua

      const holed = await bitbybit.manifold.manifold.booleans.subtract({ manifold1: cube, manifold2: sphere });
      

    minkowski

    • Menyapu solid kedua ke seluruh permukaan solid pertama dan meleburkan semua yang dilaluinya, sehingga solid pertama tumbuh sebesar bentuk solid kedua - jumlah Minkowski, cara sebuah solid dibulatkan atau ditebalkan dengan bola.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang telah tumbuh

      const padded = await bitbybit.manifold.manifold.booleans.minkowskiSum({ manifold1: cube, manifold2: sphere });
      
    • Menyapu solid kedua ke seluruh permukaan solid pertama dan memotong semua yang dilaluinya, sehingga solid pertama menyusut sebesar bentuk solid kedua - selisih Minkowski, erosi yang membatalkan jumlah Minkowski.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid yang telah menyusut

      const eroded = await bitbybit.manifold.manifold.booleans.minkowskiDifference({ manifold1: cube, manifold2: sphere });
      

    multiple

    • Memotong setiap solid berikutnya dalam daftar dari solid pertama.

      Parameters

      Returns Promise<ManifoldPointer>

      Solid pertama dikurangi semua yang lainnya

      const holed = await bitbybit.manifold.manifold.booleans.difference({ manifolds: [cube, sphere, cylinder] });
      
    • Hanya mempertahankan volume yang dimiliki bersama semua solid dalam daftar.

      Parameters

      Returns Promise<ManifoldPointer>

      Volume yang sama pada semuanya

      const common = await bitbybit.manifold.manifold.booleans.intersection({ manifolds: [cube, sphere] });
      

    split

    • Memotong solid dengan solid lain dan mempertahankan kedua potongan: bagian di dalam pemotong dan bagian di luarnya.

      Lebih murah daripada perpotongan yang diikuti pengurangan jika keduanya diperlukan.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dua solid: bagian di dalam pemotong, lalu bagian di luarnya

      const [inside, outside] = await bitbybit.manifold.manifold.booleans.split({ manifoldToSplit: cube, manifoldCutter: sphere });
      
    • Memotong solid dengan bidang dan mempertahankan kedua potongan.

      Bidang diberikan oleh normalnya dan jaraknya dari titik asal sepanjang normal itu; potongan pertama berada di sisi yang dituju normal, yang kedua di sisi lainnya.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dua solid: bagian di sisi normal, lalu sisanya

      const [top, bottom] = await bitbybit.manifold.manifold.booleans.splitByPlane({ manifold: cube, normal: [0, 0, 1], originOffset: 0.5 });
      
    • Memotong solid menjadi lempengan-lempengan dengan beberapa bidang sejajar, semuanya dengan normal yang sama, pada jarak-jarak yang diberikan dari titik asal.

      Setiap potongan mempertahankan bagian di sisi jauh normal sebagai potongan jadi dan membawa sisanya ke jarak berikutnya, jadi offset-offset sebaiknya menaik; n offset menghasilkan n + 1 potongan, yang kosong dibuang.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Lempengan-lempengan, satu lebih banyak dari offset yang diberikan

      const slabs = await bitbybit.manifold.manifold.booleans.splitByPlaneOnOffsets({ manifold: cube, normal: [0, 0, 1], originOffsets: [0.25, 0.5, 0.75] });
      

    trim

    • Memotong solid dengan bidang dan hanya mempertahankan bagian di sisi yang dituju normal.

      Bidang diberikan oleh normalnya dan jaraknya dari titik asal sepanjang normal itu.

      Parameters

      Returns Promise<ManifoldPointer>

      Bagian solid di sisi normal

      const half = await bitbybit.manifold.manifold.booleans.trimByPlane({ manifold: sphere, normal: [0, 0, 1], originOffset: 0 });