Bitbybit Docs
    Preparing search index...

    Class Draw

    Dibujar cualquier cosa en la escena: formas de los núcleos, puntos, líneas, polilíneas, curvas, mallas y etiquetas pasan todos por drawAnyAsync, que elige el renderizador adecuado para la entidad y devuelve el objeto dibujado. Los métodos options construyen las opciones de dibujo con valores predeterminados para cada tipo de entidad, createPBRMaterial y createTexture crean materiales para las ranuras de las caras, y un objeto dibujado puede redibujarse en su sitio pasándolo de vuelta.

    Hierarchy (View Summary)

    Index

    Constructors

    • Returns Bit.Draw

    draw async

    • Dibuja cualquier entidad en la escena, como hace drawAnyAsync, sin devolver el objeto dibujado; para el último paso de un script que solo necesita que aparezca el resultado.

      Parameters

      • inputs: DrawAny

        La entidad que se va a dibujar y las opciones de dibujo opcionales

      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 });
    • Dibuja en la escena cualquier entidad que produce la biblioteca y devuelve el objeto dibujado: formas de núcleo de OCCT, JSCAD y Manifold, puntos, líneas, polilíneas, curvas, mallas, etiquetas y nodos.

      Las opciones se ajustan a la entidad, con valores predeterminados cuando no se da ninguna; pasa el resultado anterior en la ranura de actualización para redibujar en el sitio.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        La entidad que se va a dibujar, las opciones de dibujo opcionales y el resultado anterior al actualizar

      Returns Promise<Drawn<E, Mesh>>

      Lo que produce dibujar la entidad: un objeto de escena para la geometría, la etiqueta o etiquetas para una etiqueta, una tríada de ejes para un nodo; undefined para una lista vacía

      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

    • Dibuja una entidad que no necesita trabajo del núcleo, como hace drawAny, sin devolver el objeto dibujado; puntos, líneas, polilíneas y etiquetas sirven, las formas de núcleo no.

      Parameters

      • inputs: DrawAny

        La entidad que se va a dibujar y las opciones de dibujo opcionales

      Returns void

      bitbybit.draw.drawAnyNoReturn({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]] });
      
    • Dibuja de inmediato en la escena una entidad que no necesita trabajo del núcleo y devuelve el objeto dibujado: puntos, líneas, polilíneas, etiquetas y nodos.

      Las formas de núcleo de OCCT, JSCAD y Manifold deben pasar por drawAnyAsync, que espera a que el núcleo las malle.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        La entidad que se va a dibujar, las opciones de dibujo opcionales y el resultado anterior al actualizar

      Returns Drawn<E, Mesh>

      Lo que produce dibujar la entidad: un objeto de escena para la geometría, la etiqueta o etiquetas para una etiqueta, una tríada de ejes para un nodo; undefined para una lista vacía

      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

    • Dibuja una cuadrícula en el plano del suelo, como hace drawGridMesh, sin devolver la malla.

      Parameters

      • inputs: SceneDrawGridMeshDto

        El tamaño, la separación de las líneas, los colores y la opacidad de la cuadrícula

      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" });
      
    • Dibuja una cuadrícula en el plano del suelo, el plano XZ que pasa por el origen, para dar una sensación de escala y orientación; de forma predeterminada cada décima línea se dibuja más gruesa.

      Parameters

      • inputs: SceneDrawGridMeshDto

        El tamaño, la separación de las líneas, los colores y la opacidad de la cuadrícula

      Returns Mesh

      La malla de la cuadrícula

      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

    • Crea una textura de imagen a partir de una URL para las ranuras de textura de createPBRMaterial, con repetición, desplazamiento, rotación y filtrado que significan lo mismo en todos los renderizadores.

      Parameters

      • inputs: GenericTextureDto

        La URL de la imagen y las opciones de repetición, desplazamiento, rotación, volteo y muestreo

      Returns Texture

      La textura del 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 });
      
    • Crea un material basado en la física a partir de ajustes que significan lo mismo en todos los renderizadores: color base, metálico y rugosidad, opacidad, brillo emisivo, las ranuras de textura y las opciones de alfa y de lado; ponlo en el faceMaterial de las opciones de dibujo.

      Parameters

      • inputs: GenericPBRMaterialDto

        El nombre, los colores, los valores metálico y de rugosidad, la opacidad, las texturas y las opciones de renderizado

      Returns PBRMetallicRoughnessMaterial

      El material del 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

    • Construye opciones de dibujo para puntos, líneas, polilíneas, curvas, superficies y mallas JSCAD: colores, tamaño, opacidad, renderizado a dos caras y puntas de flecha en las líneas, con valores predeterminados para lo que se omite.

      Parameters

      Returns DrawBasicGeometryOptions

      Las opciones de dibujo

      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 });
      
    • Construye las opciones de dibujo completas para formas OCCT: precisión del mallado, colores y tamaños de caras, aristas y vértices, etiquetas de índice, flechas en las aristas, renderizado a dos caras y la caché de triangulación, con valores predeterminados para lo que se omite.

      Parameters

      Returns DrawOcctShapeOptions

      Las opciones de dibujo

      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 });
      
    • Construye las opciones de dibujo más usadas para formas OCCT, precisión, colores de caras y aristas y renderizado a dos caras, con valores predeterminados para lo que se omite.

      Parameters

      Returns DrawOcctShapeSimpleOptions

      Las opciones de dibujo

      const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      
    • Construye opciones de dibujo para formas OCCT cuyas caras usan un material completo del motor, como lo crea createPBRMaterial, más la precisión y el estilo de las aristas.

      Parameters

      Returns DrawOcctShapeMaterialOptions

      Las opciones de dibujo

      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 });
    • Construye opciones de dibujo para sólidos y secciones transversales de Manifold: color de las caras o un material completo del motor, el estilo de línea de las secciones transversales, las normales y el renderizado a dos caras.

      Parameters

      Returns DrawManifoldOrCrossSectionOptions

      Las opciones de dibujo

      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 });
    • Construye opciones de dibujo para nodos de transformación, que se dibujan como una tríada de líneas de eje coloreadas de una longitud dada.

      Parameters

      Returns DrawNodeOptions

      Las opciones de dibujo

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