Bitbybit Docs
    Bereite Suchindex vor...

    Klasse BabylonMesh

    Arbeiten mit Meshes, die bereits in der BabylonJS-Szene sind, den Objekten, die draw.drawAnyAsync zurückgibt: sie verschieben, drehen und skalieren, ein- und ausblenden, unterordnen, Picking- und Kollisions-Flags setzen, Namen und Ids lesen, klonen und instanziieren für viele Kopien und ihre Dreiecke wieder auslesen. Drehungen werden in Grad angegeben; Positionen und Abstände in Szeneneinheiten.

    Index

    Konstruktoren

    edit

    • Verbindet mehrere Meshes zu einem neuen Mesh, das schneller gezeichnet wird als viele getrennte.

      Die Quellen werden entfernt, wenn disposeSource true ist; setzen Sie allow32BitsIndices, wenn die Meshes zusammen mehr als 65 Tausend Vertices haben, und verwenden Sie die Sub-Mesh-Optionen, um getrennte Materialien zu behalten.

      Parameter

      • inputs: MergeMeshesDto

        Die Meshes und die Optionen für das Zusammenführen

      Rückgabewert Mesh

      Das zusammengeführte Mesh

      const merged = bitbybit.babylon.mesh.mergeMeshes({ arrayOfMeshes: [meshA, meshB], disposeSource: true, allow32BitsIndices: true, subdivideWithSubMeshes: false, multiMultiMaterials: false });
      
    • Gibt jedem Dreieck eines Meshes eigene Vertices und Normalen, sodass Flächen als flache Facetten erscheinen, statt über Kanten hinweg geglättet zu werden; das Mesh wird an Ort und Stelle geändert und zurückgegeben.

      Parameter

      Rückgabewert Mesh

      Dasselbe Mesh, flach schattiert

      const faceted = bitbybit.babylon.mesh.convertToFlatShadedMesh({ babylonMesh: mesh });
      
    • Erstellt eine Kopie eines Meshes, mit seinen Kindern, die die Geometrie des Originals teilt und an derselben Stelle platziert wird; die Kopie wirft und empfängt Schatten wie das Original.

      Parameter

      Rückgabewert Mesh

      Die Kopie

      const copy = bitbybit.babylon.mesh.clone({ babylonMesh: mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: copy, position: [10, 0, 0] });
    • Erstellt eine Kopie eines Meshes an jeder gegebenen Position, in derselben Reihenfolge; die Kopien teilen die Geometrie des Originals.

      Parameter

      Rückgabewert Mesh[]

      Eine Kopie pro Position

      const copies = bitbybit.babylon.mesh.cloneToPositions({ babylonMesh: mesh, positions: [[0, 0, 0], [10, 0, 0], [20, 0, 0]] });
      

    get

    • Liest den Knoten, dem ein Mesh untergeordnet ist, mit dem es sich bewegt; ein Mesh auf der obersten Ebene hat keinen.

      Parameter

      Rückgabewert Node

      Der übergeordnete Knoten

    • Legt fest, ob ein Mesh auf Zeiger-Picking reagiert, und auch seine Kinder, wenn includeChildren true ist; ein nicht pickbares Mesh wird von Klicks und pickenden Strahlen übersprungen.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setPickable({ babylonMesh: mesh, pickable: true, includeChildren: true });
      
    • Liest, ob das Mesh mit dem Zeiger gepickt werden kann.

      Parameter

      Rückgabewert boolean

      True, wenn das Mesh auf Picking reagiert

    • Findet jedes Mesh in der Szene, dessen Name den gegebenen Text enthält, unter Beachtung der Groß-/Kleinschreibung, in Szenen- reihenfolge.

      Parameter

      Rückgabewert AbstractMesh[]

      Die passenden Meshes

      const wheels = bitbybit.babylon.mesh.getMeshesWhereNameContains({ name: "wheel" });
      
    • Listet die einem Mesh untergeordneten Meshes auf: alle Nachkommen, oder nur die direkten Kinder, wenn directDescendantsOnly true ist.

      Parameter

      Rückgabewert AbstractMesh[]

      Die untergeordneten Meshes

      const parts = bitbybit.babylon.mesh.getChildMeshes({ babylonMesh: model, directDescendantsOnly: false });
      
    • Findet jedes Mesh in der Szene mit genau der gegebenen Id; Ids müssen nicht eindeutig sein, daher können mehrere passen.

      Parameter

      Rückgabewert AbstractMesh[]

      Die Meshes mit dieser Id

      const meshes = bitbybit.babylon.mesh.getMeshesOfId({ id: "wheel" });
      
    • Findet das erste Mesh in der Szene mit genau der gegebenen Id; verwenden Sie getMeshesOfId, wenn mehrere sie teilen.

      Parameter

      Rückgabewert AbstractMesh

      Das erste Mesh mit dieser Id

      const mesh = bitbybit.babylon.mesh.getMeshOfId({ id: "wheel" });
      
    • Findet das Mesh mit der gegebenen eindeutigen Id, der Nummer, die die Szene jedem Mesh einmal zuweist, wie getUniqueId sie liest.

      Parameter

      Rückgabewert AbstractMesh

      Das Mesh mit dieser eindeutigen Id

      const id = bitbybit.babylon.mesh.getUniqueId({ babylonMesh: mesh });
      const same = bitbybit.babylon.mesh.getMeshOfUniqueId({ uniqueId: id });
    • Liest die Id eines Meshes, die Kennzeichnung, die setId oder der Lader gesetzt hat, der es erstellt hat.

      Parameter

      Rückgabewert string

      Die Id

    • Liest die eindeutige Id eines Meshes, die Nummer, die die Szene jedem Mesh einmal gibt und nie wiederverwendet.

      Parameter

      Rückgabewert number

      Die eindeutige Id-Nummer

    • Liest die Dreiecke eines Meshes als Listen von drei Punkten in den eigenen Koordinaten des Meshes, die Form, die jscad.shapes.fromPolygonPoints und ähnliche Erzeuger nehmen. Das Mesh muss aus Dreiecken bestehen.

      Parameter

      Rückgabewert Point3[][]

      Die Dreiecke als Listen von drei Punkten

      const triangles = bitbybit.babylon.mesh.getVerticesAsPolygonPoints({ babylonMesh: mesh });
      
    • Liest den Namen eines Meshes, wie von setName oder von dem, was es erstellt hat, gesetzt.

      Parameter

      Rückgabewert string

      Der Name

    • Liest das Material eines Meshes, die Oberflächenbeschreibung, mit der seine Flächen gezeichnet werden.

      Parameter

      Rückgabewert Material

      Das Material

    • Liest die Position eines Meshes relativ zu seinem Elternteil, als Punkt.

      Parameter

      Rückgabewert Point3

      Die Position als Punkt

    • Liest die Position eines Meshes in Weltkoordinaten, mit der Transformation jedes Elternteils angewendet.

      Parameter

      Rückgabewert Point3

      Die Weltposition als Punkt

    • Liest die Drehung eines Meshes um X, Y und Z, in Radiant, wie seine Rotationseigenschaft sie enthält.

      Parameter

      Rückgabewert Point3

      Die Drehwinkel in Radiant

    • Liest die Skalierungsfaktoren eines Meshes entlang X, Y und Z; 1 ist unskaliert.

      Parameter

      Rückgabewert Point3

      Die Skalierungsfaktoren

    instance

    • Erstellt eine platzierte Instanz eines Meshes, wie createMeshInstanceAndTransform es tut, ohne sie zurückzugeben; für Skripte, die nur wollen, dass die Kopie erscheint.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Erstellt eine Instanz eines Meshes, eine leichtgewichtige Kopie, die seine Geometrie teilt und günstig gezeichnet wird, und platziert sie mit der gegebenen Position, Drehung in Grad und Skalierung.

      Ein Mesh mit Kindern erhält eine Instanz pro Kind, gesammelt unter einem neuen Container; das Original wird ausgeblendet.

      Parameter

      Rückgabewert Mesh

      Der Container, der die Instanzen enthält

      const instance = bitbybit.babylon.mesh.createMeshInstanceAndTransform({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Erstellt eine Instanz eines Meshes, eine leichtgewichtige Kopie, die seine Geometrie teilt und günstig gezeichnet wird, wenn viele gleiche gebraucht werden, platziert dort, wo das Original ist.

      Ein Mesh mit Kindern erhält eine Instanz pro Kind, gesammelt unter einem neuen Container.

      Parameter

      Rückgabewert Mesh

      Die Instanz oder der Container, der die untergeordneten Instanzen enthält

      const instance = bitbybit.babylon.mesh.createMeshInstance({ mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: instance, position: [10, 0, 0] });

    intersects

    • Sagt, ob sich zwei Meshes überlappen, beurteilt anhand ihrer Begrenzungsrahmen: standardmäßig achsenparallele, oder Rahmen, die der Drehung jedes Meshes folgen, wenn precise true ist; includeDescendants prüft auch ihre Kinder.

      Parameter

      Rückgabewert boolean

      True, wenn sich die Meshes überlappen

      const touching = bitbybit.babylon.mesh.intersectsMesh({ babylonMesh: meshA, babylonMesh2: meshB, precise: true, includeDescendants: false });
      
    • Sagt, ob ein Punkt innerhalb des Begrenzungsrahmens eines Meshes liegt.

      Parameter

      Rückgabewert boolean

      True, wenn der Punkt innerhalb der Grenzen des Meshes liegt

      const inside = bitbybit.babylon.mesh.intersectsPoint({ babylonMesh: mesh, point: [0, 1, 0] });
      

    memory

    • Entfernt ein Mesh aus der Szene und gibt seine GPU-Ressourcen frei; das Mesh kann danach nicht mehr verwendet werden. Nichts passiert, wenn kein Mesh angegeben ist.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.dispose({ babylonMesh: mesh });
      

    move

    • Bewegt ein Mesh entlang seiner eigenen Vorwärtsrichtung, der lokalen Z-Achse, um distance Szeneneinheiten; ein gedrehtes Mesh bewegt sich in die Richtung, in die es zeigt.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.moveForward({ babylonMesh: mesh, distance: 5 });
      
    • Bewegt ein Mesh entgegen seiner eigenen Vorwärtsrichtung, der lokalen Z-Achse, um distance Szeneneinheiten.

      Parameter

      Rückgabewert void

    • Bewegt ein Mesh entlang seiner eigenen Aufwärtsrichtung, der lokalen Y-Achse, um distance Szeneneinheiten.

      Parameter

      Rückgabewert void

    • Bewegt ein Mesh entgegen seiner eigenen Aufwärtsrichtung, der lokalen Y-Achse, um distance Szeneneinheiten.

      Parameter

      Rückgabewert void

    • Bewegt ein Mesh entlang seiner eigenen Rechtsrichtung, der lokalen X-Achse, um distance Szeneneinheiten.

      Parameter

      Rückgabewert void

    • Bewegt ein Mesh entgegen seiner eigenen Rechtsrichtung, der lokalen X-Achse, um distance Szeneneinheiten.

      Parameter

      Rückgabewert void

    • Dreht ein Mesh um seine eigene Y-Achse um rotate Grad, zusätzlich zu seiner aktuellen Drehung, so wie ein Auto nach links oder rechts lenkt.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.yaw({ babylonMesh: mesh, rotate: 45 });
      
    • Dreht ein Mesh um seine eigene X-Achse um rotate Grad, zusätzlich zu seiner aktuellen Drehung, so wie eine Nase nach oben oder unten kippt.

      Parameter

      Rückgabewert void

    • Dreht ein Mesh um seine eigene Z-Achse um rotate Grad, zusätzlich zu seiner aktuellen Drehung, so wie ein Flügel sich neigt.

      Parameter

      Rückgabewert void

    • Dreht ein Mesh um angle Grad um eine Achse, die durch position verläuft, sodass das Mesh diesen Punkt umkreist, statt sich an Ort und Stelle zu drehen.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.rotateAroundAxisWithPosition({ mesh, position: [0, 0, 0], axis: [0, 1, 0], angle: 90 });
      

    set

    • Macht ein Mesh zum Kind eines anderen, sodass es sich von da an zusammen mit seinem Elternteil bewegt, dreht und skaliert; seine Position wird relativ zum Elternteil.

      Parameter

      • inputs: SetParentDto

        Das Mesh und das Mesh, dem es untergeordnet wird

      Rückgabewert void

      bitbybit.babylon.mesh.setParent({ babylonMesh: wheel, parentMesh: car });
      
    • Schaltet die Kollisionsprüfung für ein Mesh ein oder aus, und für seine Kinder, wenn includeChildren true ist, sodass eine Kamera oder ein anderer Kollider mit aktivierten Kollisionen nicht hindurchgehen kann.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setCheckCollisions({ babylonMesh: walls, checkCollisions: true, includeChildren: true });
      
    • Lässt ein Mesh, und seine Kinder, wenn includeChildren true ist, darauf reagieren, dass sich der Zeiger bloß über es bewegt, was standardmäßig aus ist, weil es bei jeder Zeigerbewegung ein Picking kostet.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.enablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Beendet, dass ein Mesh, und seine Kinder, wenn includeChildren true ist, auf Zeigerbewegungen reagiert, zurück zum Standard.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.disablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Setzt die Id eines Meshes, eine Kennzeichnung, über die getMeshOfId es findet und die nicht eindeutig sein muss.

      Parameter

      Rückgabewert void

    • Setzt den Namen eines Meshes, und auch seiner Kinder, wenn includeChildren true ist; Namen sind das, was getMeshesWhereNameContains durchsucht.

      Parameter

      Rückgabewert void

    • Gibt einem Mesh ein Material, und auch seinen Kindern, wenn includeChildren true ist; das Material bestimmt die Farbe, den Glanz und die Transparenz seiner Oberfläche.

      Parameter

      Rückgabewert void

      const material = bitbybit.babylon.material.pbrMetallicRoughness.create({ name: "red", baseColor: "#ff0000", emissiveColor: "#000000", metallic: 0.2, roughness: 0.6, alpha: 1, backFaceCulling: false, zOffset: 0 });
      bitbybit.babylon.mesh.setMaterial({ babylonMesh: mesh, material, includeChildren: true });
    • Platziert ein Mesh, oder eine Instanz davon, an einem Punkt relativ zu seinem Elternteil.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setPosition({ babylonMesh: mesh, position: [0, 5, 0] });
      
    • Setzt die Drehung eines Meshes, oder einer Instanz davon, als Winkel in Grad um X, Y und Z, und ersetzt seine aktuelle Drehung.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setRotation({ babylonMesh: mesh, rotation: [0, 90, 0] });
      
    • Setzt die Skalierungsfaktoren eines Meshes, oder einer Instanz davon, entlang X, Y und Z, und ersetzt seine aktuelle Skalierung; 1 ist unskaliert.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setScale({ babylonMesh: mesh, scale: [2, 1, 1] });
      
    • Multipliziert die aktuelle Skalierung eines Meshes, oder einer Instanz davon, mit einem Faktor auf allen Achsen, sodass 2 verdoppelt, welche Größe es auch hat.

      Parameter

      Rückgabewert void

    updates

    • Verschiebt, dreht, skaliert und färbt ein gezeichnetes Mesh an Ort und Stelle um, ohne es neu zu zeichnen, was schneller ist, wenn sich nur die Platzierung oder die Farbe ändert.

      rotation ist hier in Radiant. colours ist eine Hex-Farbe oder eine Liste mit einem Eintrag pro Kind- Mesh oder pro Punkt oder Linie einer solchen Zeichnung; jede andere Liste verwendet ihren ersten Eintrag.

      Parameter

      • inputs: UpdateDrawnBabylonMesh

        Das gezeichnete Mesh, seine neue Position, Drehung, Skalierung und seine neuen Farben

      Rückgabewert void

      bitbybit.babylon.mesh.updateDrawn({ babylonMesh: mesh, position: [0, 5, 0], rotation: [0, Math.PI / 2, 0], scaling: [1, 1, 1], colours: "#ff0000" });
      

    visibility

    • Legt fest, wie sichtbar ein Mesh ist, von 0 für vollständig transparent bis 1 für vollständig sichtbar, wobei die Werte dazwischen es ausblenden; includeChildren wendet denselben Wert auf seine Kind-Meshes an.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.setVisibility({ babylonMesh: mesh, visibility: 0.5, includeChildren: true });
      
    • Blendet ein Mesh aus, ohne es aus der Szene zu entfernen, und auch seine Kind-Meshes, wenn includeChildren true ist; show bringt es zurück.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.hide({ babylonMesh: mesh, includeChildren: true });
      
    • Zeigt ein Mesh, das hide oder ein verstecktes Zeichnen unsichtbar gemacht hat, und auch seine Kind-Meshes, wenn includeChildren true ist.

      Parameter

      Rückgabewert void

      bitbybit.babylon.mesh.show({ babylonMesh: mesh, includeChildren: true });