Bitbybit Docs
    Preparing search index...

    Class ManifoldBooleans

    Combinar sólidos Manifold: fundir, cortar e intersetar dois ou muitos de uma vez, e dividir um sólido com outro sólido ou um plano. Como o kernel trabalha com malhas de triângulos fechadas, estas são rápidas e dão sempre um resultado estanque; as formas de duas formas e de muitas formas dão os mesmos resultados e existem por conveniência. Cada método devolve novos sólidos e deixa as entradas como estão.

    Index

    Constructors

    2 manifolds

    • Corta o segundo sólido do primeiro, o mesmo que subtract.

      Parameters

      Returns Promise<ManifoldPointer>

      O primeiro sólido menos o segundo

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

    a to b

    • Corta o segundo sólido do primeiro, deixando o que resta do primeiro.

      Parameters

      Returns Promise<ManifoldPointer>

      O primeiro sólido menos o segundo

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

    minkowski

    • Varre o segundo sólido por toda a superfície do primeiro e funde tudo o que atravessa, fazendo crescer o primeiro sólido com a forma do segundo - a soma de Minkowski, que é como se arredonda ou acolchoa um sólido com uma esfera.

      Parameters

      Returns Promise<ManifoldPointer>

      O sólido aumentado

      const padded = await bitbybit.manifold.manifold.booleans.minkowskiSum({ manifold1: cube, manifold2: sphere });
      
    • Varre o segundo sólido por toda a superfície do primeiro e corta tudo o que atravessa, encolhendo o primeiro sólido com a forma do segundo - a diferença de Minkowski, a erosão que desfaz uma soma de Minkowski.

      Parameters

      Returns Promise<ManifoldPointer>

      O sólido encolhido

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

    multiple

    • Corta cada sólido seguinte da lista do primeiro.

      Parameters

      Returns Promise<ManifoldPointer>

      O primeiro sólido menos todos os outros

      const holed = await bitbybit.manifold.manifold.booleans.difference({ manifolds: [cube, sphere, cylinder] });
      

    split

    • Corta um sólido com outro sólido e mantém ambos os pedaços: a parte dentro do cortador e a parte fora dele.

      Mais barato do que uma interseção seguida de uma subtração quando ambas são precisas.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dois sólidos: a parte dentro do cortador, depois a parte fora dele

      const [inside, outside] = await bitbybit.manifold.manifold.booleans.split({ manifoldToSplit: cube, manifoldCutter: sphere });
      
    • Corta um sólido com um plano e mantém ambos os pedaços.

      O plano é dado pela sua normal e pela sua distância à origem ao longo dessa normal; o primeiro pedaço fica do lado para onde a normal aponta, o segundo do outro lado.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Dois sólidos: a parte do lado da normal, depois o resto

      const [top, bottom] = await bitbybit.manifold.manifold.booleans.splitByPlane({ manifold: cube, normal: [0, 0, 1], originOffset: 0.5 });
      
    • Corta um sólido em placas com vários planos paralelos, todos com a mesma normal, às distâncias dadas da origem.

      Cada corte mantém a parte do lado distante da normal como um pedaço acabado e leva o resto para a distância seguinte, por isso os deslocamentos devem ser crescentes; n deslocamentos dão n + 1 pedaços, os vazios descartados.

      Parameters

      Returns Promise<ManifoldPointer[]>

      As fatias, uma a mais do que os deslocamentos dados

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

    trim

    • Corta um sólido com um plano e mantém só a parte do lado para onde a normal aponta.

      O plano é dado pela sua normal e pela sua distância à origem ao longo dessa normal.

      Parameters

      Returns Promise<ManifoldPointer>

      A parte do sólido do lado da normal

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