UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

55 lines (54 loc) 1.94 kB
/** * A skin instance is responsible for generating the matrix palette that is used to skin vertices * from object space to world space. * * @category Graphics */ export class SkinInstance { /** * Create a new SkinInstance instance. * * @param {Skin} skin - The skin that will provide the inverse bind pose * matrices to generate the final matrix palette. */ constructor(skin: Skin); /** * An array of nodes representing each bone in this skin instance. * * @type {GraphNode[]} */ bones: GraphNode[]; _dirty: boolean; _rootBone: any; _skinUpdateIndex: number; _updateBeforeCull: boolean; set rootBone(rootBone: any); get rootBone(): any; init(device: any, numBones: any): void; boneTexture: Texture; matrixPalette: Uint8Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike>; destroy(): void; /** * Resolves skin bones to a hierarchy with the rootBone at its root. * * @param {Entity} rootBone - A reference to the entity to be used as the root bone. * @param {Entity} entity - Specifies the entity used if the bone match is not found in the * hierarchy - usually the entity the render component is attached to. * @ignore */ resolve(rootBone: Entity, entity: Entity): void; /** * @param {Skin} skin - The skin. */ initSkin(skin: Skin): void; skin: Skin; matrices: any[]; uploadBones(device: any): void; _updateMatrices(rootNode: any, skinUpdateIndex: any): void; updateMatrices(rootNode: any, skinUpdateIndex: any): void; updateMatrixPalette(rootNode: any, skinUpdateIndex: any): void; } import type { GraphNode } from './graph-node.js'; import { Texture } from '../platform/graphics/texture.js'; import type { Entity } from '../framework/entity.js'; import type { Skin } from './skin.js';