@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.
78 lines (77 loc) • 2.71 kB
TypeScript
import type { Skeleton } from "../Bones/skeleton.js";
import type { Color3 } from "../Maths/math.color.js";
/**
* Defines the options associated with the creation of a SkeletonViewer.
*/
export interface ISkeletonViewerOptions {
/** Should the system pause animations before building the Viewer? */
pauseAnimations: boolean;
/** Should the system return the skeleton to rest before building? */
returnToRest: boolean;
/** public Display Mode of the Viewer */
displayMode: number;
/** Flag to toggle if the Viewer should use the CPU for animations or not? */
displayOptions: ISkeletonViewerDisplayOptions;
/** Flag to toggle if the Viewer should use the CPU for animations or not? */
computeBonesUsingShaders: boolean;
/** Flag ignore non weighted bones */
useAllBones: boolean;
}
/**
* Defines how to display the various bone meshes for the viewer.
*/
export interface ISkeletonViewerDisplayOptions {
/** How far down to start tapering the bone spurs */
midStep?: number;
/** How big is the midStep? */
midStepFactor?: number;
/** Base for the Sphere Size */
sphereBaseSize?: number;
/** The ratio of the sphere to the longest bone in units */
sphereScaleUnit?: number;
/** Ratio for the Sphere Size */
sphereFactor?: number;
/** Whether a spur should attach its far end to the child bone position */
spurFollowsChild?: boolean;
/** Whether to show local axes or not */
showLocalAxes?: boolean;
/** Length of each local axis */
localAxesSize?: number;
}
/**
* Defines the constructor options for the BoneWeight Shader.
*/
export interface IBoneWeightShaderOptions {
/** Skeleton to Map */
skeleton: Skeleton;
/** Colors for Uninfluenced bones */
colorBase?: Color3;
/** Colors for 0.0-0.25 Weight bones */
colorZero?: Color3;
/** Color for 0.25-0.5 Weight Influence */
colorQuarter?: Color3;
/** Color for 0.5-0.75 Weight Influence */
colorHalf?: Color3;
/** Color for 0.75-1 Weight Influence */
colorFull?: Color3;
/** Color for Zero Weight Influence */
targetBoneIndex?: number;
}
/**
* Simple structure of the gradient steps for the Color Map.
*/
export interface ISkeletonMapShaderColorMapKnot {
/** Color of the Knot */
color: Color3;
/** Location of the Knot */
location: number;
}
/**
* Defines the constructor options for the SkeletonMap Shader.
*/
export interface ISkeletonMapShaderOptions {
/** Skeleton to Map */
skeleton: Skeleton;
/** Array of ColorMapKnots that make the gradient must be ordered with knot[i].location < knot[i+1].location*/
colorMap?: ISkeletonMapShaderColorMapKnot[];
}