layaair-js
Version:
An open source HTML5 engine. Edition JavaScript.
1,814 lines • 859 kB
TypeScript
declare module laya.ani {
/**
* <code>AnimationPlayer</code> 类用于动画播放器。
*/
class AnimationPlayer extends laya.events.EventDispatcher {
_fullFrames: Array<any>;
/**是否缓存*/
isCache: boolean;
/** 播放速率*/
playbackRate: number;
/** 停止时是否归零*/
returnToZeroStopped: boolean;
/**
* 获取动画数据模板
* @param value 动画数据模板
*/
/**
* 设置动画数据模板,注意:修改此值会有计算开销。
* @param value 动画数据模板
*/
templet: KeyframesAniTemplet;
/**
* 动画播放的起始时间位置。
* @return 起始时间位置。
*/
playStart: number;
/**
* 动画播放的结束时间位置。
* @return 结束时间位置。
*/
playEnd: number;
/**
* 获取动画播放一次的总时间
* @return 动画播放一次的总时间
*/
playDuration: number;
/**
* 获取动画播放的总总时间
* @return 动画播放的总时间
*/
overallDuration: number;
/**
* 获取当前动画索引
* @return value 当前动画索引
*/
currentAnimationClipIndex: number;
/**
* 获取当前帧数
* @return 当前帧数
*/
currentKeyframeIndex: number;
/**
* 获取当前精确时间,不包括重播时间
* @return value 当前时间
*/
currentPlayTime: number;
/**
* 获取当前帧时间,不包括重播时间
* @return value 当前时间
*/
currentFrameTime: number;
/**
* 获取缓存播放速率。*
* @return 缓存播放速率。
*/
/**
* 设置缓存播放速率,默认值为1.0,注意:修改此值会有计算开销。*
* @return value 缓存播放速率。
*/
cachePlayRate: number;
/**
* 获取默认帧率*
* @return value 默认帧率
*/
/**
* 设置默认帧率,每秒60帧,注意:修改此值会有计算开销。*
* @return value 缓存帧率
*/
cacheFrameRate: number;
/**
* 设置当前播放位置
* @param value 当前时间
*/
currentTime: number;
/**
* 获取当前是否暂停
* @return 是否暂停
*/
/**
* 设置是否暂停
* @param value 是否暂停
*/
paused: boolean;
/**
* 获取缓存帧率间隔时间
* @return 缓存帧率间隔时间
*/
cacheFrameRateInterval: number;
/**
* 获取当前播放状态
* @return 当前播放状态
*/
state: number;
constructor();
/**
* @private
*/
_onTempletLoadedComputeFullKeyframeIndices(cachePlayRate: number, cacheFrameRate: number, templet: KeyframesAniTemplet): void;
/**
* 播放动画。
* @param index 动画索引。
* @param playbackRate 播放速率。
* @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
* @param playStart 播放的起始时间位置。
* @param playEnd 播放的结束时间位置。(0为动画一次循环的最长结束时间位置)。
*/
play(index?: number, playbackRate?: number, overallDuration?: number, playStart?: number, playEnd?: number): void;
/**
* 播放动画。
* @param index 动画索引。
* @param playbackRate 播放速率。
* @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
* @param playStartFrame 播放的原始起始帧率位置。
* @param playEndFrame 播放的原始结束帧率位置。(0为动画一次循环的最长结束时间位置)。
*/
playByFrame(index?: number, playbackRate?: number, overallDuration?: number, playStartFrame?: number, playEndFrame?: number, fpsIn3DBuilder?: number): void;
/**
* 停止播放当前动画
* @param immediate 是否立即停止
*/
stop(immediate?: boolean): void;
/**更新动画播放器 */
update(elapsedTime: number): void;
}
}
declare module laya.ani {
/**
* @private
*/
class AnimationState {
static stopped: number;
static paused: number;
static playing: number;
constructor();
}
}
declare module laya.ani.bone {
/**
* @private
*/
class Bone {
name: string;
root: Bone;
parentBone: Bone;
length: number;
transform: Transform;
resultTransform: Transform;
resultMatrix: laya.maths.Matrix;
inheritScale: boolean;
inheritRotation: boolean;
rotation: number;
resultRotation: number;
constructor();
setTempMatrix(matrix: laya.maths.Matrix): void;
update(pMatrix?: laya.maths.Matrix): void;
updateChild(): void;
updateDraw(x: number, y: number): void;
addChild(bone: Bone): void;
findBone(boneName: string): Bone;
localToWorld(local: Array<any>): void;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class BoneSlot {
/** 插槽名称 */
name: string;
/** 插槽绑定的骨骼名称 */
parent: string;
/** 插糟显示数据数据的名称 */
attachmentName: string;
/** 原始数据的索引 */
srcDisplayIndex: number;
/** 判断对象是否是原对象 */
type: string;
/** 模板的指针 */
templet: Templet;
/** 当前插槽对应的数据 */
currSlotData: SlotData;
/** 当前插槽显示的纹理 */
currTexture: laya.resource.Texture;
/** 显示对象对应的数据 */
currDisplayData: SkinSlotDisplayData;
/** 显示皮肤的索引 */
displayIndex: number;
deformData: Array<any>;
/**
* 设置要显示的插槽数据
* @param slotData
* @param disIndex
*/
showSlotData(slotData: SlotData): void;
/**
* 通过名字显示指定对象
* @param name
*/
showDisplayByName(name: string): void;
/**
* 指定显示对象
* @param index
*/
showDisplayByIndex(index: number): void;
/**
* 替换皮肤
* @param _texture
*/
replaceSkin(_texture: laya.resource.Texture): void;
/**
* 保存父矩阵的索引
* @param parentMatrix
*/
setParentMatrix(parentMatrix: laya.maths.Matrix): void;
/**
* 把纹理画到Graphics上
* @param graphics
* @param noUseSave
*/
draw(graphics: laya.ani.GraphicsAni, boneMatrixArray: Array<any>, noUseSave?: boolean, alpha?: number): void;
/**
* 画骨骼的起始点,方便调试
* @param graphics
*/
drawBonePoint(graphics: laya.display.Graphics): void;
/**
* 得到插糟的矩阵
* @return
*/
getMatrix(): laya.maths.Matrix;
/**
* 用原始数据拷贝出一个
* @return
*/
copy(): BoneSlot;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class DeformAniData {
deformSlotDataList: Array<any>;
constructor();
}
}
declare module laya.ani.bone {
/**
* ...
* @author
*/
class DeformSlotData {
deformSlotDisplayList: Array<any>;
constructor();
}
}
declare module laya.ani.bone {
/**
* @private
*/
class DeformSlotDisplayData {
boneSlot: BoneSlot;
slotIndex: number;
attachment: string;
timeList: Array<any>;
vectices: Array<any>;
deformData: Array<any>;
frameIndex: number;
constructor();
apply(time: number, boneSlot: BoneSlot, alpha?: number): void;
}
}
declare module laya.ani.bone {
/**
* ...
* @author
*/
class DrawOrderData {
time: number;
drawOrder: Array<any>;
constructor();
}
}
declare module laya.ani.bone {
class EventData {
name: string;
intValue: number;
floatValue: number;
stringValue: string;
time: number;
constructor();
}
}
declare module laya.ani.bone {
/**
* @private
*/
class IkConstraint {
name: string;
mix: number;
bendDirection: number;
static radDeg: number;
static degRad: number;
constructor(data: IkConstraintData, bones: Array<any>);
apply(): void;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class IkConstraintData {
name: string;
targetBoneName: string;
boneNames: Array<any>;
bendDirection: number;
mix: number;
targetBoneIndex: number;
boneIndexs: Array<any>;
constructor();
}
}
declare module laya.ani.bone {
/**
* @private
* 路径作用器
* 1,生成根据骨骼计算控制点
* 2,根据控制点生成路径,并计算路径上的节点
* 3,根据节点,重新调整骨骼位置
*/
class PathConstraint {
target: BoneSlot;
data: PathConstraintData;
bones: Array<any>;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
constructor(data: PathConstraintData, bones: Array<any>);
/**
* 计算骨骼在路径上的节点
* @param boneSlot
* @param boneMatrixArray
* @param graphics
*/
apply(boneList: Array<any>, graphics: laya.display.Graphics): void;
/**
* 计算顶点的世界坐标
* @param boneSlot
* @param boneList
* @param start
* @param count
* @param worldVertices
* @param offset
*/
computeWorldVertices2(boneSlot: BoneSlot, boneList: Array<any>, start: number, count: number, worldVertices: Array<any>, offset: number): void;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class PathConstraintData {
name: string;
bones: Array<any>;
target: string;
positionMode: string;
spacingMode: string;
rotateMode: string;
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
constructor();
}
}
declare module laya.ani.bone {
/**
* 骨骼动画由Templet,AnimationPlayer,Skeleton三部分组成
*/
class Skeleton extends laya.display.Sprite {
/**
* 创建一个Skeleton对象
* 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)
* 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)
* 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用)
* @param templet 骨骼动画模板
* @param aniMode 动画模式,0:不支持换装,1,2支持换装
*/
constructor(templet?: laya.ani.bone.Templet, aniMode?: number);
/**
* 初始化动画
* 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)
* 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)
* 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用)
* @param templet 模板
* @param aniMode 动画模式,0:不支持换装,1,2支持换装
*/
init(templet: laya.ani.bone.Templet, aniMode?: number): void;
/**
* 得到资源的URL
*/
/**
* 设置动画路径
*/
url: string;
/**
* 通过加载直接创建动画
* @param path 要加载的动画文件路径
* @param complete 加载完成的回调函数
* @param aniMode 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改(内存开销小,计算开销小,不支持换装) 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)2,使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用)
*/
load(path: string, complete?: laya.utils.Handler, aniMode?: number): void;
/**
* 得到当前动画的数量
* @return
*/
getAnimNum(): number;
/**
* 得到指定动画的名字
* @param index 动画的索引
*/
getAniNameByIndex(index: number): string;
/**
* 通过名字得到插槽的引用
* @param name 动画的名字
* @return
*/
getSlotByName(name: string): laya.ani.bone.BoneSlot;
/**
* 通过名字显示一套皮肤
* @param name 皮肤的名字
*/
showSkinByName(name: string): void;
/**
* 通过索引显示一套皮肤
* @param skinIndex 皮肤索引
*/
showSkinByIndex(skinIndex: number): void;
/**
* 设置某插槽的皮肤
* @param slotName 插槽名称
* @param index 插糟皮肤的索引
*/
showSlotSkinByIndex(slotName: string, index: number): void;
/**
* 设置自定义皮肤
* @param name 插糟的名字
* @param texture 自定义的纹理
*/
setSlotSkin(slotName: string, texture: laya.resource.Texture): void;
/**
* 播放动画
* @param nameOrIndex 动画名字或者索引
* @param loop 是否循环播放
* @param force false,如果要播的动画跟上一个相同就不生效,true,强制生效
* @param start 起始时间
* @param end 结束时间
*/
play(nameOrIndex: any, loop: boolean, force?: boolean, start?: number, end?: number): void;
/**
* 停止动画
*/
stop(): void;
/**
* 设置动画播放速率
* @param value 1为标准速率
*/
playbackRate(value: number): void;
/**
* 暂停动画的播放
*/
paused(): void;
/**
* 恢复动画的播放
*/
resume(): void;
/**
* 销毁当前动画
*/
destroy(destroyChild?: boolean): void;
/**
* @private
* 得到帧索引
*/
/**
* @private
* 设置帧索引
*/
index: number;
/**
* 得到总帧数据
*/
total: number;
/**
* 得到播放器的引用
*/
player: laya.ani.AnimationPlayer;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class SkinData {
name: string;
slotArr: Array<any>;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class SkinSlotDisplayData {
name: string;
attachmentName: string;
type: number;
transform: Transform;
width: number;
height: number;
texture: laya.resource.Texture;
bones: Array<any>;
uvs: Array<any>;
weights: Array<any>;
triangles: Array<any>;
vertices: Array<any>;
lengths: Array<any>;
verLen: number;
createTexture(currTexture: laya.resource.Texture): laya.resource.Texture;
destory(): void;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class SlotData {
name: string;
displayArr: Array<any>;
getDisplayByName(name: string): number;
}
}
declare module laya.ani.bone {
/**
* 动画模板类
*/
class Templet extends laya.ani.KeyframesAniTemplet {
static TEMPLET_DICTIONARY: any;
/** 存放原始骨骼信息 */
srcBoneMatrixArr: Array<any>;
/** IK数据 */
ikArr: Array<any>;
/** transform数据 */
tfArr: Array<any>;
/** path数据 */
pathArr: Array<any>;
/** 存放插槽数据的字典 */
boneSlotDic: any;
/** 绑定插槽数据的字典 */
bindBoneBoneSlotDic: any;
/** 存放插糟数据的数组 */
boneSlotArray: Array<any>;
/** 皮肤数据 */
skinDataArray: Array<any>;
/** 皮肤的字典数据 */
skinDic: any;
/** 存放纹理数据 */
subTextureDic: any;
/** 是否解析失败 */
isParseFail: boolean;
/** 数据对应的URL,用来释放资源用 */
url: string;
/** 反转矩阵,有些骨骼动画要反转才能显示 */
yReverseMatrix: laya.maths.Matrix;
/** 渲染顺序动画数据 */
drawOrderAniArr: Array<any>;
/** 事件动画数据 */
eventAniArr: Array<any>;
attachmentNames: Array<any>;
/** 顶点动画数据 */
deformAniArr: Array<any>;
/** 实际显示对象列表,用于销毁用 */
skinSlotDisplayDataArr: Array<any>;
aniSectionDic: any;
mRootBone: Bone;
mBoneArr: Array<any>;
loadAni(url: string): void;
/**
* 解析骨骼动画数据
* @param texture 骨骼动画用到的纹理
* @param skeletonData 骨骼动画信息及纹理分块信息
* @param playbackRate 缓冲的帧率数据(会根据帧率去分帧)
*/
parseData(texture: laya.resource.Texture, skeletonData: ArrayBuffer, playbackRate?: number): void;
/**
* 创建动画
* 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)
* 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)
* 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用)
* @param aniMode 0 动画模式,0:不支持换装,1,2支持换装
* @return
*/
buildArmature(aniMode?: number): Skeleton;
/**
* @private
* 解析动画
* @param data 解析的二进制数据
* @param playbackRate 帧率
*/
parse(data: ArrayBuffer): void;
/**
* 得到指定的纹理
* @param name 纹理的名字
* @return
*/
getTexture(name: string): laya.resource.Texture;
/**
* @private
* 显示指定的皮肤
* @param boneSlotDic 插糟字典的引用
* @param skinIndex 皮肤的索引
*/
showSkinByIndex(boneSlotDic: any, skinIndex: number): boolean;
/**
* 通过皮肤名字得到皮肤索引
* @param skinName 皮肤名称
* @return
*/
getSkinIndexByName(skinName: string): number;
/**
* @private
* 得到缓冲数据
* @param aniIndex 动画索引
* @param frameIndex 帧索引
* @return
*/
getGrahicsDataWithCache(aniIndex: number, frameIndex: number): laya.display.Graphics;
/**
* @private
* 保存缓冲grahpics
* @param aniIndex 动画索引
* @param frameIndex 帧索引
* @param graphics 要保存的数据
*/
setGrahicsDataWithCache(aniIndex: number, frameIndex: number, graphics: laya.display.Graphics): void;
/**
* 释放纹理
*/
destroy(): void;
/**
* 通过索引得动画名称
* @param index
* @return
*/
getAniNameByIndex(index: number): string;
rate: number;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class TfConstraint {
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
constructor(data: TfConstraintData, bones: Array<any>);
apply(): void;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class TfConstraintData {
name: string;
boneIndexs: Array<any>;
targetIndex: number;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
offsetScaleX: number;
offsetScaleY: number;
offsetShearY: number;
}
}
declare module laya.ani.bone {
/**
* @private
*/
class Transform {
skX: number;
skY: number;
scX: number;
scY: number;
x: number;
y: number;
initData(data: any): void;
getMatrix(): laya.maths.Matrix;
}
}
declare module laya.ani {
class GraphicsAni extends laya.display.Graphics {
constructor();
/**
* @private
* 画自定义蒙皮动画
* @param skin
*/
drawSkin(skin: any): void;
}
}
declare module laya.ani {
/**
* @private
*/
class KeyframesAniTemplet extends laya.events.EventDispatcher {
private static _uniqueIDCounter;
static interpolation: Array<any>;
static LAYA_ANIMATION_VISION: string;
protected _anis: Array<any>;
protected _aniMap: any;
protected _publicExtData: ArrayBuffer;
protected _useParent: boolean;
protected unfixedCurrentFrameIndexes: Uint32Array;
protected unfixedCurrentTimes: Float32Array;
protected unfixedKeyframes: Array<any>;
protected unfixedLastAniIndex: number;
protected _loaded: boolean;
protected _aniVersion: string;
_animationDatasCache: any;
loaded: boolean;
constructor();
parse(data: ArrayBuffer): void;
getAnimationCount(): number;
getAnimation(aniIndex: number): any;
getAniDuration(aniIndex: number): number;
getNodes(aniIndex: number): any;
getNodeIndexWithName(aniIndex: number, name: string): number;
getNodeCount(aniIndex: number): number;
getTotalkeyframesLength(aniIndex: number): number;
getPublicExtData(): ArrayBuffer;
getAnimationDataWithCache(key: any, cacheDatas: any, aniIndex: number, frameIndex: number): Float32Array;
setAnimationDataWithCache(key: any, cacheDatas: Array<any>, aniIndex: number, frameIndex: number, data: any): void;
getOriginalData(aniIndex: number, originalData: Float32Array, nodesFrameIndices: Array<any>, frameIndex: number, playCurTime: number): void;
getNodesCurrentFrameIndex(aniIndex: number, playCurTime: number): Uint32Array;
getOriginalDataUnfixedRate(aniIndex: number, originalData: Float32Array, playCurTime: number): void;
}
class AnimationContent {
nodes: Array<any>;
name: string;
playTime: number;
bone3DMap: any;
totalKeyframesLength: number;
}
class AnimationNodeContent {
name: string;
parentIndex: number;
parent: AnimationNodeContent;
keyframeWidth: number;
interpolationMethod: Array<any>;
childs: Array<any>;
keyFrame: Array<any>;
playTime: number;
extenData: ArrayBuffer;
dataOffset: number;
}
class KeyFramesContent {
startTime: number;
duration: number;
data: Float32Array;
dData: Float32Array;
nextData: Float32Array;
}
}
declare module laya.ani.swf {
/**
* <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>
*/
class MovieClip extends laya.display.Sprite {
protected static _ValueList: Array<any>;
protected _start: number;
protected _Pos: number;
protected _data: laya.utils.Byte;
protected _curIndex: number;
protected _preIndex: number;
protected _playIndex: number;
protected _playing: boolean;
protected _ended: boolean;
protected _count: number;
_ids: any;
protected _loadedImage: any;
_idOfSprite: Array<any>;
_parentMovieClip: MovieClip;
_movieClipList: Array<any>;
protected _labels: any;
/**资源根目录。*/
basePath: string;
/** 播放间隔(单位:毫秒)。*/
interval: number;
/**是否循环播放 */
loop: boolean;
/**
* 创建一个 <code>MovieClip</code> 实例。
* @param parentMovieClip 父MovieClip,自己创建时不需要传该参数
*/
constructor(parentMovieClip?: MovieClip);
/**
* <p>销毁此对象。以及销毁引用的Texture</p>
* @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
*/
destroy(destroyChild?: boolean): void;
_setDisplay(value: boolean): void;
updates(): void;
/**当前播放索引。*/
index: number;
/**
* 增加一个标签到index帧上,播放到此index后会派发label事件
* @param label 标签名称
* @param index 索引位置
*/
addLabel(label: string, index: number): void;
/**
* 删除某个标签
* @param label 标签名字,如果label为空,则删除所有Label
*/
removeLabel(label: string): void;
/**
* 帧总数。
*/
count: number;
/**
* 是否在播放中
*/
playing: boolean;
/**
* 停止播放动画。
*/
stop(): void;
/**
* 跳到某帧并停止播放动画。
* @param frame 要跳到的帧
*/
gotoAndStop(index: number): void;
/**
* 播放动画。
* @param index 帧索引。
*/
play(index?: number, loop?: boolean): void;
_setData(data: laya.utils.Byte, start: number): void;
/**
* 资源地址。
*/
url: string;
/**
* 加载资源。
* @param url swf 资源地址。
* @param atlas 是否使用图集资源
* @param atlasPath 图集路径,默认使用与swf同名的图集
*/
load(url: string, atlas?: boolean, atlasPath?: string): void;
}
}
declare module laya.d3.component.animation {
/**
* <code>CameraAnimations</code> 类用于创建摄像机动画组件。
*/
class CameraAnimations extends KeyframeAnimations {
protected _cacheAnimationDatas: Array<any>;
/**变换模式。*/
localMode: boolean;
/**叠加模式。*/
addMode: boolean;
/**
* 创建一个新的 <code>CameraAnimations</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入摄像机动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新摄像机动画组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component.animation {
/**
* <code>KeyframeAnimation</code> 类用于帧动画组件的父类。
*/
class KeyframeAnimations extends laya.d3.component.Component3D {
protected _url: string;
protected _player: laya.ani.AnimationPlayer;
_templet: laya.ani.KeyframesAniTemplet;
/**
* 获取url地址。
* @return 地址。
*/
/**
* 设置url地址。
* @param value 地址。
*/
url: string;
/**
* 获取动画播放器。
* @return 动画播放器。
*/
player: laya.ani.AnimationPlayer;
/**
* 获取播放器帧率。
* @return 播放器帧率。
*/
currentFrameIndex: number;
/**
* 获取播放器的动画索引。
* @return 动画索引。
*/
currentAnimationClipIndex: number;
/**
* 获取播放器当前动画的节点数量。
* @return 节点数量。
*/
NodeCount: number;
/**
* 创建一个新的 <code>KeyframeAnimation</code> 实例。
*/
constructor();
/**
* @private
* 载入组件时执行
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 卸载组件时执行
*/
_unload(owner: laya.d3.core.Sprite3D): void;
/**
* 停止播放当前动画
* @param immediate 是否立即停止
*/
stop(immediate?: boolean): void;
}
}
declare module laya.d3.component.animation {
/**
* <code>RigidAnimations</code> 类用于创建变换动画组件。
*/
class RigidAnimations extends KeyframeAnimations {
/**
* 设置url地址。
* @param value 地址。
*/
url: string;
/**
* 创建一个新的 <code>RigidAnimations</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入摄像机动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新摄像机动画组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 卸载组件时执行。
*/
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component.animation {
/**
* <code>SkinAnimations</code> 类用于创建蒙皮动画组件。
*/
class SkinAnimations extends KeyframeAnimations {
protected static _computeSubMeshAniDatas(subMeshIndex: number, index: Uint8Array, bonesData: Float32Array, animationDatas: Array<any>): void;
protected static _copyBone(index: Uint8Array, bonesData: Float32Array, out: Float32Array): void;
protected _tempCurAnimationData: Array<any>;
protected _tempCurBonesData: Float32Array;
protected _curOriginalData: Float32Array;
protected _extenData: Float32Array;
protected _lastFrameIndex: number;
protected _curMeshAnimationData: Float32Array;
protected _curBonesDatas: Float32Array;
protected _curAnimationDatas: Array<any>;
protected _ownerMesh: laya.d3.core.MeshSprite3D;
/**
* 获取骨骼数据。
* @return 骨骼数据。
*/
curBonesDatas: Float32Array;
/**
* 获取动画数据。
* @return 动画数据。
*/
curAnimationDatas: Array<any>;
/**
* 设置url地址。
* @param value 地址。
*/
url: string;
/**
* 创建一个新的 <code>SkinAnimations</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入蒙皮动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* 预缓存帧动画数据(需确保动画模板、模型模板都已加载完成)。
* @param animationClipIndex 动画索引
* @param meshTemplet 动画模板
*/
preComputeKeyFrames(animationClipIndex: number): void;
/**
* @private
* 更新蒙皮动画组件。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
*在渲染前更新蒙皮动画组件渲染参数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component.animation {
/**
* <code>UVAnimations</code> 类用于创建UV动画组件。
*/
class UVAnimations extends KeyframeAnimations {
/**
* 创建一个新的 <code>UVAnimations</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入UV动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新UV动画组件。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
*在渲染前更新UV动画组件渲染参数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component {
/**
* <code>AttachPoint</code> 类用于创建挂点组件。
*/
class AttachPoint extends Component3D {
protected _attachSkeleton: laya.d3.component.animation.SkinAnimations;
protected _data: Float32Array;
protected _extenData: Float32Array;
/**挂点骨骼的名称。*/
attachBones: Array<any>;
/**挂点骨骼的变换矩阵。*/
matrixs: Array<any>;
/**
* 创建一个新的 <code>AttachPoint</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入挂点组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新挂点组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component {
/**
* <code>Component3D</code> 类用于创建组件的父类。
*/
class Component3D extends laya.events.EventDispatcher implements laya.d3.core.render.IUpdate {
protected static _uniqueIDCounter: number;
protected _id: number;
protected _cachedOwnerLayerMask: number;
protected _cachedOwnerEnable: boolean;
protected _enable: boolean;
protected _owner: laya.d3.core.Sprite3D;
/**是否已执行start函数。*/
started: boolean;
/**
* 获取唯一标识ID。
* @return 唯一标识ID。
*/
id: number;
/**
* 获取所属Sprite3D节点。
* @return 所属Sprite3D节点。
*/
owner: laya.d3.core.Sprite3D;
/**
* 获取是否启用。
* @return 是否启动。
*/
/**
* 设置是否启用。
* @param value 是否启动
*/
enable: boolean;
/**
* 获取是否激活。
* @return 是否激活。
*/
isActive: boolean;
/**
* 获取是否可见。
* @return 是否可见。
*/
isVisible: boolean;
/**
* 创建一个新的 <code>Component3D</code> 实例。
*/
constructor();
protected _onLayerChanged(layer: laya.d3.core.Layer): void;
protected _onEnableChanged(enable: boolean): void;
/**
* @private
* 初始化组件。
* @param owner 所属Sprite3D节点。
*/
_initialize(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 卸载组件。
*/
_uninitialize(): void;
/**
* @private
* 载入组件时执行,可重写此函数。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 在任意第一次更新时执行,可重写此函数。
*/
_start(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 更新组件,可重写此函数。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 更新的最后阶段执行,可重写此函数。
* @param state 渲染状态参数。
*/
_lateUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 渲染前设置组件相关参数,可重写此函数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 渲染的最后阶段执行,可重写此函数。
* @param state 渲染状态参数。
*/
_postRenderUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 卸载组件时执行,可重写此函数。
*/
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component {
/**
* <code>PathFinding</code> 类用于创建寻路。
*/
class PathFind extends Component3D {
_setting: any;
/**寻路网格。*/
grid: any;
/**
* 获取寻路设置。
* @return 寻路设置。
*/
/**
* 设置寻路设置。
* @param value 寻路设置。
*/
setting: any;
/**
* 创建一个新的 <code>PathFinding</code> 实例。
*/
constructor();
/**
* @private
* 初始化载入蒙皮动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* 寻找路径。
* @param startX 开始X。
* @param startZ 开始Z。
* @param endX 结束X。
* @param endZ 结束Z。
* @return 路径。
*/
findPath(startX: number, startZ: number, endX: number, endZ: number): Array<any>;
}
}
declare module laya.d3.component {
/**
* <code>Script</code> 类用于创建脚本的父类。
*/
class Script extends Component3D {
/**
* 创建一个新的 <code>Script</code> 实例。
*/
constructor();
}
}
declare module laya.d3.core {
/**
* <code>BaseCamera</code> 类用于创建摄像机的父类。
*/
class BaseCamera extends laya.d3.core.Sprite3D {
/**渲染模式,延迟光照渲染,暂未开放。*/
static RENDERINGTYPE_DEFERREDLIGHTING: string;
/**渲染模式,前向渲染。*/
static RENDERINGTYPE_FORWARDRENDERING: string;
/**清除标记,固定颜色。*/
static CLEARFLAG_SOLIDCOLOR: number;
/**清除标记,天空。*/
static CLEARFLAG_SKY: number;
/**清除标记,仅深度。*/
static CLEARFLAG_DEPTHONLY: number;
/**清除标记,不清除。*/
static CLEARFLAG_NONE: number;
protected _tempVector3: laya.d3.math.Vector3;
protected _useUserProjectionMatrix: boolean;
protected _viewportExpressedInClipSpace: boolean;
_projectionMatrixModifyID: number;
/**清楚标记。*/
clearFlag: number;
/**摄像机的清除颜色。*/
clearColor: laya.d3.math.Vector4;
/** 可视遮罩图层。 */
cullingMask: number;
/**天空。*/
sky: laya.d3.resource.models.Sky;
/**获取位置。*/
position: laya.d3.math.Vector3;
/**
* 获取上向量。
* @return 上向量。
*/
up: laya.d3.math.Vector3;
/**
* 获取前向量。
* @return 前向量。
*/
forward: laya.d3.math.Vector3;
/**
* 获取右向量。
* @return 右向量。
*/
right: laya.d3.math.Vector3;
/**
* 获取渲染场景的渲染目标。
* @return 渲染场景的渲染目标。
*/
/**
* 设置渲染场景的渲染目标。
* @param value 渲染场景的渲染目标。
*/
renderTarget: laya.d3.resource.RenderTexture;
/**
* 获取渲染目标的尺寸
* @return 渲染目标的尺寸。
*/
/**
* 设置渲染目标的尺寸
* @param value 渲染目标的尺寸。
*/
renderTargetSize: laya.d3.utils.Size;
/**
* 获取视野。
* @return 视野。
*/
/**
* 设置视野。
* @param value 视野。
*/
fieldOfView: number;
/**
* 获取近裁面。
* @return 近裁面。
*/
/**
* 设置近裁面。
* @param value 近裁面。
*/
nearPlane: number;
/**
* 获取远裁面。
* @return 远裁面。
*/
/**
* 设置远裁面。
* @param value 远裁面。
*/
farPlane: number;
/**
* 获取是否正交投影矩阵。
* @return 是否正交投影矩阵。
*/
/**
* 设置是否正交投影矩阵。
* @param 是否正交投影矩阵。
*/
orthographicProjection: boolean;
/**
* 获取正交投影垂直矩阵尺寸。
* @return 正交投影垂直矩阵尺寸。
*/
/**
* 设置正交投影垂直矩阵尺寸。
* @param 正交投影垂直矩阵尺寸。
*/
orthographicVerticalSize: number;
renderingOrder: number;
/**
* 创建一个 <code>BaseCamera</code> 实例。
* @param fieldOfView 视野。
* @param nearPlane 近裁面。
* @param farPlane 远裁面。
*/
constructor(nearPlane?: number, farPlane?: number);
/**
* 通过RenderingOrder属性对摄像机机型排序。
*/
_sortCamerasByRenderingOrder(): void;
protected _calculateProjectionMatrix(): void;
/**
* 增加可视图层。
* @param layer 图层。
*/
addLayer(layer: laya.d3.core.Layer): void;
/**
* 移除可视图层。
* @param layer 图层。
*/
removeLayer(layer: laya.d3.core.Layer): void;
/**
* 增加所有图层。
*/
addAllLayers(): void;
/**
* 移除所有图层。
*/
removeAllLayers(): void;
ResetProjectionMatrix(): void;
destroy(destroyChild?: boolean): void;
/**
* 向前移动。
* @param distance 移动距离。
*/
moveForward(distance: number): void;
/**
* 向右移动。
* @param distance 移动距离。
*/
moveRight(distance: number): void;
/**
* 向上移动。
* @param distance 移动距离。
*/
moveVertical(distance: number): void;
protected _addSelfRenderObjects(): void;
protected _clearSelfRenderObjects(): void;
}
}
declare module laya.d3.core {
/**
* <code>Camera</code> 类用于创建摄像机。
*/
class Camera extends BaseCamera {
private static _tempVector2;
/**
* 获取横纵比。
* @return 横纵比。
*/
/**
* 设置横纵比。
* @param value 横纵比。
*/
aspectRatio: number;
/**
* 获取屏幕空间的视口。
* @return 屏幕空间的视口。
*/
/**
* 设置屏幕空间的视口。
* @param 屏幕空间的视口。
*/
viewport: laya.d3.math.Viewport;
/**
* 获取裁剪空间的视口。
* @return 裁剪空间的视口。
*/
/**
* 设置裁剪空间的视口。
* @return 裁剪空间的视口。
*/
normalizedViewport: laya.d3.math.Viewport;
needViewport: boolean;
/**
* 获取视图矩阵。
* @return 视图矩阵。
*/
viewMatrix: laya.d3.math.Matrix4x4;
/**获取投影矩阵。*/
/**设置投影矩阵。*/
projectionMatrix: laya.d3.math.Matrix4x4;
/**
* 获取视图投影矩阵。
* @return 视图投影矩阵。
*/
projectionViewMatrix: laya.d3.math.Matrix4x4;
/**
* 创建一个 <code>Camera</code> 实例。
* @param viewport 视口。
* @param fieldOfView 视野。
* @param aspectRatio 横纵比。
* @param nearPlane 近裁面。
* @param farPlane 远裁面。
*/
constructor(aspectRatio?: number, nearPlane?: number, farPlane?: number);
protected _calculateProjectionMatrix(): void;
/**
* 计算从屏幕空间生成的射线。
* @param point 屏幕空间的位置位置。
* @return out 输出射线。
*/
viewportPointToRay(point: laya.d3.math.Vector2, out: laya.d3.math.Ray): void;
/**
* 计算从裁切空间生成的射线。
* @param point 裁切空间的位置。。
* @return out 输出射线。
*/
normalizedViewportPointToRay(point: laya.d3.math.Vector2, out: laya.d3.math.Ray): void;
/**
* 计算从世界空间准换三维坐标到屏幕空间。
* @param position 世界空间的位置。
* @return out 输出位置。
*/
worldToViewportPoint(position: laya.d3.math.Vector3, out: laya.d3.math.Vector3): void;
/**
* 计算从世界空间准换三维坐标到裁切空间。
* @param position 世界空间的位置。
* @return out 输出位置。
*/
worldToNormalizedViewportPoint(position: laya.d3.math.Vector3, out: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core.glitter {
/**
* <code>Glitter</code> 类用于创建闪光。
*/
class Glitter extends laya.d3.core.Sprite3D {
/**
* 获取闪光模板。
* @return 闪光模板。
*/
templet: laya.d3.resource.tempelet.GlitterTemplet;
/**
* 获取刀光渲染器。
* @return 刀光渲染器。
*/
glitterRender: laya.d3.core.GlitterRender;
/**
* 创建一个 <code>Glitter</code> 实例。
* @param settings 配置信息。
*/
constructor(setting: GlitterSetting);
protected _clearSelfRenderObjects(): void;
protected _addSelfRenderObjects(): void;
/**
* @private
* 更新闪光。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* 通过位置添加刀光。
* @param position0 位置0。
* @param position1 位置1。
*/
addGlitterByPositions(position0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3): void;
/**
* 通过位置和速度添加刀光。
* @param position0 位置0。
* @param velocity0 速度0。
* @param position1 位置1。
* @param velocity1 速度1。
*/
addGlitterByPositionsVelocitys(position0: laya.d3.math.Vector3, velocity0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3, velocity1: laya.d3.math.Vector3): void;
dispose(): void;
}
}
declare module laya.d3.core.glitter {
/**
* <code>Glitter</code> 类用于创建闪光配置信息。
*/
class GlitterSetting {
/** 纹理。 */
texturePath: string;
/** 声明周期。 */
lifeTime: number;
/** 最小分段距离。 */
minSegmentDistance: number;
/** 最小插值距离。 */
minInterpDistance: number;
/** 最大插值数量。 */
maxSlerpCount: number;
/** 颜色。 */
color: laya.d3.math.Vector4;
/** 最大段数。 */
maxSegments: number;
/**
* 创建一个 <code>GlitterSettings</code> 实例。
*/
constructor();
}
}
declare module laya.d3.core.glitter {
/**
* <code>SplineCurvePosition</code> 类用于通过顶点创建闪光插值。
*/
class SplineCurvePosition extends SplineCurvePositionVelocity {
/**
* 创建一个 <code>SplineCurvePosition</code> 实例。
*/
constructor();
/**
* 初始化插值所需信息。
* @param lastPosition0 顶点0的上次位置。
* @param position0 顶点0的位置。
* @param lastPosition1 顶点1的上次位置。
* @param position1 顶点1的位置。
*/
Init(lastPosition0: laya.d3.math.Vector3, position0: laya.d3.math.Vector3, lastPosition1: laya.d3.math.Vector3, position1: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core.glitter {
/**
* <code>SplineCurvePositionVelocity</code> 类用于通过顶点和速度创建闪光插值。
*/
class SplineCurvePositionVelocity {
protected _tempVector30: laya.d3.math.Vector3;
protected _tempVector31: laya.d3.math.Vector3;
protected _tempVector32: laya.d3.math.Vector3;
protected _a: laya.d3.math.Vector3;
protected _b: laya.d3.math.Vector3;
protected _c: laya.d3.math.Vector3;
protected _d: laya.d3.math.Vector3;
/**
* 创建一个 <code>SplineCurvePositionVelocity</code> 实例。
*/
constructor();
/**
* 初始化插值所需信息。
* @param position0 顶点0的位置。
* @param velocity0 顶点0的速度。
* @param position1 顶点1的位置。
* @param velocity1 顶点1的速度。
*/
Init(position0: laya.d3.math.Vector3, velocity0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3, velocity1: laya.d3.math.Vector3): void;
/**
* 初始化插值所需信息。
* @param t 插值比例
* @param out 输出结果
*/
Slerp(t: number, out: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core {
/**
* ...
* @author ...
*/
class GlitterRender extends laya.d3.core.render.BaseRender {
constructor(owner: laya.d3.core.glitter.Glitter);
protected _calculateBoundingBox(): void;
protected _calculateBoundingSphere(): void;
}
}
declare module laya.d3.core {
/**
* <code>HeightMap</code> 类用于实现高度图数据。
*/
class HeightMap {
private static _tempRay;
/**
* 从网格精灵生成高度图。
* @param meshSprite 网格精灵。
* @param width 高度图宽度。
* @param height 高度图高度。
* @param outCellSize 输出 单元尺寸。
*/
static creatFromMesh(mesh: laya.d3.resource.models.Mesh, width: number, height: number, outCellSize: laya.d3.math.Vector2): HeightMap;
/**
* 从图片生成高度图。
* @param image 图片。
* @param maxHeight 最小高度。
* @param maxHeight 最大高度。
*/
static createFromImage(texture: any, minHeight: number, maxHeight: number): HeightMap;
/**
* 获取宽度。
* @return value 宽度。
*/
width: number;
/**
* 获取高度。
* @return value 高度。
*/
height: number;
/**
* 最大高度。
* @return value 最大高度。
*/
maxHeight: number;
/**
* 最大高度。
* @return value 最大高度。
*/
minHeight: number;
/**
* 创建一个 <code>HeightMap</code> 实例。
* @param width 宽度。
* @param height 高度。
* @param minHeight 最大高度。
* @param maxHeight 最大高度。
*/
constructor(width: number, height: number, minHeight: number, maxHeight: number);
/**
* 获取高度。
* @param row 列数。
* @param col 行数。
* @return 高度。
*/
getHeight(row: number, col: number): number;
}
}
declare module laya.d3.core {
/**
* <code>Layer</code> 类用于实现遮罩层。
*/
class Layer {
protected static _uniqueIDCounter: number;
protected static _layerList: Array<any>;
protected static _activeLayers: number;
protected static _visibleLayers: number;
/**当前相机遮罩。*/
static _currentCameraCullingMask: number;
/**当前创建精灵所属遮罩层。*/
static currentCreationLayer: Layer;
/**
*获取Layer激活层。
* @return 激活层。
*/
/**
* 设置Layer激活层。
* @param value 激活层。
*/
static activeLayers: number;
/**
*获取Layer显示层。
* @return 显示层。
*/
/**
*设置Layer显示层。
* @param value 显示层。
*/
static visibleLayers: number;
/**
* @private
*/
static __init__(): void;
/**
*通过编号获取蒙版。
* @param number 编号。
* @return 蒙版。
*/
static getLayerByNumber(number: number): Layer;
/**
*通过蒙版值获取蒙版。
* @param mask 编号。
* @return 蒙版。
*/
static getLayerByMask(mask: number): Layer;
/**
*通过蒙版值获取蒙版。
* @param name 名字。
* @return 蒙版。
*/
static getLayerByName(name: string): Layer;
/**
*通过蒙版值获取蒙版是否激活。
* @param mask 蒙版值。
* @return 是否激活。
*/
static isActive(mask: number): boolean;
/**
*通过蒙版值获取蒙版是否显示。
* @param mask 蒙版值。
* @return 是否显示。
*/
static isVisible(mask: number): boolean;
protected _id: number;
protected _number: number;
protected _mask: number;
protected _active: boolean;
protected _visible: boolean;
/**名字。*/
name: string;
/**
*获取编号。
* @return 编号。
*/
number: number;
/**
*获取蒙版值。
* @return 蒙版值。
*/
mask: number;
/**
*获取是否激活。
* @return 是否激活。
*/
/**
*设置是否激活。
* @param value 是否激活。
*/
active: boolean;
/**
*获取是否显示。
* @return 是否显示。
*/
/**
*设置是否显示。
* @param value 是否显示。
*/
visible: boolean;
/**
* 创建一个 <code>Layer</code> 实例。
*/
constructor();
}
}
declare module laya.d3.core.light {
/**
* <code>DirectionLight</code> 类用于创建平行光。
*/
class DirectionLight extends L