Bitbybit Docs
    Preparing search index...

    Class BabylonMesh

    Trabajar con mallas que ya están en la escena de BabylonJS, los objetos que devuelve draw.drawAnyAsync: moverlas, rotarlas y escalarlas, mostrarlas y ocultarlas, emparentarlas, los indicadores de selección y colisión, los nombres y los ids, clonar e instanciar para muchas copias, y leer de vuelta sus triángulos. Las rotaciones se dan en grados; las posiciones y distancias están en unidades de la escena.

    Index

    Constructors

    edit

    • Une varias mallas en una malla nueva, que se dibuja más rápido que muchas separadas.

      Las fuentes se eliminan cuando disposeSource es true; activa allow32BitsIndices cuando las mallas juntas tienen más de 65 mil vértices, y usa las opciones de submalla para conservar materiales separados.

      Parameters

      Returns Mesh

      La malla fusionada

      const merged = bitbybit.babylon.mesh.mergeMeshes({ arrayOfMeshes: [meshA, meshB], disposeSource: true, allow32BitsIndices: true, subdivideWithSubMeshes: false, multiMultiMaterials: false });
      
    • Da a cada triángulo de una malla sus propios vértices y normales, de modo que las caras se muestran como facetas planas en lugar de suavizarse a través de las aristas; la malla se cambia en el sitio y se devuelve.

      Parameters

      Returns Mesh

      La misma malla, con sombreado plano

      const faceted = bitbybit.babylon.mesh.convertToFlatShadedMesh({ babylonMesh: mesh });
      
    • Hace una copia de una malla, con sus hijas, que comparte la geometría del original y se coloca en el mismo lugar; la copia proyecta y recibe sombras como el original.

      Parameters

      Returns Mesh

      La copia

      const copy = bitbybit.babylon.mesh.clone({ babylonMesh: mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: copy, position: [10, 0, 0] });
    • Hace una copia de una malla en cada posición dada, en el mismo orden; las copias comparten la geometría del original.

      Parameters

      Returns Mesh[]

      Una copia por posición

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

    get

    • Lee el nodo al que está emparentada una malla, que es con el que se mueve; una malla en el nivel superior no tiene ninguno.

      Parameters

      Returns Node

      El nodo padre

    • Lee si una malla participa en la comprobación de colisiones.

      Parameters

      Returns boolean

      True cuando se comprueban las colisiones contra la malla

    • Establece si una malla responde a la selección con el puntero, y también sus hijas cuando includeChildren es true; una malla no seleccionable la saltan los clics y los rayos que seleccionan.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPickable({ babylonMesh: mesh, pickable: true, includeChildren: true });
      
    • Lee si la malla puede seleccionarse con el puntero.

      Parameters

      Returns boolean

      True cuando la malla responde a la selección

    • Encuentra todas las mallas de la escena cuyo nombre contiene el texto dado, distinguiendo mayúsculas y minúsculas, en el orden de la escena.

      Parameters

      Returns AbstractMesh[]

      Las mallas coincidentes

      const wheels = bitbybit.babylon.mesh.getMeshesWhereNameContains({ name: "wheel" });
      
    • Lista las mallas emparentadas bajo una malla: todas las descendientes, o solo las hijas directas cuando directDescendantsOnly es true.

      Parameters

      Returns AbstractMesh[]

      Las mallas hijas

      const parts = bitbybit.babylon.mesh.getChildMeshes({ babylonMesh: model, directDescendantsOnly: false });
      
    • Encuentra todas las mallas de la escena con exactamente el id dado; los ids no tienen por qué ser únicos, así que varias pueden coincidir.

      Parameters

      Returns AbstractMesh[]

      Las mallas con ese id

      const meshes = bitbybit.babylon.mesh.getMeshesOfId({ id: "wheel" });
      
    • Encuentra la primera malla de la escena con exactamente el id dado; usa getMeshesOfId cuando varias lo comparten.

      Parameters

      Returns AbstractMesh

      La primera malla con ese id

      const mesh = bitbybit.babylon.mesh.getMeshOfId({ id: "wheel" });
      
    • Encuentra la malla con el id único dado, el número que la escena asigna a cada malla una sola vez, tal como lo lee getUniqueId.

      Parameters

      Returns AbstractMesh

      La malla con ese id único

      const id = bitbybit.babylon.mesh.getUniqueId({ babylonMesh: mesh });
      const same = bitbybit.babylon.mesh.getMeshOfUniqueId({ uniqueId: id });
    • Lee el id de una malla, la etiqueta establecida por setId o por el cargador que la creó.

      Parameters

      Returns string

      El id

    • Lee el id único de una malla, el número que la escena da a cada malla una sola vez y nunca reutiliza.

      Parameters

      Returns number

      El número de id único

    • Lee los triángulos de una malla como listas de tres puntos en las coordenadas propias de la malla, la forma que reciben jscad.shapes.fromPolygonPoints y constructores similares. La malla debe estar hecha de triángulos.

      Parameters

      Returns Point3[][]

      Los triángulos como listas de tres puntos

      const triangles = bitbybit.babylon.mesh.getVerticesAsPolygonPoints({ babylonMesh: mesh });
      
    • Lee el nombre de una malla, tal como lo estableció setName o lo que la creó.

      Parameters

      Returns string

      El nombre

    • Lee el material de una malla, la descripción de superficie con la que se dibujan sus caras.

      Parameters

      Returns Material

      El material

    • Lee la posición de una malla relativa a su padre, como punto.

      Parameters

      Returns Point3

      La posición como punto

    • Lee la posición de una malla en coordenadas del mundo, con la transformación de todos los padres aplicada.

      Parameters

      Returns Point3

      La posición en el mundo como punto

    • Lee la rotación de una malla alrededor de X, Y y Z, en radianes, tal como la guarda su propiedad de rotación.

      Parameters

      Returns Point3

      Los ángulos de rotación en radianes

    • Lee los factores de escala de una malla a lo largo de X, Y y Z; 1 es sin escalar.

      Parameters

      Returns Point3

      Los factores de escala

    instance

    • Crea una instancia colocada de una malla, como hace createMeshInstanceAndTransform, sin devolverla; para scripts que solo necesitan que aparezca la copia.

      Parameters

      Returns void

      bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Crea una instancia de una malla, una copia ligera que comparte su geometría y se dibuja a bajo coste, y la coloca en la posición, rotación en grados y escala dadas.

      Una malla con hijas recibe una instancia por hija, agrupadas bajo un contenedor nuevo; el original se oculta.

      Parameters

      Returns Mesh

      El contenedor que alberga las instancias

      const instance = bitbybit.babylon.mesh.createMeshInstanceAndTransform({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Crea una instancia de una malla, una copia ligera que comparte su geometría y se dibuja a bajo coste cuando hacen falta muchas iguales, colocada donde está el original.

      Una malla con hijas recibe una instancia por hija, agrupadas bajo un contenedor nuevo.

      Parameters

      Returns Mesh

      La instancia, o el contenedor que alberga las instancias hijas

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

    intersects

    • Indica si dos mallas se solapan, juzgado por sus cajas delimitadoras: alineadas con los ejes de forma predeterminada, o cajas que siguen la rotación de cada malla cuando precise es true; includeDescendants comprueba también sus hijas.

      Parameters

      Returns boolean

      True cuando las mallas se solapan

      const touching = bitbybit.babylon.mesh.intersectsMesh({ babylonMesh: meshA, babylonMesh2: meshB, precise: true, includeDescendants: false });
      
    • Indica si un punto está dentro de la caja delimitadora de una malla.

      Parameters

      Returns boolean

      True cuando el punto está dentro de los límites de la malla

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

    memory

    • Elimina una malla de la escena y libera sus recursos de GPU; la malla no puede usarse después. No ocurre nada cuando no se da ninguna malla.

      Parameters

      Returns void

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

    move

    • Mueve una malla a lo largo de su propia dirección frontal, el eje Z local, distance unidades de escena; una malla girada se mueve en la dirección a la que mira.

      Parameters

      Returns void

      bitbybit.babylon.mesh.moveForward({ babylonMesh: mesh, distance: 5 });
      
    • Mueve una malla en contra de su propia dirección frontal, el eje Z local, distance unidades de escena.

      Parameters

      Returns void

    • Mueve una malla a lo largo de su propia dirección ascendente, el eje Y local, distance unidades de escena.

      Parameters

      Returns void

    • Mueve una malla en contra de su propia dirección ascendente, el eje Y local, distance unidades de escena.

      Parameters

      Returns void

    • Mueve una malla a lo largo de su propia dirección derecha, el eje X local, distance unidades de escena.

      Parameters

      Returns void

    • Mueve una malla en contra de su propia dirección derecha, el eje X local, distance unidades de escena.

      Parameters

      Returns void

    • Gira una malla alrededor de su propio eje Y rotate grados, sobre su rotación actual, como un coche gira a izquierda o derecha.

      Parameters

      Returns void

      bitbybit.babylon.mesh.yaw({ babylonMesh: mesh, rotate: 45 });
      
    • Gira una malla alrededor de su propio eje X rotate grados, sobre su rotación actual, como un morro se inclina hacia arriba o hacia abajo.

      Parameters

      Returns void

    • Gira una malla alrededor de su propio eje Z rotate grados, sobre su rotación actual, como un ala se inclina.

      Parameters

      Returns void

    • Gira una malla angle grados alrededor de un eje que pasa por position, de modo que la malla orbita ese punto en lugar de girar en el sitio.

      Parameters

      Returns void

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

    set

    • Hace que una malla sea hija de otra, de modo que a partir de entonces se mueve, gira y escala junto con su padre; su posición pasa a ser relativa al padre.

      Parameters

      • inputs: SetParentDto

        La malla y la malla a la que emparentarla

      Returns void

      bitbybit.babylon.mesh.setParent({ babylonMesh: wheel, parentMesh: car });
      
    • Activa o desactiva la comprobación de colisiones de una malla, y de sus hijas cuando includeChildren es true, de modo que una cámara u otro colisionador con colisiones activadas no puede atravesarla.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setCheckCollisions({ babylonMesh: walls, checkCollisions: true, includeChildren: true });
      
    • Permite que una malla, y sus hijas cuando includeChildren es true, reaccione al simple paso del puntero sobre ella, lo que está desactivado de forma predeterminada porque cuesta una selección en cada movimiento del puntero.

      Parameters

      Returns void

      bitbybit.babylon.mesh.enablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Impide que una malla, y sus hijas cuando includeChildren es true, reaccione a los movimientos del puntero, de vuelta al valor predeterminado.

      Parameters

      Returns void

      bitbybit.babylon.mesh.disablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Establece el id de una malla, una etiqueta por la que getMeshOfId la encuentra y que no tiene por qué ser única.

      Parameters

      Returns void

    • Establece el nombre de una malla, y también de sus hijas cuando includeChildren es true; los nombres son lo que busca getMeshesWhereNameContains.

      Parameters

      Returns void

    • Da un material a una malla, y también a sus hijas cuando includeChildren es true; el material decide el color, el brillo y la transparencia de su superficie.

      Parameters

      Returns 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 });
    • Coloca una malla, o una instancia de una, en un punto relativo a su padre.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPosition({ babylonMesh: mesh, position: [0, 5, 0] });
      
    • Establece la rotación de una malla, o de una instancia de una, como ángulos en grados alrededor de X, Y y Z, sustituyendo su rotación actual.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setRotation({ babylonMesh: mesh, rotation: [0, 90, 0] });
      
    • Establece los factores de escala de una malla, o de una instancia de una, a lo largo de X, Y y Z, sustituyendo su escala actual; 1 es sin escalar.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setScale({ babylonMesh: mesh, scale: [2, 1, 1] });
      
    • Multiplica la escala actual de una malla, o de una instancia de una, por un factor en todos los ejes, de modo que 2 duplica el tamaño que tenga.

      Parameters

      Returns void

    updates

    • Mueve, rota, escala y recolorea una malla dibujada en el sitio, sin dibujarla de nuevo, lo que es más rápido cuando solo cambian la colocación o el color.

      rotation está aquí en radianes. colours es un color hexadecimal, o una lista con una entrada por malla hija, o por punto o línea de ese dibujo; cualquier otra lista usa su primera entrada.

      Parameters

      Returns void

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

    visibility

    • Establece cuán visible es una malla, de 0 para totalmente transparente a 1 para totalmente visible, con los valores intermedios atenuándola; includeChildren aplica el mismo valor a sus mallas hijas.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setVisibility({ babylonMesh: mesh, visibility: 0.5, includeChildren: true });
      
    • Oculta una malla sin eliminarla de la escena, y también sus mallas hijas cuando includeChildren es true; show la vuelve a mostrar.

      Parameters

      Returns void

      bitbybit.babylon.mesh.hide({ babylonMesh: mesh, includeChildren: true });
      
    • Muestra una malla que hide o un dibujo oculto hicieron invisible, y también sus mallas hijas cuando includeChildren es true.

      Parameters

      Returns void

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