Object3D

Это базовый класс для большинства объектов в Verge3D, предоставляющий набор свойств и методов для манипулирования объектами в трехмерном пространстве.

Обратите внимание, что его можно использовать для группировки объектов с помощью метода .add(object), который добавляет объект в качестве дочернего, однако для этого лучше использовать Group.

Конструктор

Object3D()

Конструктор не принимает никаких аргументов.

Свойства

.animations : AnimationClip

Массив с анимационными клипами объекта.

.castShadow : Boolean

Будет ли объект рендериться в карту теней. По умолчанию false.

.children : Object3D

Массив с дочерними объектами объекта. Информацию о ручном группировании объектов см. в Group.

.customDepthMaterial : Material

Пользовательский материал глубины, который будет использоваться при рендеринге на карту глубины. Может использоваться только в контексте сетки. При создании теней с помощью DirectionalLight или SpotLight, если вы (a) изменяете положение вершин в вершинном шейдере, (b) используете карту смещения, (c) используете альфа-карту с alphaTest или (d) используете прозрачную текстуру с alphaTest, вы должны указать пользовательский материал глубины (customDepthMaterial) для правильных теней. По умолчанию - undefined.

.customDistanceMaterial : Material

То же, что и customDepthMaterial, но используется с PointLight. По умолчанию - undefined.

.frustumCulled : Boolean

Если этот параметр установлен, каждый кадр проверяется, находится ли объект во фрустуме камеры, перед отрисовкой объекта. В противном случае объект будет отображаться каждый кадр, даже если он не виден. По умолчанию true.

.groupNames : Array

Массив, указывающий группы, к которым принадлежит данный объект. Используется для группировки/ссылки на коллекции объектов.

.id : Integer

readonly – Уникальный номер для данного экземпляра объекта.

.layers : Layers

Принадлежность объекта к слою. Объект виден, только если у него есть хотя бы один общий слой с используемой Camera. Это свойство также можно использовать для отсеивания нежелательных объектов в тестах пересечения лучей при использовании Raycaster.

.matrix : Matrix4

Матрица локального преобразования.

.matrixAutoUpdate : Boolean

Если этот параметр установлен, он вычисляет матрицу положения, (вращения или кватерниона) и масштаба каждый кадр, а также пересчитывает свойство matrixWorld. По умолчанию Object3D.DefaultMatrixAutoUpdate (true).

.matrixWorld : Matrix4

Глобальное преобразование объекта. Если у объекта Object3D нет родителя, то оно идентично локальному преобразованию .matrix.

.matrixWorldNeedsUpdate : Boolean

Когда это значение установлено, вычисляется matrixWorld в этом кадре и сбрасывается это свойство в false. По умолчанию false.

.modelViewMatrix : Matrix4

Этот параметр передается в шейдер и используется для расчета положения объекта.

.name : String

Необязательное имя объекта (не обязательно уникальное). По умолчанию это пустая строка.

.normalMatrix : Matrix3

Это значение передается в шейдер и используется для расчета освещения объекта. Это транспонирование обратной величины левой верхней подматрицы 3x3 матрицы modelViewMatrix этого объекта.

Причина создания этой специальной матрицы заключается в том, что простое использование матрицы modelViewMatrix может привести к неединичной длине нормалей (при масштабировании) или неперпендикулярному направлению (при неравномерном масштабировании).

С другой стороны, часть перевода матрицы modelViewMatrix не имеет значения для расчета нормалей. Поэтому достаточно матрицы Matrix3.

.onAfterRender : Function

Необязательный обратный вызов, который выполняется сразу после рендеринга Object3D. Эта функция вызывается со следующими параметрами: рендерер, сцена, камера, геометрия, материал, группа.

.onBeforeRender : Function

Необязательный обратный вызов, который выполняется непосредственно перед рендерингом Object3D. Эта функция вызывается со следующими параметрами: рендерер, сцена, камера, геометрия, материал, группа.

.parent : Object3D

Родитель объекта в scene graph. У объекта может быть не более одного родителя.

.position : Vector3

Vector3, представляющий локальную позицию объекта. По умолчанию (0, 0, 0)..

.quaternion : Quaternion

Локальное вращение объекта как Quaternion..

.receiveShadow : Boolean

Принимает ли материал тени. По умолчанию false..

.renderOrder : Number

Это значение позволяет переопределить порядок рендеринга объектов scene graph по умолчанию, хотя непрозрачные и прозрачные объекты остаются отсортированными независимо. Когда это свойство установлено для экземпляра Group, все объекты-потомки будут отсортированы и отрисованы вместе. Сортировка производится от низшего к высшему порядку рендеринга. Значение по умолчанию - 0.

