import { EventEmitter, h } from '../../stencil-public-runtime'; import { Euler, Matrix4, Quaternion, Vector3 } from '@vertexvis/geometry'; import { HTMLDomRendererPositionableElement } from '../../interfaces'; /** * The `ViewerDomElement` is responsible for managing a * `` element. These elements are intended to be * added as children to a `` and represent an * individual DOM element within a local 3D scene. */ export declare class ViewerDomElement implements HTMLDomRendererPositionableElement { /** * The local 3D position of where this element is located. */ position: Vector3.Vector3; /** * @ignore */ protected handlePositionChange(): void; /** * The local 3D position of where this element is located, as a JSON string. * JSON representation can either be in the format of `[x, y, z]` or `{"x": 0, * "y": 0, "z": 0}`. */ positionJson: string; /** * @ignore */ protected handlePositionJsonChanged(): void; /** * The local rotation of this element in Euler angles. */ rotation?: Euler.Euler; /** * @ignore */ protected handleRotationChanged(): void; /** * The local rotation of this element in Euler angles, as a JSON string. JSON * representation can either be `[x, y, z, order]` or `{"x": 0, "y": 0, "z": * 0, "order": "xyz"}`. */ rotationJson?: string; /** * @ignore */ protected handleRotationJsonChanged(): void; /** * The local rotation of this element. */ quaternion: Quaternion.Quaternion; /** * @ignore */ protected handleQuaternionChange(): void; /** * The local quaternion rotation of this element, as a JSON string. JSON * representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z": * 0, "w": 1}`. */ quaternionJson: string; /** * @ignore */ protected handleQuaternionJsonChanged(): void; /** * The local scale of this element. */ scale: Vector3.Vector3; /** * @ignore */ protected handleScaleChange(): void; /** * The local scale of this element, as a JSON string. JSON string * representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": * 0, "z": 0}`. */ scaleJson: string; /** * @ignore */ protected handleScaleJsonChanged(): void; /** * @ignore */ protected handleMatrixChanged(newMatrix: Matrix4.Matrix4, oldMatrix: Matrix4.Matrix4): void; /** * The local matrix of this element. */ matrix: Matrix4.Matrix4; /** * Disables occlusion testing for this element. Defaults to enabled. When * enabled, the elements position will be tested against the current depth * buffer. If the position is occluded, then the `occluded` attribute will be * set. */ occlusionOff: boolean; /** * Indicates if the element is hidden by geometry. This property can be used * with a CSS selector to modify the appearance of the element when its * occluded. * * @example * * ```html * * ``` */ occluded: boolean; /** * Dispatched when the occlusion state is changed. */ occlusionStateChanged: EventEmitter; /** * **EXPERIMENTAL** * Disables detached testing for this element. Defaults to disabled. When * enabled, the elements position will be tested against the current depth * buffer. If the position is detached, then the `detached` attribute will be * set. */ detachedOff: boolean; /** * **EXPERIMENTAL** * Indicates if the element is detached from geometry. This property can be used * with a CSS selector to modify the appearance of the element when its * detached. * * @example * * ```html * * ``` */ detached: boolean; /** * **EXPERIMENTAL** * Dispatched when the detached state is changed. */ detachedStateChanged: EventEmitter; /** * Disables the billboarding behavior of the element. When billboarding is * enabled, the element will always be oriented towards the screen. */ billboardOff: boolean; /** * Disables interaction events from children. */ interactionsOff: boolean; /** * An event that is emitted when any property on the dom group changes */ propertyChange: EventEmitter; /** * @ignore */ protected connectedCallback(): void; /** * @ignore */ protected componentShouldUpdate(newValue: unknown, oldValue: unknown, prop: string): boolean; /** * @ignore */ protected handleOcclusionStateChanged(): void; /** * @ignore */ protected handleDetachedStateChanged(): void; private syncProperties; private syncPosition; private syncRotation; private syncQuaternionWithRotation; private syncQuaternion; private syncScale; private syncMatrix; private parseJson; /** * @ignore */ protected render(): h.JSX.IntrinsicElements; }