import { EventEmitter } from '@feng3d/event'; import { Node, NodeEventMap } from '../../core/Node'; import { Matrix4 } from '../../thirdparty/three/exports'; import { Group, Vector3 } from '../../thirdparty/three/imports'; export interface Node3DEventMap extends NodeEventMap { } export interface Node3D { /** * 父对象 */ get parent(): Node3D; /** * 子对象列表 */ get children(): Node3D[]; set children(v: Node3D[]); /** * 获取指定位置的子对象 * * @param index 子对象位置。 */ getChildAt(index: number): Node3D; /** * 根据名称查找对象 * * @param name 对象名称 */ find(name: string): Node3D; /** * 添加子对象 * * @param child 子对象 * * @returns 返回自身。 */ addChild(child: Node3D): this; } /** * 3D节点,包装`three`中`Group`作为3D节点。 */ export declare class Node3D extends Node { emitter: EventEmitter; __class__: 'Node3D'; protected _parent: Node3D; protected _children: Node3D[]; /** * @private */ _group: Group; get position(): Vector3; set position(v: Vector3); get rotation(): import("three/src/math/Euler").Euler; set rotation(v: import("three/src/math/Euler").Euler); get scale(): Vector3; set scale(v: Vector3); get quaternion(): import("three/src/math/Quaternion").Quaternion; get up(): Vector3; get visible(): boolean; set visible(v: boolean); /** * 是否拥有`Camera3D`组件。 * * 为了解决`three.js`中摄像机、灯光独特`lookAt`运算。 * @see https://github.com/mrdoob/three.js/blob/r149/src/core/Object3D.js#L284 */ get isCamera(): boolean; set isCamera(v: boolean); get isPerspectiveCamera(): boolean; set isPerspectiveCamera(v: boolean); get isOrthographicCamera(): boolean; set isOrthographicCamera(v: boolean); /** * 是否拥有`Mesh3D`组件。 */ get isMesh(): boolean; set isMesh(v: boolean); get isInstancedMesh(): boolean; set isInstancedMesh(v: boolean); get isBrush(): boolean; set isBrush(v: boolean); get isPoints(): boolean; set isPoints(v: boolean); get isSprite(): boolean; set isSprite(v: boolean); get isLine(): boolean; set isLine(v: boolean); get isLineSegments(): boolean; set isLineSegments(v: boolean); /** * 是否拥有`Light3D`组件。 */ get isLight(): boolean; set isLight(v: boolean); get matrix(): Matrix4; set matrix(v: Matrix4); get matrixWorld(): Matrix4; constructor(); getObjectByName(name: string): import("three/src/core/Object3D").Object3D; destroy(): void; lookAt(x: number, y: number, z: number): void; lookAt(vector: Vector3): void; translateX(distance: number): this; translateY(distance: number): this; translateZ(distance: number): this; updateMatrix(): void; updateMatrixWorld(force?: boolean): void; applyMatrix4(matrix: Matrix4): void; private _onAdded; private _onRemoved; static get(group: Group): Node3D; private static _map; } //# sourceMappingURL=Node3D.d.ts.map