UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

66 lines 3.02 kB
/** @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