@itwin/core-common
Version:
iTwin.js components common to frontend and backend
66 lines • 3.02 kB
TypeScript
/** @packageDocumentation
* @module Entities
*/
import { Id64String } from "@itwin/core-bentley";
import { DefinitionElementProps } from "./ElementProps";
import { ImageSourceFormat } from "./Image";
import { Base64EncodedString } from "./Base64EncodedString";
/** Properties that define a [Texture]($backend) element.
* @public
* @extensions
*/
export interface TextureProps extends DefinitionElementProps {
/** Format of the image data. */
format: ImageSourceFormat;
/** The image data stored in a Base64-encoded string according to the specified format.
* @see [[Base64EncodedString.fromUint8Array]] to produce a well-formed base-64-encoded string.
* @see [[Base64EncodedString.toUint8Array]] to decode the bytes.
*/
data: Base64EncodedString;
/** An optional description of the texture. */
description?: string;
}
/** Properties that specify what texture should be loaded and how it should be loaded.
* @public
* @extensions
*/
export interface TextureLoadProps {
/** A valid Id64 string identifying the texture */
name: Id64String;
/** Maximum texture size supported by the client. If specified, the texture will be downsampled so both of its dimensions adhere to this size. */
maxTextureSize?: number;
}
/** Describes the type of transparency in the pixels of a [TextureImage]($frontend).
* Each pixel can be classified as either opaque or translucent.
* The transparency of the image as a whole is based on the combination of pixel transparencies.
* If this information is known, it should be supplied when creating a texture for more efficient rendering.
* @see [TextureImage.transparency]($frontend).
* @public
*/
export declare enum TextureTransparency {
/** The image contains only opaque pixels. It should not blend with other objects in the scene. */
Opaque = 0,
/** The image contains only translucent pixels. It should blend with other objects in the scene. */
Translucent = 1,
/** The image contains both opaque and translucent pixels. The translucent pixels should blend with other objects in the scene, while
* the opaque pixels should not. Rendering this type of transparency is somewhat more expensive.
*/
Mixed = 2
}
/** Information about [Texture]($backend) data returned by [[IModelReadRpcInterface.queryTextureData]].
* @public
* @extensions
*/
export interface TextureData {
/** The width of the image, possibly reduced from the original width based on [[TextureLoadProps.maxTextureSize]]. */
width: number;
/** The height of the image, possibly reduced from the original height based on [[TextureLoadProps.maxTextureSize]]. */
height: number;
/** The format of the image (Jpeg or Png). */
format: ImageSourceFormat;
/** The encoded image bytes. */
bytes: Uint8Array;
/** Information about the transparency of the texture image. Default: [[TextureTransparency.Mixed]]. */
transparency?: TextureTransparency;
}
//# sourceMappingURL=TextureProps.d.ts.map