.rotation : Euler

Локальное вращение объекта (см. Euler angles), в радианах.

.scale : Vector3

Локальный масштаб объекта. По умолчанию Vector3(1, 1, 1).

.up : Vector3

Это используется методом lookAt, например, для определения ориентации результата.
По умолчанию это Object3D.DefaultUp — то есть (0, 1, 0).

.userData : Object

Объект, который можно использовать для хранения пользовательских данных об объекте Object3D. Он не должен содержать ссылки на функции, так как они не будут клонироваться.

.uuid : String

UUID данного экземпляра объекта. Он присваивается автоматически, поэтому его не следует редактировать.

.visible : Boolean

Объект отображается, если true. По умолчанию true.

Статические Свойства

Статические свойства и методы определяются для каждого класса, а не для каждого экземпляра этого класса. Это означает, что изменение Object3D.DefaultUp или Object3D.DefaultMatrixAutoUpdate изменит значения up и matrixAutoUpdate для каждого экземпляра Object3D (или производных классов), созданный после внесения изменения (уже созданные Object3D не будут затронуты).

.DefaultUp : Vector3

Направление по умолчанию up для объектов, также используется как положение по умолчанию для DirectionalLight, HemisphereLight и Spotlight (которые создают свет, светящий сверху вниз).
По умолчанию имеет значение (0, 1, 0).

.DefaultMatrixAutoUpdate : Boolean

Настройка по умолчанию для matrixAutoUpdate для вновь созданных Object3D.

Методы

EventDispatcher methods are available on this class.

.add(object : Object3D, ...) → this

Добавляет object в качестве дочернего объекта данного объекта. Может быть добавлено произвольное количество объектов. Любой текущий родитель объекта, переданного здесь, будет удален, так как объект может иметь не более одного родителя.

Информацию о ручном группировании объектов см. в Group.

.applyMatrix4(matrix : Matrix4) → null

Применяет матричное преобразование к объекту и обновляет положение, поворот и масштаб объекта.

.applyQuaternion(quaternion : Quaternion) → this

Применяет к объекту вращение, представленное кватернионом.

.attach(object : Object3D) → this

Добавляет объект в качестве дочернего объекта, сохраняя преобразование мира объекта.

.clone(recursive : Boolean) → Object3D

recursive — если true, потомки объекта также клонируются. По умолчанию - true.

Возвращает клон этого объекта и, по желанию, всех потомков.

.copy(object : Object3D, recursive : Boolean) → this

recursive — если true, потомки объекта также копируются. По умолчанию - true.

Копирует заданный объект в этот объект. Примечание: слушатели событий и пользовательские обратные вызовы (.onAfterRender и .onBeforeRender) не копируются.

.getObjectById(id : Integer) → Object3D

id — Уникальный номер экземпляра объекта

Выполняет поиск объекта и его дочерних элементов, начиная с самого объекта, и возвращает первый с совпадающим id.
Обратите внимание, что идентификаторы присваиваются в хронологическом порядке: 1, 2, 3, ..., увеличиваясь на единицу для каждого нового объекта.

.getObjectByName(name : String) → Object3D

name — Строка для сопоставления с дочерним свойством Object3D.name.

Выполняет поиск объекта и его дочерних элементов, начиная с самого объекта, и возвращает первый с подходящим именем.
Обратите внимание, что для большинства объектов имя по умолчанию является пустой строкой. Вам придется задать его вручную, чтобы воспользоваться этим методом.

.getObjectByProperty(name : String, value : Float) → Object3D

name — имя свойства для поиска.
value — значение данного свойства.

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

