UNPKG

@awayjs/scene

Version:
149 lines 5.56 kB
import { PickingCollision, PickEntity, _Pick_PickableBase, IEntity } from '@awayjs/view'; import { RenderableEvent, IMaterial, StyleEvent } from '@awayjs/renderer'; import { Rectangle, Matrix3D, Box, Vector3D, Sphere } from '@awayjs/core'; import { ImageSampler, Image2D } from '@awayjs/stage'; import { DisplayObjectContainer } from './DisplayObjectContainer'; /** * The Billboard class represents display objects that represent bitmap images. * These can be images that you load with the <code>flash.Assets</code> or * <code>flash.display.Loader</code> classes, or they can be images that you * create with the <code>Billboard()</code> constructor. * * <p>The <code>Billboard()</code> constructor allows you to create a Billboard * object that contains a reference to a Image2D object. After you create a * Billboard object, use the <code>addChild()</code> or <code>addChildAt()</code> * method of the parent DisplayObjectContainer instance to place the bitmap on * the display list.</p> * * <p>A Billboard object can share its Image2D reference among several Billboard * objects, independent of translation or rotation properties. Because you can * create multiple Billboard objects that reference the same Image2D object, * multiple display objects can use the same complex Image2D object without * incurring the memory overhead of a Image2D object for each display * object instance.</p> * * <p>A Image2D object can be drawn to the screen by a Billboard object in one * of two ways: by using the default hardware renderer with a single hardware surface, * or by using the slower software renderer when 3D acceleration is not available.</p> * * <p>If you would prefer to perform a batch rendering command, rather than using a * single surface for each Billboard object, you can also draw to the screen using the * <code>drawTiles()</code> or <code>drawTriangles()</code> methods which are * available to <code>flash.display.Tilesheet</code> and <code>flash.display.Graphics * objects.</code></p> * * <p><b>Note:</b> The Billboard class is not a subclass of the InteractiveObject * class, so it cannot dispatch mouse events. However, you can use the * <code>addEventListener()</code> method of the display object container that * contains the Billboard object.</p> */ /** * @todo billboard needed to extend on DisplayObjectContainer in order * for as3web/away3d adapters to compile without errors * (in away3d Sprite3D extends on ObjectContainer3D) */ export declare class Billboard extends DisplayObjectContainer { private static _billboards; static assetType: string; private _width; private _height; private _billboardWidth; private _billboardHeight; private _billboardRect; private _sampler; private _onInvalidateTextureDelegate; static getNewBillboard(material: IMaterial, pixelSnapping?: string, smoothing?: boolean): Billboard; preserveDimensions: boolean; /** * */ get assetType(): string; /** * */ get billboardRect(): Rectangle; /** * */ get billboardHeight(): number; /** * */ get billboardWidth(): number; /** * */ get material(): IMaterial; set material(value: IMaterial); get sampler(): ImageSampler; /** * */ get width(): number; set width(val: number); /** * */ get height(): number; set height(val: number); constructor(material: IMaterial, _pixelSnapping?: string, smoothing?: boolean); advanceFrame(): void; getEntity(): IEntity; /** * @inheritDoc */ dispose(): void; clone(): Billboard; _acceptTraverser(traverser: IEntityTraverser): void; get image(): Image2D; private _updateDimensions; protected _onInvalidateProperties(event?: StyleEvent): void; /** * @private */ private _onInvalidateTexture; } import { AssetEvent } from '@awayjs/core'; import { _Stage_ElementsBase, _Render_MaterialBase, _Render_RenderableBase, Style } from '@awayjs/renderer'; import { IEntityTraverser } from '@awayjs/view'; /** * @class away.pool.RenderableListItem */ export declare class _Render_Billboard extends _Render_RenderableBase { private static _samplerElements; _id: string; /** * //TODO * * @returns {away.base.TriangleElements} */ protected _getStageElements(): _Stage_ElementsBase; executeRender(enableDepthAndStencil?: boolean, surfaceSelector?: number, mipmapSelector?: number, maskConfig?: number): void; protected _getRenderMaterial(): _Render_MaterialBase; protected _getStyle(): Style; } /** * @class away.pool._Render_Shape */ export declare class _Pick_Billboard extends _Pick_PickableBase { private _billboardBox; private _billboardBoxDirty; private _onInvalidateElementsDelegate; constructor(); /** * //TODO * * @param renderEntity * @param shape * @param level * @param indexOffset */ init(billboard: Billboard, pickEntity: PickEntity): void; _onInvalidateElements(event: RenderableEvent): void; onClear(event: AssetEvent): void; hitTestPoint(x: number, y: number, z: number): boolean; getBoxBounds(matrix3D?: Matrix3D, strokeFlag?: boolean, cache?: Box, target?: Box): Box; getSphereBounds(center: Vector3D, matrix3D?: Matrix3D, strokeFlag?: boolean, cache?: Sphere, target?: Sphere): Sphere; testCollision(collision: PickingCollision, closestFlag: boolean): boolean; } //# sourceMappingURL=Billboard.d.ts.map