@pixi/core
Version:
Core PixiJS
84 lines (83 loc) • 2.75 kB
TypeScript
import { Matrix } from '@pixi/math';
import type { Texture } from './Texture';
/**
* Class controls uv mapping from Texture normal space to BaseTexture normal space.
*
* Takes `trim` and `rotate` into account. May contain clamp settings for Meshes and TilingSprite.
*
* Can be used in Texture `uvMatrix` field, or separately, you can use different clamp settings on the same texture.
* If you want to add support for texture region of certain feature or filter, that's what you're looking for.
*
* Takes track of Texture changes through `_lastTextureID` private field.
* Use `update()` method call to track it from outside.
* @see PIXI.Texture
* @see PIXI.Mesh
* @see PIXI.TilingSprite
* @memberof PIXI
*/
export declare class TextureMatrix {
/**
* Matrix operation that converts texture region coords to texture coords
* @readonly
*/
mapCoord: Matrix;
/**
* Changes frame clamping
* Works with TilingSprite and Mesh
* Change to 1.5 if you texture has repeated right and bottom lines, that leads to smoother borders
* @default 0
*/
clampOffset: number;
/**
* Changes frame clamping
* Works with TilingSprite and Mesh
* Change to -0.5 to add a pixel to the edge, recommended for transparent trimmed textures in atlas
* @default 0.5
*/
clampMargin: number;
/**
* Clamp region for normalized coords, left-top pixel center in xy , bottom-right in zw.
* Calculated based on clampOffset.
*/
readonly uClampFrame: Float32Array;
/** Normalized clamp offset. Calculated based on clampOffset. */
readonly uClampOffset: Float32Array;
/**
* Tracks Texture frame changes.
* @protected
*/
_textureID: number;
/**
* Tracks Texture frame changes.
* @protected
*/
_updateID: number;
_texture: Texture;
/**
* If texture size is the same as baseTexture.
* @default false
* @readonly
*/
isSimple: boolean;
/**
* @param texture - observed texture
* @param clampMargin - Changes frame clamping, 0.5 by default. Use -0.5 for extra border.
*/
constructor(texture: Texture, clampMargin?: number);
/** Texture property. */
get texture(): Texture;
set texture(value: Texture);
/**
* Multiplies uvs array to transform
* @param uvs - mesh uvs
* @param [out=uvs] - output
* @returns - output
*/
multiplyUvs(uvs: Float32Array, out?: Float32Array): Float32Array;
/**
* Updates matrices if texture was changed.
* @param [forceUpdate=false] - if true, matrices will be updated any case
* @returns - Whether or not it was updated
*/
update(forceUpdate?: boolean): boolean;
}