UNPKG

@itwin/core-frontend

Version:
88 lines 4.34 kB
/** @packageDocumentation * @module Views */ import { Point2d, Point3d, XYAndZ } from "@itwin/core-geometry"; import { ImageSource } from "@itwin/core-common"; import { CanvasDecoration } from "./render/CanvasDecoration"; import { DecorateContext } from "./ViewContext"; import { ScreenViewport } from "./Viewport"; /** Sprites are small raster images that are drawn *on top* of Viewports by a ViewDecoration. * Their purpose is to draw the user's attention to something of importance. * * There are two classes in the Sprites subsystem: Sprite (a Sprite image) and SpriteLocation. * Sprite are the images that define the way a type of sprite looks and are generally * loaded one time and saved for the rest of a session. A SpriteLocation defines the current * position of a single Sprite in a Viewport. * * A SpriteLocation can be either active or inactive. It becomes active by specifying a location * (an x,y point) and a Sprite to draw at that point. A Sprite * can be used many times by many SpriteLocations and a single SpriteLocation can * change both position and which Sprite is shown at that position over time. * @public * @extensions */ export declare class Sprite { /** The image for this Sprite. If undefined, the Spite is not valid. */ image?: HTMLImageElement; /** The size of this Sprite. If not loaded, value is not meaningful. */ readonly size: Point2d; /** Promise fulfilled when this sprite is loaded. */ loadPromise: Promise<HTMLImageElement>; /** The offset to the middle of this Sprite. If not loaded, value is not meaningful. */ get offset(): Point2d; /** Whether this sprite has be successfully loaded. */ get isLoaded(): boolean; /** construct a Sprite from an ImageSource or a Url * @param src The ImageSource holding an image to create the texture for this Sprite, or the url of the image */ constructor(src: ImageSource | string); } /** Icon sprites are loaded from .png files in the assets directory of imodeljs-native. * They are cached by name, and the cache is cleared when the ToolAdmin is shut down. * @public * @extensions */ export declare class IconSprites { private static readonly _sprites; /** Look up an IconSprite by url. If not loaded, create and load it. * @param spriteUrl The url of an image to load for this Sprite. */ static getSpriteFromUrl(spriteUrl: string): Sprite; /** Empty the cache, disposing all existing Sprites. */ static emptyAll(): void; } /** A Sprite location. Sprites generally move around on the screen and this object holds the current location * and current Sprite within a ScreenViewport. SpriteLocations can be either inactive (not visible) or active. * * A SpriteLocation can also specify that a Sprite should be drawn partially transparent. * @public * @extensions */ export declare class SpriteLocation implements CanvasDecoration { private _viewport?; private _sprite?; private _alpha?; /** The current position of this sprite in view coordinates. * @see [[CanvasDecoration.position]] */ readonly position: Point3d; get isActive(): boolean; /** Activate this SpriteLocation to show a Sprite at a location in a single ScreenViewport. * This call does not display the Sprite. Rather, subsequent calls to [[decorate]] from will show the Sprite. * This SpriteLocation remains active until [[deactivate]] is called. * @param sprite The Sprite to draw at this SpriteLocation * @param viewport The Viewport onto which the Sprite is drawn * @param locationWorld The position, in world coordinates * @param alpha Optional alpha for the Sprite. Must be a number between 0 (fully transparent) and 1 (fully opaque). */ activate(sprite: Sprite, viewport: ScreenViewport, locationWorld: XYAndZ, alpha?: number): void; /** Turn this SpriteLocation off so it will no longer show. */ deactivate(): void; /** Draw this sprite onto the supplied canvas. * @see [[CanvasDecoration.drawDecoration]] */ drawDecoration(ctx: CanvasRenderingContext2D): void; /** If this SpriteLocation is active and the supplied DecorateContext is for its Viewport, add the Sprite to decorations. */ decorate(context: DecorateContext): void; } //# sourceMappingURL=Sprites.d.ts.map