Spaces:
Running
Running
| import { Vector3 } from './../math/Vector3'; | |
| import { Euler } from './../math/Euler'; | |
| import { Quaternion } from './../math/Quaternion'; | |
| import { Matrix4 } from './../math/Matrix4'; | |
| import { Matrix3 } from './../math/Matrix3'; | |
| import { Layers } from './Layers'; | |
| import { WebGLRenderer } from './../renderers/WebGLRenderer'; | |
| import { Scene } from './../scenes/Scene'; | |
| import { Camera } from './../cameras/Camera'; | |
| import { Material } from './../materials/Material'; | |
| import { Group } from './../objects/Group'; | |
| import { Intersection, Raycaster } from './Raycaster'; | |
| import { EventDispatcher, BaseEvent, Event } from './EventDispatcher'; | |
| import { BufferGeometry } from './BufferGeometry'; | |
| import { AnimationClip } from '../animation/AnimationClip'; | |
| /** | |
| * Base class for scene graph objects | |
| */ | |
| export class Object3D<E extends BaseEvent = Event> extends EventDispatcher<E> { | |
| constructor(); | |
| /** | |
| * Unique number of this object instance. | |
| */ | |
| id: number; | |
| uuid: string; | |
| /** | |
| * Optional name of the object (doesn't need to be unique). | |
| * @default '' | |
| */ | |
| name: string; | |
| /** | |
| * @default 'Object3D' | |
| */ | |
| type: string; | |
| /** | |
| * Object's parent in the scene graph. | |
| * @default null | |
| */ | |
| parent: Object3D | null; | |
| /** | |
| * Array with object's children. | |
| * @default [] | |
| */ | |
| children: Object3D[]; | |
| /** | |
| * Up direction. | |
| * @default THREE.Object3D.DefaultUp.clone() | |
| */ | |
| up: Vector3; | |
| /** | |
| * Object's local position. | |
| * @default new THREE.Vector3() | |
| */ | |
| readonly position: Vector3; | |
| /** | |
| * Object's local rotation (Euler angles), in radians. | |
| * @default new THREE.Euler() | |
| */ | |
| readonly rotation: Euler; | |
| /** | |
| * Object's local rotation as a Quaternion. | |
| * @default new THREE.Quaternion() | |
| */ | |
| readonly quaternion: Quaternion; | |
| /** | |
| * Object's local scale. | |
| * @default new THREE.Vector3() | |
| */ | |
| readonly scale: Vector3; | |
| /** | |
| * @default new THREE.Matrix4() | |
| */ | |
| readonly modelViewMatrix: Matrix4; | |
| /** | |
| * @default new THREE.Matrix3() | |
| */ | |
| readonly normalMatrix: Matrix3; | |
| /** | |
| * Local transform. | |
| * @default new THREE.Matrix4() | |
| */ | |
| matrix: Matrix4; | |
| /** | |
| * The global transform of the object. If the Object3d has no parent, then it's identical to the local transform. | |
| * @default new THREE.Matrix4() | |
| */ | |
| matrixWorld: Matrix4; | |
| /** | |
| * When this is set, it calculates the matrix of position, (rotation or quaternion) and scale every frame and also | |
| * recalculates the matrixWorld property. | |
| * @default THREE.Object3D.DefaultMatrixAutoUpdate | |
| */ | |
| matrixAutoUpdate: boolean; | |
| /** | |
| * When this is set, it calculates the matrixWorld in that frame and resets this property to false. | |
| * @default false | |
| */ | |
| matrixWorldNeedsUpdate: boolean; | |
| /** | |
| * @default new THREE.Layers() | |
| */ | |
| layers: Layers; | |
| /** | |
| * Object gets rendered if true. | |
| * @default true | |
| */ | |
| visible: boolean; | |
| /** | |
| * Gets rendered into shadow map. | |
| * @default false | |
| */ | |
| castShadow: boolean; | |
| /** | |
| * Material gets baked in shadow receiving. | |
| * @default false | |
| */ | |
| receiveShadow: boolean; | |
| /** | |
| * When this is set, it checks every frame if the object is in the frustum of the camera before rendering the object. | |
| * If set to false the object gets rendered every frame even if it is not in the frustum of the camera. | |
| * @default true | |
| */ | |
| frustumCulled: boolean; | |
| /** | |
| * Overrides the default rendering order of scene graph objects, from lowest to highest renderOrder. | |
| * Opaque and transparent objects remain sorted independently though. | |
| * When this property is set for an instance of Group, all descendants objects will be sorted and rendered together. | |
| * @default 0 | |
| */ | |
| renderOrder: number; | |
| /** | |
| * Array with animation clips. | |
| * @default [] | |
| */ | |
| animations: AnimationClip[]; | |
| /** | |
| * An object that can be used to store custom data about the Object3d. It should not hold references to functions as these will not be cloned. | |
| * @default {} | |
| */ | |
| userData: { [key: string]: any }; | |
| /** | |
| * Custom depth material to be used when rendering to the depth map. Can only be used in context of meshes. | |
| * When shadow-casting with a DirectionalLight or SpotLight, if you are (a) modifying vertex positions in | |
| * the vertex shader, (b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a | |
| * transparent texture with alphaTest, you must specify a customDepthMaterial for proper shadows. | |
| */ | |
| customDepthMaterial: Material; | |
| /** | |
| * Same as customDepthMaterial, but used with PointLight. | |
| */ | |
| customDistanceMaterial: Material; | |
| /** | |
| * Used to check whether this or derived classes are Object3Ds. Default is true. | |
| * You should not change this, as it is used internally for optimisation. | |
| */ | |
| readonly isObject3D: true; | |
| /** | |
| * Calls before rendering object | |
| */ | |
| onBeforeRender: (renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, material: Material, group: Group) => void; | |
| /** | |
| * Calls after rendering object | |
| */ | |
| onAfterRender: (renderer: WebGLRenderer, scene: Scene, camera: Camera, geometry: BufferGeometry, material: Material, group: Group) => void; | |
| static DefaultUp: Vector3; | |
| static DefaultMatrixAutoUpdate: boolean; | |
| /** | |
| * Applies the matrix transform to the object and updates the object's position, rotation and scale. | |
| */ | |
| applyMatrix4(matrix: Matrix4): void; | |
| /** | |
| * Applies the rotation represented by the quaternion to the object. | |
| */ | |
| applyQuaternion(quaternion: Quaternion): this; | |
| /** | |
| * axis -- A normalized vector in object space. | |
| * angle -- angle in radians | |
| * @param axis A normalized vector in object space. | |
| * @param angle angle in radians | |
| */ | |
| setRotationFromAxisAngle(axis: Vector3, angle: number): void; | |
| /** | |
| * Calls setRotationFromEuler(euler) on the .quaternion. | |
| * @param euler Euler angle specifying rotation amount. | |
| */ | |
| setRotationFromEuler(euler: Euler): void; | |
| /** | |
| * Calls setFromRotationMatrix(m) on the .quaternion. | |
| * | |
| * Note that this assumes that the upper 3x3 of m is a pure rotation matrix (i.e, unscaled). | |
| * @param m rotate the quaternion by the rotation component of the matrix. | |
| */ | |
| setRotationFromMatrix(m: Matrix4): void; | |
| /** | |
| * Copy the given quaternion into .quaternion. | |
| * @param q normalized Quaternion | |
| */ | |
| setRotationFromQuaternion(q: Quaternion): void; | |
| /** | |
| * Rotate an object along an axis in object space. The axis is assumed to be normalized. | |
| * @param axis A normalized vector in object space. | |
| * @param angle The angle in radians. | |
| */ | |
| rotateOnAxis(axis: Vector3, angle: number): this; | |
| /** | |
| * Rotate an object along an axis in world space. The axis is assumed to be normalized. Method Assumes no rotated parent. | |
| * @param axis A normalized vector in object space. | |
| * @param angle The angle in radians. | |
| */ | |
| rotateOnWorldAxis(axis: Vector3, angle: number): this; | |
| /** | |
| * Rotates the object around x axis in local space. | |
| * @param angle the angle to rotate in radians. | |
| */ | |
| rotateX(angle: number): this; | |
| /** | |
| * Rotates the object around y axis in local space. | |
| * @param angle the angle to rotate in radians. | |
| */ | |
| rotateY(angle: number): this; | |
| /** | |
| * Rotates the object around z axis in local space. | |
| * @param angle the angle to rotate in radians. | |
| */ | |
| rotateZ(angle: number): this; | |
| /** | |
| * Translate an object by distance along an axis in object space. The axis is assumed to be normalized. | |
| * @param axis A normalized vector in object space. | |
| * @param distance The distance to translate. | |
| */ | |
| translateOnAxis(axis: Vector3, distance: number): this; | |
| /** | |
| * Translates object along x axis by distance. | |
| * @param distance Distance. | |
| */ | |
| translateX(distance: number): this; | |
| /** | |
| * Translates object along y axis by distance. | |
| * @param distance Distance. | |
| */ | |
| translateY(distance: number): this; | |
| /** | |
| * Translates object along z axis by distance. | |
| * @param distance Distance. | |
| */ | |
| translateZ(distance: number): this; | |
| /** | |
| * Updates the vector from local space to world space. | |
| * @param vector A local vector. | |
| */ | |
| localToWorld(vector: Vector3): Vector3; | |
| /** | |
| * Updates the vector from world space to local space. | |
| * @param vector A world vector. | |
| */ | |
| worldToLocal(vector: Vector3): Vector3; | |
| /** | |
| * Optionally, the x, y and z components of the world space position. | |
| * Rotates the object to face a point in world space. | |
| * This method does not support objects having non-uniformly-scaled parent(s). | |
| * @param vector A world vector to look at. | |
| */ | |
| lookAt(vector: Vector3 | number, y?: number, z?: number): void; | |
| /** | |
| * Adds object as child of this object. | |
| */ | |
| add(...object: Object3D[]): this; | |
| /** | |
| * Removes object as child of this object. | |
| */ | |
| remove(...object: Object3D[]): this; | |
| /** | |
| * Removes this object from its current parent. | |
| */ | |
| removeFromParent(): this; | |
| /** | |
| * Removes all child objects. | |
| */ | |
| clear(): this; | |
| /** | |
| * Adds object as a child of this, while maintaining the object's world transform. | |
| */ | |
| attach(object: Object3D): this; | |
| /** | |
| * Searches through the object's children and returns the first with a matching id. | |
| * @param id Unique number of the object instance | |
| */ | |
| getObjectById(id: number): Object3D | undefined; | |
| /** | |
| * Searches through the object's children and returns the first with a matching name. | |
| * @param name String to match to the children's Object3d.name property. | |
| */ | |
| getObjectByName(name: string): Object3D | undefined; | |
| getObjectByProperty(name: string, value: string): Object3D | undefined; | |
| getWorldPosition(target: Vector3): Vector3; | |
| getWorldQuaternion(target: Quaternion): Quaternion; | |
| getWorldScale(target: Vector3): Vector3; | |
| getWorldDirection(target: Vector3): Vector3; | |
| raycast(raycaster: Raycaster, intersects: Intersection[]): void; | |
| traverse(callback: (object: Object3D) => any): void; | |
| traverseVisible(callback: (object: Object3D) => any): void; | |
| traverseAncestors(callback: (object: Object3D) => any): void; | |
| /** | |
| * Updates local transform. | |
| */ | |
| updateMatrix(): void; | |
| /** | |
| * Updates global transform of the object and its children. | |
| */ | |
| updateMatrixWorld(force?: boolean): void; | |
| /** | |
| * Updates the global transform of the object. | |
| * @param updateParents recursively updates global transform of ancestors. | |
| * @param updateChildren recursively updates global transform of descendants. | |
| */ | |
| updateWorldMatrix(updateParents: boolean, updateChildren: boolean): void; | |
| toJSON(meta?: { geometries: any; materials: any; textures: any; images: any }): any; | |
| clone(recursive?: boolean): this; | |
| /** | |
| * | |
| * @param object | |
| * @param recursive | |
| */ | |
| copy(source: this, recursive?: boolean): this; | |
| } | |