Bitbybit Docs
    Preparing search index...

    Class ManifoldBooleans

    Combinar sólidos Manifold: fusionar, cortar e intersecar dos o muchos a la vez, y dividir un sólido con otro sólido o un plano. Como el núcleo trabaja con mallas de triángulos cerradas, estas son rápidas y siempre dan un resultado estanco; las formas de dos formas y de muchas formas dan los mismos resultados y existen por comodidad. Cada método devuelve sólidos nuevos y deja las entradas como están.

    Index

    Constructors

    2 manifolds

    • Recorta el segundo sólido del primero, lo mismo que subtract.

      Parameters

      Returns Promise<ManifoldPointer>

      El primer sólido menos el segundo

      const holed = await bitbybit.manifold.manifold.booleans.differenceTwo({ manifold1: cube, manifold2: sphere });
      
    • Conserva solo el volumen que comparten dos sólidos, lo mismo que intersect.

      Parameters

      Returns Promise<ManifoldPointer>

      El volumen compartido

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

    a to b

    • Recorta el segundo sólido del primero, dejando lo que queda del primero.

      Parameters

      Returns Promise<ManifoldPointer>

      El primer sólido menos el segundo

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

    minkowski

    • Barre el segundo sólido por toda la superficie del primero y fusiona todo lo que atraviesa, haciendo crecer el primer sólido con la forma del segundo - la suma de Minkowski, que es como se redondea o acolcha un sólido con una esfera.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido agrandado

      const padded = await bitbybit.manifold.manifold.booleans.minkowskiSum({ manifold1: cube, manifold2: sphere });
      
    • Barre el segundo sólido por toda la superficie del primero y recorta todo lo que atraviesa, encogiendo el primer sólido con la forma del segundo - la diferencia de Minkowski, la erosión que deshace una suma de Minkowski.

      Parameters

      Returns Promise<ManifoldPointer>

      El sólido encogido

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

    multiple

    • Recorta cada sólido adicional de la lista del primero.

      Parameters

      Returns Promise<ManifoldPointer>

      El primer sólido menos todos los demás

      const holed = await bitbybit.manifold.manifold.booleans.difference({ manifolds: [cube, sphere, cylinder] });
      
    • Conserva solo el volumen que comparten todos los sólidos de una lista.

      Parameters

      Returns Promise<ManifoldPointer>

      El volumen común a todos ellos

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

    split

    • Corta un sólido con otro sólido y conserva ambas piezas: la parte dentro del cortador y la parte fuera de él.

      Más barato que una intersección seguida de una sustracción cuando se necesitan ambas.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dos sólidos: la parte dentro del cortador y después la parte fuera de él

      const [inside, outside] = await bitbybit.manifold.manifold.booleans.split({ manifoldToSplit: cube, manifoldCutter: sphere });
      
    • Corta un sólido con un plano y conserva ambas piezas.

      El plano lo dan su normal y su distancia al origen a lo largo de esa normal; la primera pieza queda en el lado hacia el que apunta la normal, la segunda en el otro lado.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dos sólidos: la parte del lado de la normal y después el resto

      const [top, bottom] = await bitbybit.manifold.manifold.booleans.splitByPlane({ manifold: cube, normal: [0, 0, 1], originOffset: 0.5 });
      
    • Corta un sólido en lonchas con varios planos paralelos, todos con la misma normal, a las distancias dadas del origen.

      Cada corte conserva la parte del lado lejano de la normal como pieza terminada y lleva el resto a la siguiente distancia, así que los desplazamientos deberían crecer; n desplazamientos dan n + 1 piezas, las vacías se descartan.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Las rebanadas, una más que los desfases dados

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

    trim

    • Corta un sólido con un plano y conserva solo la parte del lado hacia el que apunta la normal.

      El plano lo dan su normal y su distancia al origen a lo largo de esa normal.

      Parameters

      Returns Promise<ManifoldPointer>

      La parte del sólido del lado de la normal

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