import * as THREE from 'three'; import { Component, ConstructorProps, ContextManager, Event, Observable } from '@zcomponent/core'; import { ThreePointerEvent, ThreePointerEventListener, ThreePointerPresentEvent, ThreeWheelEvent } from '../pointerevents'; import { IntersectionEvent, IntersectionPresentEvent } from './Raycaster'; /** * A base class for all 3D objects. * * Root element: [THREE.Object3D](https://threejs.org/docs/index.html#api/en/core/Object3D) */ export declare class Object3D extends Component implements ThreePointerEventListener { element: THREE.Object3D; /** @zprop */ onClick: Event<[ThreePointerPresentEvent]>; /** @zprop */ onDblClick: Event<[ThreePointerPresentEvent]>; /** @zprop */ onContextMenu: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerDown: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerUp: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerEnter: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerMove: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerLeave: Event<[ThreePointerEvent]>; /** @zprop */ onPointerOver: Event<[ThreePointerPresentEvent]>; /** @zprop */ onPointerOut: Event<[ThreePointerEvent]>; /** @zprop */ onPointerCancel: Event<[ThreePointerEvent]>; /** @zprop */ onWheel: Event<[ThreeWheelEvent]>; /** @zprop */ onIntersectionEnter: Event<[IntersectionPresentEvent]>; /** @zprop */ onIntersectionLeave: Event<[IntersectionEvent]>; private _parentForChildren; constructor(contextManager: ContextManager, constructorProps: ConstructorProps, element: THREE.Object3D, parentForChildren?: THREE.Object3D); private _connectChild; appendChild(c: Component): void; removeChild(c: Component): void; dispose(): never; /** * Determines if this object and its children are rendered to the screen. * * @zprop * @zgroup Appearance * @zgrouppriority 11 * @zdefault true */ visible: Observable; /** * Determines if this object casts shadows. * * @zprop * @zgroup Appearance * @zgrouppriority 11 * @zdefault true */ castShadow: Observable; /** * Determines if this object receives shadows. * * @zprop * @zgroup Appearance * @zgrouppriority 11 * @zdefault true */ receiveShadow: Observable; /** * The position, in 3D space, of this node relative to its parent. The three elements of the array correspond to the `x`, `y`, and `z` components of position. * * @zprop * @zgroup Transform * @zgrouppriority 10 * @zdefault [0, 0, 0] */ position: Observable<[x: number, y: number, z: number], never>; /** * The scale, in three dimensions, of this node relative to its parent. The three elements of the array correspond to scales in the the `x`, `y`, and `z` axis. * * @zprop * @zgroup Transform * @zgrouppriority 10 * @zdefault [1, 1, 1] */ scale: Observable<[x: number, y: number, z: number], never>; /** * The rotation, in three dimensions, of this node relative to its parent. The three elements of the array correspond to Euler angles - yaw, pitch and roll. * * @zprop * @zgroup Transform * @ztype angle-radians * @zgrouppriority 10 * @zdefault [0, 0, 0] */ rotation: Observable<[x: number, y: number, z: number], never>; lookAt: Observable<[number, number, number] | undefined, never>; }