import { IAssetClass, IAbstractionPool, Matrix3D, Box, Vector3D, Sphere, AbstractionBase, Plane3D, AbstractionSet } from '@awayjs/core'; import { PickGroup } from '../PickGroup'; import { _Pick_PickableBase } from './_Pick_PickableBase'; import { _IPick_PickableClass } from './_IPick_PickableClass'; import { PickingCollision } from '../pick/PickingCollision'; import { IEntityTraverser } from './IEntityTraverser'; import { BoundingVolumeBase } from '../bounds/BoundingVolumeBase'; import { BoundingVolumeType } from '../bounds/BoundingVolumeType'; import { IBoundsPicker } from '../pick/IBoundsPicker'; import { ContainerNode } from '../partition/ContainerNode'; import { INode } from '../partition/INode'; import { IPickable } from './IPickable'; /** * @class away.pool.PickEntity */ export declare class PickEntity extends AbstractionBase implements IAbstractionPool, IEntityTraverser, IBoundsPicker { private static _store; static MINIMAL_SCALE: number; private _boundingVolumePools; private _pickingCollision; private _orientedBoxBounds; private _orientedBoxBoundsDirty; private _orientedSphereBounds; private _orientedSphereBoundsDirty; private static _pickPickableClassPool; private _activePickables; readonly abstractions: AbstractionSet; get pickingCollision(): PickingCollision; /** * */ get node(): ContainerNode; /** * */ get pickGroup(): PickGroup; shapeFlag: boolean; constructor(); /** * //TODO */ init(node: INode, pickGroup: PickGroup): void; getBoundingVolume(target?: INode, type?: BoundingVolumeType): BoundingVolumeBase; /** * Evaluates the display object to see if it overlaps or intersects with the * point specified by the x and y parameters. The * x and y parameters specify a point in the * coordinate space of the Scene, not the display object container that * contains the display object(unless that display object container is the * Scene). * * @param x The x coordinate to test against this object. * @param y The y coordinate to test against this object. * @param shapeFlag Whether to check against the actual pixels of the object * (true) or the bounding box * (false). * @param maskFlag Whether to check against the object when it is used as * mask (false). * @return true if the display object overlaps or intersects * with the specified point; false otherwise. */ hitTestPoint(x: number, y: number, shapeFlag?: boolean): boolean; _hitTestPointInternal(rootEntity: ContainerNode, x: number, y: number, shapeFlag?: boolean, maskFlag?: boolean): boolean; isInFrustum(planes: Array, numPlanes: number): boolean; _isInFrustumInternal(rooNode: ContainerNode, planes: Array, numPlanes: number): boolean; /** * @inheritDoc */ isIntersectingRay(globalRayPosition: Vector3D, globalRayDirection: Vector3D): boolean; /** * @inheritDoc */ _isIntersectingRayInternal(rootEntity: INode, globalRayPosition: Vector3D, globalRayDirection: Vector3D): boolean; isIntersectingShape(findClosestCollision: boolean): boolean; _getBoxBoundsInternal(invTargetMatrix?: Matrix3D, strokeFlag?: boolean, fastFlag?: boolean, cache?: Box, target?: Box): Box; _getSphereBoundsInternal(center?: Vector3D, matrix3D?: Matrix3D, strokeFlag?: boolean, fastFlag?: boolean, cache?: Sphere, target?: Sphere): Sphere; applyTraversable(pickable: IPickable): void; onInvalidate(): void; onClear(): void; requestAbstraction(pickable: IPickable): _Pick_PickableBase; storeAbstraction(abstraction: _Pick_PickableBase, assetType: string): void; /** * * @param imageObjectClass */ static registerPickable(pickClass: _IPick_PickableClass, assetClass: IAssetClass): void; private _update; private _isIntersectingMasks; } //# sourceMappingURL=PickEntity.d.ts.map