Bitbybit Docs
    Preparing search index...

    Class Draw

    Отрисовка чего угодно в сцену: формы ядер, точки, линии, полилинии, кривые, меши и теги проходят через drawAnyAsync, который выбирает подходящий рендерер для сущности и возвращает нарисованный объект. Методы options строят параметры отрисовки со значениями по умолчанию для каждого вида сущности, createPBRMaterial и createTexture создают материалы для слотов граней, а нарисованный объект можно перерисовать на месте, передав его обратно.

    Hierarchy (View Summary)

    Index

    Constructors

    • Returns Bit.Draw

    draw async

    • Рисует любую сущность в сцене, как drawAnyAsync, не возвращая нарисованный объект; для последнего шага скрипта, которому нужно только, чтобы результат появился.

      Parameters

      • inputs: DrawAny

        Сущность для отрисовки и необязательные параметры отрисовки

      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 });
    • Рисует любую сущность, которую производит библиотека, в сцене и возвращает нарисованный объект: формы ядер OCCT, JSCAD и Manifold, точки, линии, полилинии, кривые, меши, теги и узлы.

      Параметры подбираются под сущность, со значениями по умолчанию, когда они не заданы; передайте предыдущий результат обратно в слот обновления, чтобы перерисовать на месте.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        Сущность для отрисовки, необязательные параметры отрисовки и предыдущий результат при обновлении

      Returns Promise<Drawn<E, Mesh>>

      То, что дает отрисовка сущности: объект сцены для геометрии, тег или теги для тега, триада осей для узла; undefined для пустого списка

      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

    • Рисует сущность, не требующую работы ядра, как drawAny, не возвращая нарисованный объект; подходят точки, линии, полилинии и теги, формы ядер - нет.

      Parameters

      • inputs: DrawAny

        Сущность для отрисовки и необязательные параметры отрисовки

      Returns void

      bitbybit.draw.drawAnyNoReturn({ entity: [[0, 0, 0], [5, 5, 5], [10, 0, 0]] });
      
    • Сразу рисует в сцене сущность, не требующую работы ядра, и возвращает нарисованный объект: точки, линии, полилинии, теги и узлы.

      Формы ядер OCCT, JSCAD и Manifold должны идти через drawAnyAsync, который ждет, пока ядро построит их меш.

      Type Parameters

      • E extends any

      Parameters

      • inputs: DrawAny<E>

        Сущность для отрисовки, необязательные параметры отрисовки и предыдущий результат при обновлении

      Returns Drawn<E, Mesh>

      То, что дает отрисовка сущности: объект сцены для геометрии, тег или теги для тега, триада осей для узла; undefined для пустого списка

      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

    • Рисует сетку на плоскости земли, как drawGridMesh, не возвращая меш.

      Parameters

      • inputs: SceneDrawGridMeshDto

        Размер, шаг линий, цвета и непрозрачность сетки

      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" });
      
    • Рисует сетку на плоскости земли, плоскости XZ через начало координат, чтобы дать ощущение масштаба и ориентации; по умолчанию каждая десятая линия рисуется толще.

      Parameters

      • inputs: SceneDrawGridMeshDto

        Размер, шаг линий, цвета и непрозрачность сетки

      Returns Mesh

      Меш сетки

      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

    • Создает текстуру-изображение из URL для слотов текстур createPBRMaterial, с повторением, смещением, поворотом и фильтрацией, которые означают одно и то же в каждом рендерере.

      Parameters

      • inputs: GenericTextureDto

        URL изображения и параметры повторения, смещения, поворота, отражения и выборки

      Returns Texture

      Текстура движка

      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 });
      
    • Создает физически корректный материал из настроек, которые означают одно и то же в каждом рендерере: базовый цвет, металличность и шероховатость, непрозрачность, свечение, слоты текстур и параметры альфа-канала и сторон; поместите его в faceMaterial параметров отрисовки.

      Parameters

      • inputs: GenericPBRMaterialDto

        Имя, цвета, значения металличности и шероховатости, непрозрачность, текстуры и параметры рендеринга

      Returns PBRMetallicRoughnessMaterial

      Материал движка

      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

    • Строит параметры отрисовки для точек, линий, полилиний, кривых, поверхностей и мешей JSCAD: цвета, размер, непрозрачность, двусторонний рендеринг и стрелки на линиях, со значениями по умолчанию для того, что опущено.

      Parameters

      Returns DrawBasicGeometryOptions

      Параметры отрисовки

      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 });
      
    • Строит полные параметры отрисовки для форм OCCT: точность построения меша, цвета и размеры граней, ребер и вершин, метки индексов, стрелки на ребрах, двусторонний рендеринг и кэш триангуляции, со значениями по умолчанию для того, что опущено.

      Parameters

      Returns DrawOcctShapeOptions

      Параметры отрисовки

      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 });
      
    • Строит самые используемые параметры отрисовки для форм OCCT, точность, цвета граней и ребер и двусторонний рендеринг, со значениями по умолчанию для того, что опущено.

      Parameters

      Returns DrawOcctShapeSimpleOptions

      Параметры отрисовки

      const options = bitbybit.draw.optionsOcctShapeSimple({ precision: 0.01, drawFaces: true, faceColour: "#ff0000", drawEdges: true, edgeColour: "#ffffff", edgeWidth: 2, drawTwoSided: true, backFaceColour: "#0000ff", backFaceOpacity: 1 });
      
    • Строит параметры отрисовки для форм OCCT, грани которых используют полный материал движка, как его делает createPBRMaterial, плюс точность и стиль ребер.

      Parameters

      Returns DrawOcctShapeMaterialOptions

      Параметры отрисовки

      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 });
    • Строит параметры отрисовки для тел и сечений Manifold: цвет граней или полный материал движка, стиль линий сечений, нормали и двусторонний рендеринг.

      Parameters

      Returns DrawManifoldOrCrossSectionOptions

      Параметры отрисовки

      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 });
    • Строит параметры отрисовки для узлов преобразования, которые рисуются как триада цветных линий осей заданной длины.

      Parameters

      • inputs: DrawNodeOptions

        Параметры, от которых отталкиваться

      Returns DrawNodeOptions

      Параметры отрисовки

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