Bitbybit Docs
    Preparing search index...

    Class Draw

    Menggambar apa pun ke dalam scene: bentuk kernel, titik, garis, polyline, kurva, mesh dan tag semuanya melalui drawAnyAsync, yang memilih renderer yang tepat untuk entitas tersebut dan mengembalikan objek yang digambar. Metode-metode options membangun opsi penggambaran dengan nilai bawaan untuk setiap jenis entitas, createPBRMaterial dan createTexture membuat material untuk slot muka, dan objek yang telah digambar dapat digambar ulang di tempat dengan mengembalikannya sebagai masukan.

    Hierarchy (View Summary)

    Index

    Constructors

    • Returns Bit.Draw

    draw async

    • Menggambar entitas apa pun ke dalam scene, seperti drawAnyAsync, tanpa mengembalikan objek yang digambar; untuk langkah terakhir skrip yang hanya perlu hasilnya tampil.

      Parameters

      • inputs: DrawAny

        Entitas yang akan digambar dan opsi penggambaran opsional

      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 });
    • Menggambar entitas apa pun yang dihasilkan pustaka ke dalam scene dan mengembalikan objek yang digambar: bentuk kernel dari OCCT, JSCAD dan Manifold, titik, garis, polyline, kurva, mesh, tag dan node.

      Opsi dicocokkan dengan entitasnya, dengan default jika tidak ada yang diberikan; berikan kembali hasil sebelumnya di slot pembaruan untuk menggambar ulang di tempat.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        Entitas yang akan digambar, opsi penggambaran opsional dan hasil sebelumnya saat memperbarui

      Returns Promise<Drawn<E, Mesh>>

      Apa yang dihasilkan dari menggambar entitas: objek scene untuk geometri, tag atau tag-tag untuk sebuah tag, triad sumbu untuk sebuah node; undefined untuk daftar kosong

      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

    • Menggambar entitas yang tidak memerlukan kerja kernel, seperti drawAny, tanpa mengembalikan objek yang digambar; titik, garis, polyline dan tag memenuhi syarat, bentuk kernel tidak.

      Parameters

      • inputs: DrawAny

        Entitas yang akan digambar dan opsi penggambaran opsional

      Returns void

      bitbybit.draw.drawAnyNoReturn({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]] });
      
    • Menggambar entitas yang tidak memerlukan kerja kernel ke dalam scene secara langsung dan mengembalikan objek yang digambar: titik, garis, polyline, tag dan node.

      Bentuk kernel dari OCCT, JSCAD dan Manifold harus melalui drawAnyAsync, yang menunggu kernel mem-mesh-nya.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        Entitas yang akan digambar, opsi penggambaran opsional dan hasil sebelumnya saat memperbarui

      Returns Drawn<E, Mesh>

      Apa yang dihasilkan dari menggambar entitas: objek scene untuk geometri, tag atau tag-tag untuk sebuah tag, triad sumbu untuk sebuah node; undefined untuk daftar kosong

      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

    • Menggambar grid pada bidang tanah, seperti drawGridMesh, tanpa mengembalikan mesh-nya.

      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" });
      
    • Menggambar grid pada bidang tanah, bidang XZ yang melewati titik asal, untuk memberi kesan skala dan orientasi; setiap garis kesepuluh digambar lebih tebal secara default.

      Parameters

      Returns Mesh

      Mesh grid

      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

    • Membuat tekstur gambar dari URL untuk slot-slot tekstur createPBRMaterial, dengan pengubinan, offset, rotasi dan penyaringan yang berarti sama di setiap renderer.

      Parameters

      • inputs: GenericTextureDto

        URL gambar serta opsi pengubinan, offset, rotasi, pembalikan dan sampling

      Returns Texture

      Tekstur milik engine

      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 });
      
    • Membuat material berbasis fisika dari pengaturan yang berarti sama di setiap renderer: warna dasar, metalik dan kekasaran, opasitas, cahaya emisif, slot-slot tekstur serta opsi alfa dan sisi; letakkan di faceMaterial pada opsi penggambaran.

      Parameters

      • inputs: GenericPBRMaterialDto

        Nama, warna, nilai metalik dan kekasaran, opasitas, tekstur dan opsi rendering

      Returns PBRMetallicRoughnessMaterial

      Material milik engine

      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

    • Membangun opsi penggambaran untuk titik, garis, polyline, kurva, permukaan dan mesh JSCAD: warna, ukuran, opasitas, rendering dua sisi dan kepala panah pada garis, dengan default untuk yang dikosongkan.

      Parameters

      Returns DrawBasicGeometryOptions

      Opsi penggambaran

      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 });
      
    • Membangun opsi penggambaran lengkap untuk bentuk OCCT: presisi meshing, warna dan ukuran muka, tepi dan verteks, label indeks, panah pada tepi, rendering dua sisi dan cache triangulasi, dengan default untuk yang dikosongkan.

      Parameters

      Returns DrawOcctShapeOptions

      Opsi penggambaran

      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 });
      
    • Membangun opsi penggambaran yang paling sering dipakai untuk bentuk OCCT, yaitu presisi, warna muka dan tepi serta rendering dua sisi, dengan default untuk yang dikosongkan.

      Parameters

      Returns DrawOcctShapeSimpleOptions

      Opsi penggambaran

      const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      
    • Membangun opsi penggambaran untuk bentuk OCCT yang muka-mukanya memakai material engine penuh, sebagaimana dibuat createPBRMaterial, ditambah presisi dan gaya tepi.

      Parameters

      Returns DrawOcctShapeMaterialOptions

      Opsi penggambaran

      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 });
    • Membangun opsi penggambaran untuk solid dan penampang Manifold: warna muka atau material engine penuh, gaya garis penampang, normal dan rendering dua sisi.

      Parameters

      Returns DrawManifoldOrCrossSectionOptions

      Opsi penggambaran

      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 });
    • Membangun opsi penggambaran untuk node transformasi, yang digambar sebagai triad garis sumbu berwarna dengan panjang tertentu.

      Parameters

      Returns DrawNodeOptions

      Opsi penggambaran

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