Bitbybit Docs
    Preparing search index...

    Class BabylonMesh

    Работа с мешами, уже находящимися в сцене BabylonJS, объектами, которые возвращает draw.drawAnyAsync: перемещение, поворот и масштабирование, показ и скрытие, назначение родителя, флаги выбора и коллизий, имена и id, клонирование и создание экземпляров для множества копий, а также чтение их треугольников обратно. Повороты задаются в градусах; позиции и расстояния в единицах сцены.

    Index

    Constructors

    edit

    • Соединяет несколько мешей в один новый меш, который рисуется быстрее, чем много отдельных.

      Источники удаляются, когда disposeSource равно true; установите allow32BitsIndices, когда у мешей вместе больше 65 тысяч вершин, и используйте параметры подмешей, чтобы сохранить отдельные материалы.

      Parameters

      • inputs: MergeMeshesDto

        Меши и параметры объединения

      Returns Mesh

      Объединенный меш

      const merged = bitbybit.babylon.mesh.mergeMeshes({ arrayOfMeshes: [meshA, meshB], disposeSource: true, allow32BitsIndices: true, subdivideWithSubMeshes: false, multiMultiMaterials: false });
      
    • Дает каждому треугольнику меша собственные вершины и нормали, так что грани показываются как плоские фасеты, а не сглаживаются через ребра; меш изменяется на месте и возвращается.

      Parameters

      Returns Mesh

      Тот же меш с плоским затенением

      const faceted = bitbybit.babylon.mesh.convertToFlatShadedMesh({ babylonMesh: mesh });
      
    • Делает копию меша, с его дочерними, которая разделяет геометрию оригинала и размещается в том же месте; копия отбрасывает и принимает тени, как оригинал.

      Parameters

      • inputs: BabylonMeshDto

        Меш, который нужно скопировать

      Returns Mesh

      Копия

      const copy = bitbybit.babylon.mesh.clone({ babylonMesh: mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: copy, position: [10, 0, 0] });
    • Делает по одной копии меша в каждой заданной позиции, в том же порядке; копии разделяют геометрию оригинала.

      Parameters

      Returns Mesh[]

      По одной копии на каждую позицию

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

    get

    • Читает узел, к которому привязан меш, то есть с чем он перемещается; у меша верхнего уровня его нет.

      Parameters

      Returns Node

      Родительский узел

    • Читает, участвует ли меш в проверке коллизий.

      Parameters

      Returns boolean

      true, если для меша проверяются коллизии

    • Задает, отвечает ли меш на выбор указателем, а также его дочерние, когда includeChildren равно true; невыбираемый меш пропускается кликами и выбирающими лучами.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPickable({ babylonMesh: mesh, pickable: true, includeChildren: true });
      
    • Читает, можно ли выбрать меш указателем.

      Parameters

      Returns boolean

      true, если меш реагирует на выбор указателем

    • Находит каждый меш в сцене, имя которого содержит заданный текст, с учетом регистра, в порядке сцены.

      Parameters

      Returns AbstractMesh[]

      Подходящие меши

      const wheels = bitbybit.babylon.mesh.getMeshesWhereNameContains({ name: "wheel" });
      
    • Перечисляет меши, привязанные под мешем: всех потомков, или только прямых дочерних, когда directDescendantsOnly равно true.

      Parameters

      Returns AbstractMesh[]

      Дочерние меши

      const parts = bitbybit.babylon.mesh.getChildMeshes({ babylonMesh: model, directDescendantsOnly: false });
      
    • Находит каждый меш в сцене ровно с заданным id; id не обязаны быть уникальными, так что совпасть могут несколько.

      Parameters

      Returns AbstractMesh[]

      Меши с этим id

      const meshes = bitbybit.babylon.mesh.getMeshesOfId({ id: "wheel" });
      
    • Находит первый меш в сцене ровно с заданным id; используйте getMeshesOfId, когда его разделяют несколько.

      Parameters

      Returns AbstractMesh

      Первый меш с этим id

      const mesh = bitbybit.babylon.mesh.getMeshOfId({ id: "wheel" });
      
    • Находит меш с заданным уникальным id, числом, которое сцена присваивает каждому мешу один раз, как его читает getUniqueId.

      Parameters

      Returns AbstractMesh

      Меш с этим уникальным id

      const id = bitbybit.babylon.mesh.getUniqueId({ babylonMesh: mesh });
      const same = bitbybit.babylon.mesh.getMeshOfUniqueId({ uniqueId: id });
    • Читает id меша, метку, заданную setId или загрузчиком, который его создал.

      Parameters

      Returns string

      id

    • Читает уникальный id меша, число, которое сцена дает каждому мешу один раз и никогда не использует повторно.

      Parameters

      Returns number

      Число уникального id

    • Читает треугольники меша как списки из трех точек в собственных координатах меша, в форме, которую принимают jscad.shapes.fromPolygonPoints и подобные построители. Меш должен состоять из треугольников.

      Parameters

      Returns Point3[][]

      Треугольники как списки из трех точек

      const triangles = bitbybit.babylon.mesh.getVerticesAsPolygonPoints({ babylonMesh: mesh });
      
    • Читает имя меша, заданное setName или тем, что его создало.

      Parameters

      Returns string

      Имя

    • Читает материал меша, описание поверхности, с которым рисуются его грани.

      Parameters

      Returns Material

      Материал

    • Читает позицию меша относительно его родителя, как точку.

      Parameters

      Returns Point3

      Позиция как точка

    • Читает позицию меша в мировых координатах, с примененным преобразованием каждого родителя.

      Parameters

      Returns Point3

      Мировая позиция как точка

    • Читает поворот меша вокруг X, Y и Z, в радианах, как его хранит свойство rotation.

      Parameters

      Returns Point3

      Углы поворота в радианах

    • Читает коэффициенты масштаба меша вдоль X, Y и Z; 1 - без масштабирования.

      Parameters

      Returns Point3

      Коэффициенты масштаба

    instance

    • Создает размещенный экземпляр меша, как createMeshInstanceAndTransform, не возвращая его; для скриптов, которым нужно только, чтобы копия появилась.

      Parameters

      Returns void

      bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Создает экземпляр меша, легковесную копию, которая разделяет его геометрию и дешево рисуется, и размещает его в заданной позиции, с поворотом в градусах и масштабом.

      Меш с дочерними получает по одному экземпляру на дочерний, собранных под новым контейнером; оригинал скрывается.

      Parameters

      Returns Mesh

      Контейнер, содержащий экземпляры

      const instance = bitbybit.babylon.mesh.createMeshInstanceAndTransform({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • Создает экземпляр меша, легковесную копию, которая разделяет его геометрию и дешево рисуется, когда нужно много одинаковых, размещенную там, где оригинал.

      Меш с дочерними получает по одному экземпляру на дочерний, собранных под новым контейнером.

      Parameters

      Returns Mesh

      Экземпляр или контейнер, содержащий дочерние экземпляры

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

    intersects

    • Сообщает, перекрываются ли два меша, судя по их ограничивающим боксам: выровненным по осям по умолчанию, или боксам, следующим повороту каждого меша, когда precise равно true; includeDescendants проверяет и их дочерние.

      Parameters

      Returns boolean

      true, если меши перекрываются

      const touching = bitbybit.babylon.mesh.intersectsMesh({ babylonMesh: meshA, babylonMesh2: meshB, precise: true, includeDescendants: false });
      
    • Сообщает, лежит ли точка внутри ограничивающего бокса меша.

      Parameters

      Returns boolean

      true, если точка находится внутри границ меша

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

    memory

    • Удаляет меш из сцены и освобождает его ресурсы GPU; после этого меш использовать нельзя. Если меш не задан, ничего не происходит.

      Parameters

      • inputs: BabylonMeshDto

        Меш, который нужно удалить

      Returns void

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

    move

    • Перемещает меш вдоль его собственного направления вперед, локальной оси Z, на distance единиц сцены; повернутый меш движется туда, куда смотрит.

      Parameters

      Returns void

      bitbybit.babylon.mesh.moveForward({ babylonMesh: mesh, distance: 5 });
      
    • Перемещает меш против его собственного направления вперед, локальной оси Z, на distance единиц сцены.

      Parameters

      Returns void

    • Перемещает меш вдоль его собственного направления вверх, локальной оси Y, на distance единиц сцены.

      Parameters

      Returns void

    • Перемещает меш против его собственного направления вверх, локальной оси Y, на distance единиц сцены.

      Parameters

      Returns void

    • Перемещает меш вдоль его собственного направления вправо, локальной оси X, на distance единиц сцены.

      Parameters

      Returns void

    • Перемещает меш против его собственного направления вправо, локальной оси X, на distance единиц сцены.

      Parameters

      Returns void

    • Поворачивает меш вокруг его собственной оси Y на rotate градусов, поверх его текущего поворота, как автомобиль поворачивает влево или вправо.

      Parameters

      Returns void

      bitbybit.babylon.mesh.yaw({ babylonMesh: mesh, rotate: 45 });
      
    • Поворачивает меш вокруг его собственной оси X на rotate градусов, поверх его текущего поворота, как нос задирается вверх или опускается вниз.

      Parameters

      Returns void

    • Поворачивает меш вокруг его собственной оси Z на rotate градусов, поверх его текущего поворота, как крыло накреняется.

      Parameters

      Returns void

    • Поворачивает меш на angle градусов вокруг оси, проходящей через position, так что меш обращается вокруг этой точки, а не вращается на месте.

      Parameters

      Returns void

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

    set

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

      Parameters

      • inputs: SetParentDto

        Меш и меш, который станет его родителем

      Returns void

      bitbybit.babylon.mesh.setParent({ babylonMesh: wheel, parentMesh: car });
      
    • Включает или выключает проверку коллизий для меша, и его дочерних, когда includeChildren равно true, так что камера или другой коллайдер с включенными коллизиями не может пройти сквозь него.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setCheckCollisions({ babylonMesh: walls, checkCollisions: true, includeChildren: true });
      
    • Позволяет мешу, и его дочерним, когда includeChildren равно true, реагировать на простое движение указателя над ним, что по умолчанию выключено, так как стоит выборки при каждом движении указателя.

      Parameters

      Returns void

      bitbybit.babylon.mesh.enablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Прекращает реакцию меша, и его дочерних, когда includeChildren равно true, на движения указателя, возвращая значение по умолчанию.

      Parameters

      Returns void

      bitbybit.babylon.mesh.disablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • Задает id меша, метку, по которой его находит getMeshOfId и которая не обязана быть уникальной.

      Parameters

      Returns void

    • Задает имя меша, а также его дочерних, когда includeChildren равно true; имена - это то, что ищет getMeshesWhereNameContains.

      Parameters

      Returns void

    • Дает мешу материал, а также его дочерним, когда includeChildren равно true; материал определяет цвет, блеск и прозрачность его поверхности.

      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 });
    • Размещает меш, или его экземпляр, в точке относительно его родителя.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPosition({ babylonMesh: mesh, position: [0, 5, 0] });
      
    • Задает поворот меша, или его экземпляра, как углы в градусах вокруг X, Y и Z, заменяя его текущий поворот.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setRotation({ babylonMesh: mesh, rotation: [0, 90, 0] });
      
    • Задает коэффициенты масштаба меша, или его экземпляра, вдоль X, Y и Z, заменяя его текущий масштаб; 1 - без масштабирования.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setScale({ babylonMesh: mesh, scale: [2, 1, 1] });
      
    • Умножает текущий масштаб меша, или его экземпляра, на один коэффициент по всем осям, так что 2 удваивает любой его размер.

      Parameters

      Returns void

    updates

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

      rotation здесь в радианах. colours - один цвет в формате hex, или список с одной записью на дочерний меш, или на точку или линию такого рисунка; любой другой список использует свою первую запись.

      Parameters

      • inputs: UpdateDrawnBabylonMesh

        Нарисованный меш, его новые позиция, поворот, масштаб и цвета

      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

    • Задает, насколько виден меш, от 0 для полностью прозрачного до 1 для полностью показанного, промежуточные значения делают его полупрозрачным; includeChildren применяет то же значение к его дочерним мешам.

      Parameters

      • inputs: SetMeshVisibilityDto

        Меш, видимость от 0 до 1 и применять ли к дочерним

      Returns void

      bitbybit.babylon.mesh.setVisibility({ babylonMesh: mesh, visibility: 0.5, includeChildren: true });
      
    • Скрывает меш, не удаляя его из сцены, а также его дочерние меши, когда includeChildren равно true; show возвращает его.

      Parameters

      • inputs: ShowHideMeshDto

        Меш и применять ли к его дочерним

      Returns void

      bitbybit.babylon.mesh.hide({ babylonMesh: mesh, includeChildren: true });
      
    • Показывает меш, который hide или скрытая отрисовка сделали невидимым, а также его дочерние меши, когда includeChildren равно true.

      Parameters

      • inputs: ShowHideMeshDto

        Меш и применять ли к его дочерним

      Returns void

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