Bitbybit Docs
    Preparing search index...

    Class BabylonMesh

    Trabalhar com malhas já presentes na cena BabylonJS, os objetos que draw.drawAnyAsync devolve: movê-las, rodá-las e escalá-las, mostrar e ocultar, definir o pai, os indicadores de seleção e colisão, nomes e ids, clonagem e instanciação para muitas cópias, e ler de volta os seus triângulos. As rotações são dadas em graus; as posições e distâncias estão em unidades da cena.

    Index

    Constructors

    edit

    • Une várias malhas numa nova malha, que se desenha mais depressa do que muitas separadas.

      As origens são removidas quando disposeSource é verdadeiro; ative allow32BitsIndices quando as malhas juntas têm mais de 65 mil vértices, e use as opções de submalha para manter materiais separados.

      Parameters

      Returns Mesh

      A malha unida

      const merged = bitbybit.babylon.mesh.mergeMeshes({ arrayOfMeshes: [meshA, meshB], disposeSource: true, allow32BitsIndices: true, subdivideWithSubMeshes: false, multiMultiMaterials: false });
      
    • Dá a cada triângulo de uma malha os seus próprios vértices e normais, de modo que as faces aparecem como facetas planas em vez de suavizadas através das arestas; a malha é alterada no lugar e devolvida.

      Parameters

      Returns Mesh

      A mesma malha, com sombreamento plano

      const faceted = bitbybit.babylon.mesh.convertToFlatShadedMesh({ babylonMesh: mesh });
      
    • Cria uma cópia de uma malha, com os seus filhos, que partilha a geometria da original e é colocada no mesmo sítio; a cópia projeta e recebe sombras como a original.

      Parameters

      Returns Mesh

      A cópia

      const copy = bitbybit.babylon.mesh.clone({ babylonMesh: mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: copy, position: [10, 0, 0] });
    • Cria uma cópia de uma malha em cada posição dada, pela mesma ordem; as cópias partilham a geometria da original.

      Parameters

      Returns Mesh[]

      Uma cópia por posição

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

    get

    • Lê o nó a que uma malha está associada como filha, que é aquele com que se move; uma malha no nível superior não tem nenhum.

      Parameters

      Returns Node

      O nó pai

    • Define se uma malha responde à seleção por ponteiro, e os seus filhos também quando includeChildren é verdadeiro; uma malha não selecionável é ignorada pelos cliques e pelos raios que selecionam.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPickable({ babylonMesh: mesh, pickable: true, includeChildren: true });
      
    • Lê se a malha pode ser selecionada com o ponteiro.

      Parameters

      Returns boolean

      True quando a malha responde à seleção

    • Encontra todas as malhas na cena cujo nome contém o texto dado, distinguindo maiúsculas e minúsculas, pela ordem da cena.

      Parameters

      Returns AbstractMesh[]

      As malhas correspondentes

      const wheels = bitbybit.babylon.mesh.getMeshesWhereNameContains({ name: "wheel" });
      
    • Lista as malhas associadas como filhas de uma malha: todos os descendentes, ou só os filhos diretos quando directDescendantsOnly é verdadeiro.

      Parameters

      Returns AbstractMesh[]

      As malhas filhas

      const parts = bitbybit.babylon.mesh.getChildMeshes({ babylonMesh: model, directDescendantsOnly: false });
      
    • Encontra todas as malhas na cena com exatamente o id dado; os ids não precisam de ser únicos, por isso várias podem corresponder.

      Parameters

      Returns AbstractMesh[]

      As malhas com esse id

      const meshes = bitbybit.babylon.mesh.getMeshesOfId({ id: "wheel" });
      
    • Encontra a primeira malha na cena com exatamente o id dado; use getMeshesOfId quando várias o partilham.

      Parameters

      Returns AbstractMesh

      A primeira malha com esse id

      const mesh = bitbybit.babylon.mesh.getMeshOfId({ id: "wheel" });
      
    • Encontra a malha com o id único dado, o número que a cena atribui uma vez a cada malha, tal como getUniqueId o lê.

      Parameters

      Returns AbstractMesh

      A malha com esse id único

      const id = bitbybit.babylon.mesh.getUniqueId({ babylonMesh: mesh });
      const same = bitbybit.babylon.mesh.getMeshOfUniqueId({ uniqueId: id });
    • Lê o id de uma malha, o rótulo definido por setId ou pelo carregador que a criou.

      Parameters

      Returns string

      O id

    • Lê o id único de uma malha, o número que a cena dá uma vez a cada malha e nunca reutiliza.

      Parameters

      Returns number

      O número de id único

    • Lê os triângulos de uma malha como listas de três pontos nas coordenadas próprias da malha, a forma que jscad.shapes.fromPolygonPoints e construtores semelhantes recebem. A malha tem de ser feita de triângulos.

      Parameters

      Returns Point3[][]

      Os triângulos como listas de três pontos

      const triangles = bitbybit.babylon.mesh.getVerticesAsPolygonPoints({ babylonMesh: mesh });
      
    • Lê o nome de uma malha, tal como definido por setName ou por quem a criou.

      Parameters

      Returns string

      O nome

    • Lê o material de uma malha, a descrição de superfície com que as suas faces são desenhadas.

      Parameters

      Returns Material

      O material

    • Lê a posição de uma malha em relação ao seu pai, como um ponto.

      Parameters

      Returns Point3

      A posição como um ponto

    • Lê a posição de uma malha em coordenadas do mundo, com a transformação de todos os pais aplicada.

      Parameters

      Returns Point3

      A posição no mundo como um ponto

    • Lê a rotação de uma malha em torno de X, Y e Z, em radianos, tal como a sua propriedade de rotação a guarda.

      Parameters

      Returns Point3

      Os ângulos de rotação em radianos

    • Lê os fatores de escala de uma malha ao longo de X, Y e Z; 1 é sem escala.

      Parameters

      Returns Point3

      Os fatores de escala

    instance

    • Cria uma instância colocada de uma malha, tal como createMeshInstanceAndTransform faz, sem a devolver; para scripts que só precisam que a cópia apareça.

      Parameters

      Returns void

      bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Cria uma instância de uma malha, uma cópia leve que partilha a sua geometria e se desenha a baixo custo, e coloca-a na posição, rotação em graus e escala dadas.

      Uma malha com filhos recebe uma instância por filho, reunidas sob um novo contentor; a original é ocultada.

      Parameters

      Returns Mesh

      O contentor que contém as instâncias

      const instance = bitbybit.babylon.mesh.createMeshInstanceAndTransform({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Cria uma instância de uma malha, uma cópia leve que partilha a sua geometria e se desenha a baixo custo quando são precisas muitas iguais, colocada onde está a original.

      Uma malha com filhos recebe uma instância por filho, reunidas sob um novo contentor.

      Parameters

      Returns Mesh

      A instância, ou o contentor que contém as instâncias filhas

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

    intersects

    • Indica se duas malhas se sobrepõem, avaliado pelas suas caixas delimitadoras: alinhadas com os eixos por predefinição, ou caixas que seguem a rotação de cada malha quando precise é verdadeiro; includeDescendants testa também os seus filhos.

      Parameters

      Returns boolean

      True quando as malhas se sobrepõem

      const touching = bitbybit.babylon.mesh.intersectsMesh({ babylonMesh: meshA, babylonMesh2: meshB, precise: true, includeDescendants: false });
      
    • Indica se um ponto fica dentro da caixa delimitadora de uma malha.

      Parameters

      Returns boolean

      True quando o ponto está dentro dos limites da malha

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

    memory

    • Remove uma malha da cena e liberta os seus recursos de GPU; a malha não pode ser usada depois. Nada acontece quando não é dada nenhuma malha.

      Parameters

      Returns void

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

    move

    • Move uma malha ao longo da sua própria direção para a frente, o eixo Z local, distance unidades de cena; uma malha rodada move-se na direção para que está virada.

      Parameters

      Returns void

      bitbybit.babylon.mesh.moveForward({ babylonMesh: mesh, distance: 5 });
      
    • Move uma malha contra a sua própria direção para a frente, o eixo Z local, distance unidades de cena.

      Parameters

      Returns void

    • Move uma malha ao longo da sua própria direção para cima, o eixo Y local, distance unidades de cena.

      Parameters

      Returns void

    • Move uma malha contra a sua própria direção para cima, o eixo Y local, distance unidades de cena.

      Parameters

      Returns void

    • Move uma malha ao longo da sua própria direção para a direita, o eixo X local, distance unidades de cena.

      Parameters

      Returns void

    • Move uma malha contra a sua própria direção para a direita, o eixo X local, distance unidades de cena.

      Parameters

      Returns void

    • Roda uma malha em torno do seu próprio eixo Y rotate graus, além da sua rotação atual, como um carro vira à esquerda ou à direita.

      Parameters

      Returns void

      bitbybit.babylon.mesh.yaw({ babylonMesh: mesh, rotate: 45 });
      
    • Roda uma malha em torno do seu próprio eixo X rotate graus, além da sua rotação atual, como um nariz que se inclina para cima ou para baixo.

      Parameters

      Returns void

    • Roda uma malha em torno do seu próprio eixo Z rotate graus, além da sua rotação atual, como uma asa que se inclina.

      Parameters

      Returns void

    • Roda uma malha angle graus em torno de um eixo que passa por position, de modo que a malha orbita esse ponto em vez de girar no lugar.

      Parameters

      Returns void

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

    set

    • Torna uma malha filha de outra, de modo que a partir daí se move, roda e escala junto com o seu pai; a sua posição passa a ser relativa ao pai.

      Parameters

      • inputs: SetParentDto

        A malha e a malha que passa a ser o seu pai

      Returns void

      bitbybit.babylon.mesh.setParent({ babylonMesh: wheel, parentMesh: car });
      
    • Liga ou desliga a verificação de colisões para uma malha, e para os seus filhos quando includeChildren é verdadeiro, de modo que uma câmara ou outro colisor com colisões ativas não a consiga atravessar.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setCheckCollisions({ babylonMesh: walls, checkCollisions: true, includeChildren: true });
      
    • Permite que uma malha, e os seus filhos quando includeChildren é verdadeiro, reaja ao simples movimento do ponteiro sobre ela, o que está desligado por predefinição porque custa uma seleção a cada movimento do ponteiro.

      Parameters

      Returns void

      bitbybit.babylon.mesh.enablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Impede uma malha, e os seus filhos quando includeChildren é verdadeiro, de reagir aos movimentos do ponteiro, de volta à predefinição.

      Parameters

      Returns void

      bitbybit.babylon.mesh.disablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Define o id de uma malha, um rótulo pelo qual getMeshOfId a encontra e que não precisa de ser único.

      Parameters

      Returns void

    • Define o nome de uma malha, e dos seus filhos também quando includeChildren é verdadeiro; os nomes são o que getMeshesWhereNameContains pesquisa.

      Parameters

      Returns void

    • Dá um material a uma malha, e aos seus filhos também quando includeChildren é verdadeiro; o material decide a cor, o brilho e a transparência da sua superfície.

      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 uma malha, ou uma instância de uma, num ponto relativo ao seu pai.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPosition({ babylonMesh: mesh, position: [0, 5, 0] });
      
    • Define a rotação de uma malha, ou de uma instância de uma, como ângulos em graus em torno de X, Y e Z, substituindo a sua rotação atual.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setRotation({ babylonMesh: mesh, rotation: [0, 90, 0] });
      
    • Define os fatores de escala de uma malha, ou de uma instância de uma, ao longo de X, Y e Z, substituindo a sua escala atual; 1 é sem escala.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setScale({ babylonMesh: mesh, scale: [2, 1, 1] });
      
    • Multiplica a escala atual de uma malha, ou de uma instância de uma, por um fator em todos os eixos, de modo que 2 duplica o tamanho que quer que tenha.

      Parameters

      Returns void

    updates

    • Move, roda, escala e recolore uma malha desenhada no lugar, sem a desenhar de novo, o que é mais rápido quando só a colocação ou a cor mudam.

      rotation está aqui em radianos. colours é uma cor hexadecimal, ou uma lista com uma entrada por malha filha, ou por ponto ou linha de tal desenho; qualquer outra lista usa a sua primeira 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

    • Define quão visível uma malha é, de 0 para totalmente transparente a 1 para totalmente mostrada, com os valores intermédios a desvanecê-la; includeChildren aplica o mesmo valor às suas malhas filhas.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setVisibility({ babylonMesh: mesh, visibility: 0.5, includeChildren: true });
      
    • Oculta uma malha sem a remover da cena, e as suas malhas filhas também quando includeChildren é verdadeiro; show traz-a de volta.

      Parameters

      Returns void

      bitbybit.babylon.mesh.hide({ babylonMesh: mesh, includeChildren: true });
      
    • Mostra uma malha que hide ou um desenho oculto tornou invisível, e as suas malhas filhas também quando includeChildren é verdadeiro.

      Parameters

      Returns void

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