.getWorldPosition(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает вектор, представляющий положение объекта в мировом пространстве.

.getWorldQuaternion(target : Quaternion) → Quaternion

target — результат будет скопирован в этот кватернион.

Возвращает кватернион, представляющий вращение объекта в мировом пространстве.

.getWorldScale(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает вектор масштабных коэффициентов, применяемых к объекту для каждой оси в мировом пространстве.

.getWorldDirection(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает вектор, представляющий направление положительной оси z объекта в мировом пространстве.

.localToWorld(vector : Vector3) → Vector3

vector - Вектор, представляющий позицию в локальном пространстве этого объекта.

Преобразует вектор из локального пространства этого объекта в мировое пространство.

.lookAt(vector : Vector3) → null
.lookAt(x : Float, y : Float, z : Float) → null

vector - Вектор, представляющий позицию в мировом пространстве.

Опционально, компоненты x, y и z положения в мировом пространстве..

Поворачивает объект лицом к точке в мировом пространстве.

Этот метод не поддерживает объекты с неоднородно масштабированными родителями.

.raycast(raycaster : Raycaster, intersects : Array) → Array

Абстрактный (пустой) метод для получения пересечений между брошенным лучом и данным объектом. Подклассы, такие как Mesh, Line и Points, реализуют этот метод, чтобы использовать отбрасывание лучей.

.remove(object : Object3D, ...) → this

Удаляет объект как дочерний объект данного объекта. Может быть удалено произвольное количество объектов.

.clear() → this

Удаляет все дочерние объекты.

.rotateOnAxis(axis : Vector3, angle : Float) → this

axis — Нормированный вектор в пространстве объектов.
angle — Угол в радианах.

Поворот объекта вдоль оси в пространстве объекта. Предполагается, что ось нормализована.

.rotateOnWorldAxis(axis : Vector3, angle : Float) → this

axis — Нормированный вектор в мировом пространстве.
angle — Угол в радианах.

Поворот объекта вдоль оси в мировом пространстве. Предполагается, что ось нормализована. Метод Предполагает отсутствие повернутого родителя.

.rotateX(rad : Float) → this

rad - угол поворота в радианах.

Поворачивает объект вокруг оси x в локальном пространстве.

.rotateY(rad : Float) → this

rad - угол поворота в радианах.

Поворачивает объект вокруг оси y в локальном пространстве.

.rotateZ(rad : Float) → this

rad - угол поворота в радианах.

Поворачивает объект вокруг оси z в локальном пространстве.

.setRotationFromAxisAngle(axis : Vector3, angle : Float) → null

axis — Нормированный вектор в пространстве объектов.
angle — угол в радианах

Вызывает setFromAxisAngle(axis, angle) на .quaternion.

.setRotationFromEuler(euler : Euler) → null

euler — Угол Эйлера, определяющий величину поворота.
Вызывает setRotationFromEuler(euler) на [страница:.кватернион].

.setRotationFromMatrix(m : Matrix4) → null

m — повернуть кватернион по компоненту вращения матрицы.
Вызывает setFromRotationMatrix(m) на .quaternion.

Обратите внимание, что это предполагает, что верхние 3x3 из m являются чистой матрицей вращения (т.е. немасштабированной).

.setRotationFromQuaternion(q : Quaternion) → null

q — нормализованный кватернион.

Скопируйте заданный кватернион в .quaternion.

.translateOnAxis(axis : Vector3, distance : Float) → this

axis — Нормализованный вектор в пространстве объекта.
distance — Расстояние для перевода.

Перевести объект на расстояние вдоль оси в пространстве объекта. Предполагается, что ось нормализована.

.translateX(distance : Float) → this

Перемещает объект вдоль оси x в пространстве объекта на единицы distance.

.translateY(distance : Float) → this

Переводит объект вдоль оси y в пространстве объекта на единицы distance.

.translateZ(distance : Float) → this

Перемещает объект вдоль оси z в пространстве объекта на единицы distance.

.traverse(callback : Function) → null

callback - Функция, первым аргументом которой является объект object3D.

Выполняет обратный вызов для этого объекта и всех потомков.
Примечание: Не рекомендуется изменять граф сцены внутри обратного вызова.

.traverseVisible(callback : Function) → null

callback - Функция, первым аргументом которой является объект object3D.

Аналогично traverse, но обратный вызов будет выполняться только для видимых объектов. Потомки невидимых объектов не обходятся.
Примечание: Не рекомендуется изменять граф сцены внутри обратного вызова.

.traverseAncestors(callback : Function) → null

callback - Функция, первым аргументом которой является объект object3D.

Выполняет обратный вызов для всех предков.
Примечание: Не рекомендуется изменять граф сцены внутри обратного вызова.

.updateMatrix() → null

Обновляет локальное преобразование.

.updateMatrixWorld(force : Boolean) → null

Обновляет глобальное преобразование объекта и его потомков.

.updateWorldMatrix(updateParents : Boolean, updateChildren : Boolean) → null

updateParents - рекурсивно обновляет глобальное преобразование предков.
updateChildren - рекурсивно обновляет глобальное преобразование потомков.

Обновляет глобальное преобразование объекта.

.worldToLocal(vector : Vector3) → Vector3

vector - Вектор, представляющий положение в мировом пространстве.

Преобразует вектор из мирового пространства в локальное пространство этого объекта.

Исходный файл

О том как получить исходный код этого модуля читайте тут.