Bitbybit Docs
    Preparing search index...

    Class ManifoldBooleans

    Combiner des solides Manifold : fusionner, découper et intersecter deux ou plusieurs à la fois, et diviser un solide avec un autre solide ou un plan. Parce que le noyau travaille sur des maillages de triangles fermés, ces opérations sont rapides et donnent toujours un résultat étanche ; les formes à deux formes et à plusieurs formes donnent les mêmes résultats et existent par commodité. Chaque méthode renvoie de nouveaux solides et laisse les entrées telles quelles.

    Index

    Constructors

    2 manifolds

    • Retire le second solide du premier, identique à subtract.

      Parameters

      Returns Promise<ManifoldPointer>

      Le premier solide moins le second

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

    a to b

    • Retire le second solide du premier, en laissant ce qui reste du premier.

      Parameters

      Returns Promise<ManifoldPointer>

      Le premier solide moins le second

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

    minkowski

    • Balaie le second solide sur toute la surface du premier et fusionne tout ce qu'il traverse, faisant grossir le premier solide de la forme du second - la somme de Minkowski, qui est la façon d'arrondir ou de rembourrer un solide avec une sphère.

      Parameters

      Returns Promise<ManifoldPointer>

      Le solide agrandi

      const padded = await bitbybit.manifold.manifold.booleans.minkowskiSum({ manifold1: cube, manifold2: sphere });
      
    • Balaie le second solide sur toute la surface du premier et retranche tout ce qu'il traverse, faisant rétrécir le premier solide de la forme du second - la différence de Minkowski, l'érosion qui défait une somme de Minkowski.

      Parameters

      Returns Promise<ManifoldPointer>

      Le solide rétréci

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

    multiple

    • Retire chaque solide suivant de la liste du premier.

      Parameters

      Returns Promise<ManifoldPointer>

      Le premier solide moins tous les autres

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

    split

    • Coupe un solide avec un autre solide et garde les deux morceaux : la partie à l'intérieur du découpeur et la partie à l'extérieur.

      Moins coûteux qu'une intersection suivie d'une soustraction quand les deux sont nécessaires.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Deux solides : la partie à l'intérieur du découpeur, puis la partie à l'extérieur

      const [inside, outside] = await bitbybit.manifold.manifold.booleans.split({ manifoldToSplit: cube, manifoldCutter: sphere });
      
    • Coupe un solide avec un plan et garde les deux morceaux.

      Le plan est donné par sa normale et sa distance à l'origine le long de cette normale ; le premier morceau se trouve du côté vers lequel pointe la normale, le second de l'autre côté.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Deux solides : la partie du côté de la normale, puis le reste

      const [top, bottom] = await bitbybit.manifold.manifold.booleans.splitByPlane({ manifold: cube, normal: [0, 0, 1], originOffset: 0.5 });
      
    • Coupe un solide en tranches avec plusieurs plans parallèles, tous de même normale, aux distances données de l'origine.

      Chaque coupe garde la partie du côté éloigné de la normale comme morceau fini et reporte le reste à la distance suivante, les décalages doivent donc croître ; n décalages donnent n + 1 morceaux, les vides étant supprimés.

      Parameters

      Returns Promise<ManifoldPointer[]>

      Les tranches, une de plus que les décalages donnés

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

    trim

    • Coupe un solide avec un plan et ne garde que la partie du côté vers lequel pointe la normale.

      Le plan est donné par sa normale et sa distance à l'origine le long de cette normale.

      Parameters

      Returns Promise<ManifoldPointer>

      La partie du solide du côté de la normale

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