Bitbybit Docs
    Preparing search index...

    Class Draw

    Desenhar qualquer coisa na cena: formas do kernel, pontos, linhas, polilinhas, curvas, malhas e tags passam todos por drawAnyAsync, que escolhe o renderizador certo para a entidade e devolve o objeto desenhado. Os métodos options constroem as opções de desenho com predefinições para cada tipo de entidade, createPBRMaterial e createTexture criam materiais para as ranhuras das faces, e um objeto desenhado pode ser redesenhado no lugar passando-o de volta.

    Hierarchy (View Summary)

    Index

    Constructors

    • Returns Bit.Draw

    draw async

    • Desenha qualquer entidade na cena, tal como drawAnyAsync faz, sem devolver o objeto desenhado; para o último passo de um script que só precisa que o resultado apareça.

      Parameters

      • inputs: DrawAny

        A entidade a desenhar e as opções de desenho opcionais

      Returns Promise<void>

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
      await bitbybit.draw.drawAnyAsyncNoReturn({ entity: box });
    • Desenha na cena qualquer entidade que a biblioteca produz e devolve o objeto desenhado: formas de kernel do OCCT, JSCAD e Manifold, pontos, linhas, polilinhas, curvas, malhas, etiquetas e nós.

      As opções são ajustadas à entidade, com predefinições quando nenhuma é dada; passe o resultado anterior de volta na ranhura de atualização para redesenhar no lugar.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        A entidade a desenhar, as opções de desenho opcionais e o resultado anterior ao atualizar

      Returns Promise<Drawn<E, Mesh>>

      O que o desenho da entidade produz: um objeto de cena para geometria, a tag ou tags para uma tag, uma tríade de eixos para um nó; undefined para uma lista vazia

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
      const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      const drawn = await bitbybit.draw.drawAnyAsync({ entity: box, options });

    draw sync

    • Desenha uma entidade que não precisa de trabalho do kernel, tal como drawAny faz, sem devolver o objeto desenhado; pontos, linhas, polilinhas e etiquetas qualificam-se, formas de kernel não.

      Parameters

      • inputs: DrawAny

        A entidade a desenhar e as opções de desenho opcionais

      Returns void

      bitbybit.draw.drawAnyNoReturn({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]] });
      
    • Desenha imediatamente na cena uma entidade que não precisa de trabalho do kernel e devolve o objeto desenhado: pontos, linhas, polilinhas, etiquetas e nós.

      As formas de kernel do OCCT, JSCAD e Manifold têm de passar por drawAnyAsync, que espera que o kernel gere a sua malha.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        A entidade a desenhar, as opções de desenho opcionais e o resultado anterior ao atualizar

      Returns Drawn<E, Mesh>

      O que o desenho da entidade produz: um objeto de cena para geometria, a tag ou tags para uma tag, uma tríade de eixos para um nó; undefined para uma lista vazia

      const options = bitbybit.draw.optionsSimple({ colours: "#00ff00", size: 0.5, opacity: 1, updatable: false, hidden: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, colorMapStrategy: Bit.Inputs.Base.colorMapStrategyEnum.lastColorRemainder, arrowSize: 0, arrowAngle: 15 });
      const drawn = bitbybit.draw.drawAny({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]], options });

    grid

    • Desenha uma grelha no plano do chão, tal como drawGridMesh faz, sem devolver a malha.

      Parameters

      Returns void

      bitbybit.draw.drawGridMeshNoReturn({ width: 400, height: 400, subdivisions: 10, majorUnitFrequency: 10, minorUnitVisibility: 0.45, gridRatio: 0.5, opacity: 0.5, backFaceCulling: false, mainColor: "#ffffff", secondaryColor: "#ffffff" });
      
    • Desenha uma grelha no plano do chão, o plano XZ que passa pela origem, para dar uma noção de escala e orientação; por predefinição cada décima linha é desenhada mais grossa.

      Parameters

      Returns Mesh

      A malha da grelha

      const grid = bitbybit.draw.drawGridMesh({ width: 400, height: 400, subdivisions: 10, majorUnitFrequency: 10, minorUnitVisibility: 0.45, gridRatio: 0.5, opacity: 0.5, backFaceCulling: false, mainColor: "#ffffff", secondaryColor: "#ffffff" });
      

    material

    • Cria uma textura de imagem a partir de um URL para as ranhuras de textura de createPBRMaterial, com repetição, deslocamento, rotação e filtragem que significam o mesmo em todos os renderizadores.

      Parameters

      • inputs: GenericTextureDto

        O URL da imagem e as opções de repetição, deslocamento, rotação, inversão e amostragem

      Returns Texture

      A textura do motor

      const texture = bitbybit.draw.createTexture({ url: "https://example.com/wood.jpg", name: "wood", uScale: 2, vScale: 2, uOffset: 0, vOffset: 0, wAng: 0, invertY: false, invertZ: false, samplingMode: Bit.Inputs.Draw.samplingModeEnum.trilinear });
      
    • Cria um material fisicamente baseado a partir de definições que significam o mesmo em todos os renderizadores: cor base, metálico e rugosidade, opacidade, brilho emissivo, as ranhuras de textura e as opções de alfa e de lado; coloque-o no faceMaterial das opções de desenho.

      Parameters

      • inputs: GenericPBRMaterialDto

        O nome, as cores, os valores metálico e de rugosidade, a opacidade, as texturas e as opções de renderização

      Returns PBRMetallicRoughnessMaterial

      O material do motor

      const material = bitbybit.draw.createPBRMaterial({ name: "steel", baseColor: "#c0c0c0", metallic: 1, roughness: 0.4, alpha: 1, emissiveColor: "#000000", emissiveIntensity: 1, zOffset: 0, zOffsetUnits: 0, alphaMode: Bit.Inputs.Draw.alphaModeEnum.opaque, alphaCutoff: 0.5, doubleSided: false, wireframe: false, unlit: false });
      const options = bitbybit.draw.optionsOcctShapeMaterial({ precision: 0.01, faceMaterial: material, drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2 });

    options

    • Constrói opções de desenho para pontos, linhas, polilinhas, curvas, superfícies e malhas JSCAD: cores, tamanho, opacidade, renderização de dois lados e pontas de seta nas linhas, com predefinições para o que for omitido.

      Parameters

      Returns DrawBasicGeometryOptions

      As opções de desenho

      const options = bitbybit.draw.optionsSimple({ colours: "#ff0000", size: 2, opacity: 1, updatable: false, hidden: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, colorMapStrategy: Bit.Inputs.Base.colorMapStrategyEnum.lastColorRemainder, arrowSize: 0, arrowAngle: 15 });
      
    • Constrói as opções de desenho completas para formas OCCT: precisão de malha, cores e tamanhos de faces, arestas e vértices, rótulos de índice, setas nas arestas, renderização de dois lados e a cache de triangulação, com predefinições para o que for omitido.

      Parameters

      Returns DrawOcctShapeOptions

      As opções de desenho

      const options = bitbybit.draw.optionsOcctShape({ faceOpacity: 1, edgeOpacity: 1, edgeColour: "#ffffff", faceColour: "#ff0000", edgeWidth: 2, drawEdges: true, drawFaces: true, drawVertices: false, vertexColour: "#ff00ff", vertexSize: 0.03, precision: 0.01, drawEdgeIndexes: false, edgeIndexHeight: 0.06, edgeIndexColour: "#ff00ff", drawFaceIndexes: false, faceIndexHeight: 0.06, faceIndexColour: "#0000ff", drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1, edgeArrowSize: 0, edgeArrowAngle: 15, keepMeshData: false, allowQualityDecrease: true, forceFaceDeflection: false });
      
    • Constrói as opções de desenho mais usadas para formas OCCT, precisão, cores de faces e arestas e renderização de dois lados, com predefinições para o que for omitido.

      Parameters

      Returns DrawOcctShapeSimpleOptions

      As opções de desenho

      const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      
    • Constrói opções de desenho para formas OCCT cujas faces usam um material completo do motor, tal como createPBRMaterial o cria, mais a precisão e o estilo das arestas.

      Parameters

      Returns DrawOcctShapeMaterialOptions

      As opções de desenho

      const material = bitbybit.draw.createPBRMaterial({ name: "steel", baseColor: "#c0c0c0", metallic: 1, roughness: 0.4, alpha: 1, emissiveColor: "#000000", emissiveIntensity: 1, zOffset: 0, zOffsetUnits: 0, alphaMode: Bit.Inputs.Draw.alphaModeEnum.opaque, alphaCutoff: 0.5, doubleSided: false, wireframe: false, unlit: false });
      const options = bitbybit.draw.optionsOcctShapeMaterial({ precision: 0.01, faceMaterial: material, drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2 });
    • Constrói opções de desenho para sólidos e secções transversais Manifold: cor de face ou um material completo do motor, o estilo de linha das secções transversais, as normais e a renderização de dois lados.

      Parameters

      Returns DrawManifoldOrCrossSectionOptions

      As opções de desenho

      const options = bitbybit.draw.optionsManifoldShapeMaterial({ faceOpacity: 1, faceColour: "#ff0000", faceMaterial: material, crossSectionColour: "#ff00ff", crossSectionWidth: 2, crossSectionOpacity: 1, computeNormals: false, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      const drawn = await bitbybit.draw.drawAnyAsync({ entity: solid, options });
    • Constrói opções de desenho para nós de transformação, que são desenhados como uma tríade de linhas de eixo coloridas com um dado comprimento.

      Parameters

      Returns DrawNodeOptions

      As opções de desenho

      const options = bitbybit.draw.optionsBabylonNode({ colorX: "#ff0000", colorY: "#00ff00", colorZ: "#0000ff", size: 2 });
      const drawn = await bitbybit.draw.drawAnyAsync({ entity: node, options });