@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
178 lines (177 loc) • 6.03 kB
TypeScript
import type { IAnimatable } from "../Animations/animatable.interface.js";
import { Observable } from "../Misc/observable.js";
import type { Nullable, FloatArray } from "../types.js";
import type { Scene } from "../scene.js";
import type { AbstractMesh } from "../Meshes/abstractMesh.js";
import type { AnimationPropertiesOverride } from "../Animations/animationPropertiesOverride.js";
import type { Animation } from "../Animations/animation.js";
/**
* Defines a target to use with MorphTargetManager
* @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets
*/
export declare class MorphTarget implements IAnimatable {
/** defines the name of the target */
name: string;
/**
* Gets or sets the list of animations
*/
animations: Animation[];
private _scene;
private _positions;
private _normals;
private _tangents;
private _uvs;
private _uv2s;
private _colors;
private _influence;
private _uniqueId;
/**
* Observable raised when the influence changes
*/
onInfluenceChanged: Observable<boolean>;
/** @internal */
_onDataLayoutChanged: Observable<void>;
/**
* Gets or sets the influence of this target (ie. its weight in the overall morphing)
*/
get influence(): number;
set influence(influence: number);
/**
* Gets or sets the id of the morph Target
*/
id: string;
private _animationPropertiesOverride;
/**
* Gets or sets the animation properties override
*/
get animationPropertiesOverride(): Nullable<AnimationPropertiesOverride>;
set animationPropertiesOverride(value: Nullable<AnimationPropertiesOverride>);
/**
* Creates a new MorphTarget
* @param name defines the name of the target
* @param influence defines the influence to use
* @param scene defines the scene the morphtarget belongs to
*/
constructor(
/** defines the name of the target */
name: string, influence?: number, scene?: Nullable<Scene>);
/**
* Gets the unique ID of this manager
*/
get uniqueId(): number;
/**
* Gets a boolean defining if the target contains position data
*/
get hasPositions(): boolean;
/**
* Gets a boolean defining if the target contains normal data
*/
get hasNormals(): boolean;
/**
* Gets a boolean defining if the target contains tangent data
*/
get hasTangents(): boolean;
/**
* Gets a boolean defining if the target contains texture coordinates data
*/
get hasUVs(): boolean;
/**
* Gets a boolean defining if the target contains texture coordinates 2 data
*/
get hasUV2s(): boolean;
get hasColors(): boolean;
/**
* Gets the number of vertices stored in this target
*/
get vertexCount(): number;
/**
* Affects position data to this target
* @param data defines the position data to use
*/
setPositions(data: Nullable<FloatArray>): void;
/**
* Gets the position data stored in this target
* @returns a FloatArray containing the position data (or null if not present)
*/
getPositions(): Nullable<FloatArray>;
/**
* Affects normal data to this target
* @param data defines the normal data to use
*/
setNormals(data: Nullable<FloatArray>): void;
/**
* Gets the normal data stored in this target
* @returns a FloatArray containing the normal data (or null if not present)
*/
getNormals(): Nullable<FloatArray>;
/**
* Affects tangent data to this target
* @param data defines the tangent data to use
*/
setTangents(data: Nullable<FloatArray>): void;
/**
* Gets the tangent data stored in this target
* @returns a FloatArray containing the tangent data (or null if not present)
*/
getTangents(): Nullable<FloatArray>;
/**
* Affects texture coordinates data to this target
* @param data defines the texture coordinates data to use
*/
setUVs(data: Nullable<FloatArray>): void;
/**
* Gets the texture coordinates data stored in this target
* @returns a FloatArray containing the texture coordinates data (or null if not present)
*/
getUVs(): Nullable<FloatArray>;
/**
* Affects texture coordinates 2 data to this target
* @param data defines the texture coordinates 2 data to use
*/
setUV2s(data: Nullable<FloatArray>): void;
/**
* Gets the texture coordinates 2 data stored in this target
* @returns a FloatArray containing the texture coordinates 2 data (or null if not present)
*/
getUV2s(): Nullable<FloatArray>;
/**
* Affects color data to this target
* @param data defines the color data to use
*/
setColors(data: Nullable<FloatArray>): void;
/**
* Gets the color data stored in this target
* @returns a FloatArray containing the color data (or null if not present)
*/
getColors(): Nullable<FloatArray>;
/**
* Clone the current target
* @returns a new MorphTarget
*/
clone(): MorphTarget;
/**
* Serializes the current target into a Serialization object
* @returns the serialized object
*/
serialize(): any;
/**
* Returns the string "MorphTarget"
* @returns "MorphTarget"
*/
getClassName(): string;
/**
* Creates a new target from serialized data
* @param serializationObject defines the serialized data to use
* @param scene defines the hosting scene
* @returns a new MorphTarget
*/
static Parse(serializationObject: any, scene?: Scene): MorphTarget;
/**
* Creates a MorphTarget from mesh data
* @param mesh defines the source mesh
* @param name defines the name to use for the new target
* @param influence defines the influence to attach to the target
* @returns a new MorphTarget
*/
static FromMesh(mesh: AbstractMesh, name?: string, influence?: number): MorphTarget;
}