Bitbybit Docs
    Bereite Suchindex vor...

    Klasse ManifoldBooleans

    Kombinieren von Manifold-Volumenkörpern: Verschmelzen, Schneiden und Überschneiden von zwei oder vielen auf einmal sowie Teilen eines Volumenkörpers mit einem anderen Volumenkörper oder einer Ebene. Da der Kernel auf geschlossenen Dreiecks-Meshes arbeitet, sind diese schnell und liefern immer ein wasserdichtes Ergebnis; die Formen mit zwei und mit vielen Eingaben liefern dieselben Ergebnisse und bestehen der Bequemlichkeit halber. Jede Methode gibt neue Volumenkörper zurück und lässt die Eingaben, wie sie sind.

    Index

    Konstruktoren

    2 manifolds

    • Schneidet den zweiten Volumenkörper aus dem ersten heraus, dasselbe wie subtract.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der erste Volumenkörper minus den zweiten

      const holed = await bitbybit.manifold.manifold.booleans.differenceTwo({ manifold1: cube, manifold2: sphere });
      
    • Behält nur das Volumen, das zwei Volumenkörper gemeinsam haben, dasselbe wie intersect.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Das gemeinsame Volumen

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

    a to b

    • Schneidet den zweiten Volumenkörper aus dem ersten heraus und lässt übrig, was vom ersten bleibt.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der erste Volumenkörper minus den zweiten

      const holed = await bitbybit.manifold.manifold.booleans.subtract({ manifold1: cube, manifold2: sphere });
      
    • Verschmilzt zwei Volumenkörper zu einem geschlossenen, wasserdichten Volumenkörper.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der verschmolzene Volumenkörper

      const fused = await bitbybit.manifold.manifold.booleans.add({ manifold1: cube, manifold2: sphere });
      
    • Behält nur das Volumen, das zwei Volumenkörper gemeinsam haben, und verwirft alles andere.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Das gemeinsame Volumen

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

    minkowski

    • Streicht den zweiten Volumenkörper über die gesamte Oberfläche des ersten und verschmilzt alles, was er durchläuft, sodass der erste Volumenkörper um die Form des zweiten wächst - die Minkowski-Summe, mit der ein Volumenkörper durch eine Kugel abgerundet oder gepolstert wird.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der vergrößerte Volumenkörper

      const padded = await bitbybit.manifold.manifold.booleans.minkowskiSum({ manifold1: cube, manifold2: sphere });
      
    • Streicht den zweiten Volumenkörper über die gesamte Oberfläche des ersten und schneidet alles weg, was er durchläuft, sodass der erste Volumenkörper um die Form des zweiten schrumpft - die Minkowski-Differenz, die Erosion, die eine Minkowski-Summe rückgängig macht.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der geschrumpfte Volumenkörper

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

    multiple

    • Schneidet jeden weiteren Volumenkörper in der Liste aus dem ersten heraus.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der erste Volumenkörper minus alle übrigen

      const holed = await bitbybit.manifold.manifold.booleans.difference({ manifolds: [cube, sphere, cylinder] });
      
    • Verschmilzt alle Volumenkörper in einer Liste zu einem.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der verschmolzene Volumenkörper

      const fused = await bitbybit.manifold.manifold.booleans.union({ manifolds: [cube, sphere, cylinder] });
      
    • Behält nur das Volumen, das alle Volumenkörper in einer Liste gemeinsam haben.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Das allen gemeinsame Volumen

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

    split

    • Schneidet einen Volumenkörper mit einem anderen Volumenkörper und behält beide Stücke: den Teil innerhalb des Schneiders und den Teil außerhalb.

      Günstiger als eine Verschneidung gefolgt von einer Subtraktion, wenn beide gebraucht werden.

      Parameter

      Rückgabewert Promise<ManifoldPointer[]>

      Zwei Volumenkörper: der Teil innerhalb des Schneiders, dann der Teil außerhalb

      const [inside, outside] = await bitbybit.manifold.manifold.booleans.split({ manifoldToSplit: cube, manifoldCutter: sphere });
      
    • Schneidet einen Volumenkörper mit einer Ebene und behält beide Stücke.

      Die Ebene ist durch ihre Normale und ihren Abstand vom Ursprung entlang dieser Normalen gegeben; das erste Stück liegt auf der Seite, auf die die Normale zeigt, das zweite auf der anderen Seite.

      Parameter

      Rückgabewert Promise<ManifoldPointer[]>

      Zwei Volumenkörper: der Teil auf der Seite der Normalen, dann der Rest

      const [top, bottom] = await bitbybit.manifold.manifold.booleans.splitByPlane({ manifold: cube, normal: [0, 0, 1], originOffset: 0.5 });
      
    • Schneidet einen Volumenkörper mit mehreren parallelen Ebenen, alle mit derselben Normalen, in den gegebenen Abständen vom Ursprung in Platten.

      Jeder Schnitt behält den Teil auf der fernen Seite der Normalen als fertiges Stück und trägt den Rest zum nächsten Abstand, daher sollten die Abstände zunehmen; n Abstände ergeben n + 1 Stücke, leere werden verworfen.

      Parameter

      Rückgabewert Promise<ManifoldPointer[]>

      Die Scheiben, eine mehr als die angegebenen Versätze

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

    trim

    • Schneidet einen Volumenkörper mit einer Ebene und behält nur den Teil auf der Seite, auf die die Normale zeigt.

      Die Ebene ist durch ihre Normale und ihren Abstand vom Ursprung entlang dieser Normalen gegeben.

      Parameter

      Rückgabewert Promise<ManifoldPointer>

      Der Teil des Volumenkörpers auf der Seite der Normalen

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