import { TWEEN } from '@uino/base-thing';
/**
* @typedef {object} AABBResult
* 表示一个轴对齐包围盒(AABB),用于描述空间中的包围范围。
* @property {Array<number>} center 盒子的中心。
* @property {Array<number>} halfSize 盒子的半边长。
*/
/**
* @typedef {object} OBBResult
* 表示一个有向包围盒(OBB),可用于描述带方向的空间边界。
* @property {Array<number>} center 盒子的中心。
* @property {Array<number>} halfSize 盒子的半边长。
* @property {Array<number>} rotation 盒子的旋转,单位为弧度(四元数)。
*/
/**
* 节点用户数据类型。
* @enum {string}
* @readonly
* @private
*/
const NodeUserDataType = {
/**
* 节点的包围盒继承类型。
* @private
*/
BoundingBoxInheritType: '_BoundingBoxInheritType_',
};
/**
* @typedef {object} MouseEventData
* @property {string} type 事件类型,小写形式。
* @property {boolean} altKey 检查是否按下 alt 键。
* @property {boolean} ctrlKey 检查是否按下 control 键。
* @property {boolean} shiftKey 检查是否按下 shift 键。
* @property {number} deltaX 鼠标光标的 x 方向位移(以像素为单位)。
* @property {number} deltaY 鼠标光标的 y 方向位移(以像素为单位)。
* @property {number} x 鼠标光标的 x 坐标(以像素为单位)。
* @property {number} y 鼠标光标的 y 坐标(以像素为单位)。
* @property {THING.BaseObject} object 选中的对象(可能为 null)。
* @property {Array<number>} pickedPosition 选中位置的世界坐标。
* @property {Array<number>} normal 世界坐标中的法线方向。
* @public
*/
/**
* 相机模式
* @enum {string}
* @public
*/
const CameraMode = {
/**
* 地图模式
*/
Map: 'Map',
/**
* 普通模式
*/
Normal: 'Normal'
}
/**
* 事件类型
* @enum {string}
* @readonly
* @public
*/
const EventType = {
// #region 系统
/**
* 当应用程序退出时。
*/
AppQuit: 'AppQuit',
/**
* 当应用程序被设置为当前时。
*/
AppEnter: 'AppEnter',
/**
* 当应用程序被设置为非当前时。
*/
AppLeave: 'AppLeave',
/**
* 当更新时。
*/
Update: 'Update',
/**
* 当应用程序获得焦点时。
*/
FocusIn: 'FocusIn',
/**
* 当应用程序失去焦点时。
*/
FocusOut: 'FocusOut',
/**
* 当应用程序调整大小时。
*/
Resize: 'Resize',
/**
* 当鼠标进入对象时。
*/
MouseEnter: 'MouseEnter',
/**
* 当鼠标离开对象时。
*/
MouseLeave: 'MouseLeave',
/**
* 当鼠标移动时。
*/
MouseMove: 'MouseMove',
/**
* 当鼠标按钮抬起时。
*/
MouseUp: 'MouseUp',
/**
* 当鼠标按钮按下时。
*/
MouseDown: 'MouseDown',
/**
* 当鼠标滚轮滚动时。
*/
Wheel: 'Wheel',
/**
* 当触摸结束时。
*/
Click: 'Click',
/**
* 当双击触摸结束时。
*/
DBLClick: 'DBLClick',
/**
* 当按键按下时。
*/
KeyDown: 'KeyDown',
/**
* 当按键抬起时。
*/
KeyUp: 'KeyUp',
/**
* 当按键正在按下时。
*/
KeyPress: 'KeyPress',
/**
* 当将文件拖放到应用程序容器中时。
*/
DropFiles: 'DropFiles',
/**
* 当时间线改变时。
*/
TimelineChange: 'TimelineChange',
/**
* 当进入状态时。
* @private
*/
EnterState: 'EnterState',
AfterEnterState: 'AfterEnterState',
/**
* 当离开状态时。
* @private
*/
LeaveState: 'LeaveState',
AfterLeaveState: 'AfterLeaveState',
// #endregion
// #region 层级
/**
* 当第一次为层级组件注册层级动作时
*/
RegisterLevelAction: 'RegisterLevelAction',
/**
* 在离开对象层级之前。
*/
BeforeLeaveLevel: 'BeforeLeaveLevel',
/**
* 离开对象层级。
*/
LeaveLevel: 'LeaveLevel',
/**
* 离开对象层级。
*/
LeaveObjectLevel: 'LeaveObjectLevel',
/**
* 离开对象层级之后。
*/
AfterLeaveLevel: 'AfterLeaveLevel',
/**
* 在进入对象层级之前。
*/
BeforeEnterLevel: 'BeforeEnterLevel',
/**
* 进入对象层级。
*/
EnterLevel: 'EnterLevel',
/**
* 进入对象层级。
*/
EnterObjectLevel: 'EnterObjectLevel',
/**
* 进入对象层级之后。
*/
AfterEnterLevel: 'AfterEnterLevel',
/**
* 完成对象层级进入。
*/
CompleteEnterLevel: 'CompleteEnterLevel',
/**
* 离开对象层级完成。
*/
ObjectLevelComplete: 'ObjectLevelComplete',
// #endregion
// #region 碰撞体
/**
* 当进入(碰撞)对象的碰撞体时(在离开碰撞体之前只触发一次)。
*/
ColliderEnter: 'ColliderEnter',
/**
* 当离开对象的碰撞体时。
*/
ColliderLeave: 'ColliderLeave',
// #endregion
// #region 对象
/**
* 当创建对象事件时(同步)。
*/
CreateSync: 'CreateSync',
/**
* 当创建对象事件时。
*/
Create: 'Create',
/**
* 当加载对象资源事件时。
*/
Load: 'Load',
/**
* 当加载对象资源时。
*/
Progress: 'Progress',
/**
* 当加载对象资源失败时。
*/
Error: 'Error',
/**
* 在销毁对象事件之前。
* @private
*/
BeforeDestroy: 'Destroy',
/**
* 当销毁对象事件时。
*/
Destroy: 'Destroy',
/**
* 在销毁对象事件之后。
* @private
*/
AfterDestroy: 'Destroy',
/**
* 在将子对象添加到对象之前。
*/
BeforeAddChild: 'BeforeAddChild',
/**
* 在将子对象添加到对象之后。
*/
AfterAddChild: 'AfterAddChild',
/**
* 在从对象中移除子对象之前。
*/
BeforeRemoveChild: 'BeforeRemoveChild',
/**
* 在从对象中移除子对象之后。
*/
AfterRemoveChild: 'AfterRemoveChild',
/**
* 当对象开始飞行时。
*/
StartFlying: 'StartFlying',
/**
* 当对象正在飞行时。
*/
Flying: 'Flying',
/**
* 当对象停止飞行时。
*/
StopFlying: 'StopFlying',
/**
* 当对象完成飞行时。
*/
CompleteFlying: 'CompleteFlying',
/**
* 当对象的活动属性改变时。
*/
ActiveChange: 'ActiveChange',
/**
* 当对象的可见属性改变时。
*/
VisibleChange: 'VisibleChange',
/**
* 当对象停止播放动画时。
*/
StopAnimation: 'StopAnimation',
/**
* 当对象开始播放动画时。
*/
PlayAnimation: 'PlayAnimation',
/**
* 当对象改变属性时。
*/
ChangeAttributes: 'ChangeAttributes',
// #endregion
// #region 相机
/**
* 当相机启用视口时。
*/
EnableViewport: 'EnableViewport',
/**
* 当相机准备开始改变时。
*/
CameraChangePreStart: 'CameraChangePreStart',
/**
* 当相机开始改变时。
*/
CameraChangeStart: 'CameraChangeStart',
/**
* 当相机正在改变时。
*/
CameraChange: 'CameraChange',
/**
* 当相机准备结束改变时。
*/
CameraChangePreEnd: 'CameraChangePreEnd',
/**
* 当相机结束改变时。
*/
CameraChangeEnd: 'CameraChangeEnd',
/**
* 当相机开始捕获屏幕时。
* @private
*/
BeforeCameraCapture: 'BeforeCameraCapture',
/**
* 当相机完成捕获屏幕时。
* @private
*/
AfterCameraCapture: 'AfterCameraCapture',
/**
* 在场景加载器中加载解析器之前
*/
BeforeLoadResolvers: 'BeforeLoadResolvers',
// 通知物体被选择
Select: 'select',
// 通知物体被取消选择
Deselect: 'deselect',
// 通知物体选择集合更新
SelectionChange: 'selectionchange',
// renderSetting中的灯光改变 给地球用
RenderSettingsLightChange: 'RenderSettingsLightChange'
// #endregion
};
/**
* @callback LerpCallback
* @param {number} t 当前插值进度值 [0, 1]
* @returns {number} 插值结果
*/
/**
* @typedef {object} Linear
* @property {LerpCallback} None 无插值
* @public
*/
/**
* @typedef {object} Quadratic
* @property {LerpCallback} In 二次插值 - 进入
* @property {LerpCallback} Out 二次插值 - 离开
* @property {LerpCallback} InOut 二次插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Cubic
* @property {LerpCallback} In 三次插值 - 进入
* @property {LerpCallback} Out 三次插值 - 离开
* @property {LerpCallback} InOut 三次插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Quartic
* @property {LerpCallback} In 四次插值 - 进入
* @property {LerpCallback} Out 四次插值 - 离开
* @property {LerpCallback} InOut 四次插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Quintic
* @property {LerpCallback} In 五次插值 - 进入
* @property {LerpCallback} Out 五次插值 - 离开
* @property {LerpCallback} InOut 五次插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Sinusoidal
* @property {LerpCallback} In 正弦插值 - 进入
* @property {LerpCallback} Out 正弦插值 - 离开
* @property {LerpCallback} InOut 正弦插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Exponential
* @property {LerpCallback} In 指数插值 - 进入
* @property {LerpCallback} Out 指数插值 - 离开
* @property {LerpCallback} InOut 指数插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Circular
* @property {LerpCallback} In 圆形插值 - 进入
* @property {LerpCallback} Out 圆形插值 - 离开
* @property {LerpCallback} InOut 圆形插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Elastic
* @property {LerpCallback} In 弹性插值 - 进入
* @property {LerpCallback} Out 弹性插值 - 离开
* @property {LerpCallback} InOut 弹性插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Back
* @property {LerpCallback} In 回弹插值 - 进入
* @property {LerpCallback} Out 回弹插值 - 离开
* @property {LerpCallback} InOut 回弹插值 - 进入和离开
* @public
*/
/**
* @typedef {object} Bounce
* @property {LerpCallback} In 弹跳插值 - 进入
* @property {LerpCallback} Out 弹跳插值 - 离开
* @property {LerpCallback} InOut 弹跳插值 - 进入和离开
* @public
*/
/**
* @typedef {object} LerpType
* 插值类型。用于描述插值行为的配置对象。
* @see http://sole.github.io/tween.js/examples/03_graphs.html
* @property {object} Linear 线性插值
* @property {object} Quadratic 二次插值
* @property {object} Cubic 三次插值
* @property {object} Quartic 四次插值
* @property {object} Quintic 五次插值
* @property {object} Sinusoidal 正弦插值
* @property {object} Exponential 指数插值
* @property {object} Circular 圆形插值
* @property {object} Elastic 弹性插值
* @property {object} Back 回弹插值
* @property {object} Bounce 弹跳插值
* @public
*/
const LerpType = {
Linear: {
/**
* @function
* @description 无插值
*/
None: TWEEN.Easing.Linear.None,
},
Quadratic: {
/**
* @function
* @description 二次插值 - 进入
*/
In: TWEEN.Easing.Quadratic.In,
/**
* @function
* @description 二次插值 - 离开
*/
Out: TWEEN.Easing.Quadratic.Out,
/**
* @function
* @description 二次插值 - 进入和离开
*/
InOut: TWEEN.Easing.Quadratic.InOut,
},
Cubic: {
/**
* @function
* @description 三次插值 - 进入
*/
In: TWEEN.Easing.Cubic.In,
/**
* @function
* @description 三次插值 - 离开
*/
Out: TWEEN.Easing.Cubic.Out,
/**
* @function
* @description 三次插值 - 进入和离开
*/
InOut: TWEEN.Easing.Cubic.InOut,
},
Quartic: {
/**
* @function
* @description 四次插值 - 进入
*/
In: TWEEN.Easing.Quartic.In,
/**
* @function
* @description 四次插值 - 离开
*/
Out: TWEEN.Easing.Quartic.Out,
/**
* @function
* @description 四次插值 - 进入和离开
*/
InOut: TWEEN.Easing.Quartic.InOut,
},
Quintic: {
/**
* @function
* @description 五次插值 - 进入
*/
In: TWEEN.Easing.Quintic.In,
/**
* @function
* @description 五次插值 - 离开
*/
Out: TWEEN.Easing.Quintic.Out,
/**
* @function
* @description 五次插值 - 进入和离开
*/
InOut: TWEEN.Easing.Quintic.InOut,
},
Sinusoidal: {
/**
* @function
* @description 正弦插值 - 进入
*/
In: TWEEN.Easing.Sinusoidal.In,
/**
* @function
* @description 正弦插值 - 离开
*/
Out: TWEEN.Easing.Sinusoidal.Out,
/**
* @function
* @description 正弦插值 - 进入和离开
*/
InOut: TWEEN.Easing.Sinusoidal.InOut,
},
Exponential: {
/**
* @function
* @description 指数插值 - 进入
*/
In: TWEEN.Easing.Exponential.In,
/**
* @function
* @description 指数插值 - 离开
*/
Out: TWEEN.Easing.Exponential.Out,
/**
* @function
* @description 指数插值 - 进入和离开
*/
InOut: TWEEN.Easing.Exponential.InOut,
},
Circular: {
/**
* @function
* @description 圆形插值 - 进入
*/
In: TWEEN.Easing.Circular.In,
/**
* @function
* @description 圆形插值 - 离开
*/
Out: TWEEN.Easing.Circular.Out,
/**
* @function
* @description 圆形插值 - 进入和离开
*/
InOut: TWEEN.Easing.Circular.InOut,
},
Elastic: {
/**
* @function
* @description 弹性插值 - 进入
*/
In: TWEEN.Easing.Elastic.In,
/**
* @function
* @description 弹性插值 - 离开
*/
Out: TWEEN.Easing.Elastic.Out,
/**
* @function
* @description 弹性插值 - 进入和离开
*/
InOut: TWEEN.Easing.Elastic.InOut,
},
Back: {
/**
* @function
* @description 回弹插值 - 进入
*/
In: TWEEN.Easing.Back.In,
/**
* @function
* @description 回弹插值 - 离开
*/
Out: TWEEN.Easing.Back.Out,
/**
* @function
* @description 回弹插值 - 进入和离开
*/
InOut: TWEEN.Easing.Back.InOut,
},
Bounce: {
/**
* @function
* @description 弹跳插值 - 进入
*/
In: TWEEN.Easing.Bounce.In,
/**
* @function
* @description 弹跳插值 - 离开
*/
Out: TWEEN.Easing.Bounce.Out,
/**
* @function
* @description 弹跳插值 - 进入和离开
*/
InOut: TWEEN.Easing.Bounce.InOut,
},
};
/**
* 循环类型。
* @enum {string}
* @readonly
* @public
*/
const LoopType = {
/**
* 值在重复循环模式下变化。
*/
Repeat: 'Repeat',
/**
* 值在乒乓循环模式下变化。
*/
PingPong: 'PingPong',
};
/**
* 鼠标按钮类型。
* @enum {string}
* @readonly
* @public
*/
const MouseButtonType = {
/**
* 无效的鼠标按钮类型。
*/
None: 'None',
/**
* 鼠标左键类型。
*/
Left: 'Left',
/**
* 鼠标中键类型。
*/
Middle: 'Middle',
/**
* 鼠标右键类型。
*/
Right: 'Right'
};
/**
* 空间类型。
* @enum {string}
* @readonly
* @public
*/
const SpaceType = {
/**
* 基于自身空间。
*/
Self: 'Self',
/**
* 基于局部空间。
*/
Local: 'Local',
/**
* 基于世界空间。
*/
World: 'World'
};
/**
* 按键代码。
* @enum {string}
* @readonly
* @public
*/
const CodeType = {
/** ESC键 */
Escape: "Escape",
/** 数字键1 */
Digit1: "Digit1",
/** 数字键2 */
Digit2: "Digit2",
/** 数字键3 */
Digit3: "Digit3",
/** 数字键4 */
Digit4: "Digit4",
/** 数字键5 */
Digit5: "Digit5",
/** 数字键6 */
Digit6: "Digit6",
/** 数字键7 */
Digit7: "Digit7",
/** 数字键8 */
Digit8: "Digit8",
/** 数字键9 */
Digit9: "Digit9",
/** 数字键0 */
Digit0: "Digit0",
/** 减号 */
Minus: "Minus",
/** 等号 */
Equal: "Equal",
/** 退格键 */
Backspace: "Backspace",
/** Tab键 */
Tab: "Tab",
/** Q键 */
KeyQ: "KeyQ",
/** W键 */
KeyW: "KeyW",
/** E键 */
KeyE: "KeyE",
/** R键 */
KeyR: "KeyR",
/** T键 */
KeyT: "KeyT",
/** Y键 */
KeyY: "KeyY",
/** U键 */
KeyU: "KeyU",
/** I键 */
KeyI: "KeyI",
/** O键 */
KeyO: "KeyO",
/** P键 */
KeyP: "KeyP",
/** 左方括号 */
BracketLeft: "BracketLeft",
/** 右方括号 */
BracketRight: "BracketRight",
/** 回车键 */
Enter: "Enter",
/** 左控制键 */
ControlLeft: "ControlLeft",
/** A键 */
KeyA: "KeyA",
/** S键 */
KeyS: "KeyS",
/** D键 */
KeyD: "KeyD",
/** F键 */
KeyF: "KeyF",
/** G键 */
KeyG: "KeyG",
/** H键 */
KeyH: "KeyH",
/** J键 */
KeyJ: "KeyJ",
/** K键 */
KeyK: "KeyK",
/** L键 */
KeyL: "KeyL",
/** 分号 */
Semicolon: "Semicolon",
/** 引号 */
Quote: "Quote",
/** 反引号 */
Backquote: "Backquote",
/** 左Shift键 */
ShiftLeft: "ShiftLeft",
/** 反斜杠 */
Backslash: "Backslash",
/** Z键 */
KeyZ: "KeyZ",
/** X键 */
KeyX: "KeyX",
/** C键 */
KeyC: "KeyC",
/** V键 */
KeyV: "KeyV",
/** B键 */
KeyB: "KeyB",
/** N键 */
KeyN: "KeyN",
/** M键 */
KeyM: "KeyM",
/** 逗号 */
Comma: "Comma",
/** 句点 */
Period: "Period",
/** 斜杠 */
Slash: "Slash",
/** 右Shift键 */
ShiftRight: "ShiftRight",
/** 小键盘乘法 */
NumpadMultiply: "NumpadMultiply",
/** 左Alt键 */
AltLeft: "AltLeft",
/** 空格键 */
Space: "Space",
/** 大写锁定 */
CapsLock: "CapsLock",
/** F1键 */
F1: "F1",
/** F2键 */
F2: "F2",
/** F3键 */
F3: "F3",
/** F4键 */
F4: "F4",
/** F5键 */
F5: "F5",
/** F6键 */
F6: "F6",
/** F7键 */
F7: "F7",
/** F8键 */
F8: "F8",
/** F9键 */
F9: "F9",
/** F10键 */
F10: "F10",
/** 暂停键 */
Pause: "Pause",
/** 滚动锁定 */
ScrollLock: "ScrollLock",
/** 小键盘7 */
Numpad7: "Numpad7",
/** 小键盘8 */
Numpad8: "Numpad8",
/** 小键盘9 */
Numpad9: "Numpad9",
/** 小键盘减法 */
NumpadSubtract: "NumpadSubtract",
/** 小键盘4 */
Numpad4: "Numpad4",
/** 小键盘5 */
Numpad5: "Numpad5",
/** 小键盘6 */
Numpad6: "Numpad6",
/** 小键盘加法 */
NumpadAdd: "NumpadAdd",
/** 小键盘1 */
Numpad1: "Numpad1",
/** 小键盘2 */
Numpad2: "Numpad2",
/** 小键盘3 */
Numpad3: "Numpad3",
/** 小键盘0 */
Numpad0: "Numpad0",
/** 小键盘小数点 */
NumpadDecimal: "NumpadDecimal",
/** F11键 */
F11: "F11",
/** F12键 */
F12: "F12",
/** F13键 */
F13: "F13",
/** F14键 */
F14: "F14",
/** F15键 */
F15: "F15",
/** F16键 */
F16: "F16",
/** F17键 */
F17: "F17",
/** F18键 */
F18: "F18",
/** F19键 */
F19: "F19",
/** F20键 */
F20: "F20",
/** F21键 */
F21: "F21",
/** F22键 */
F22: "F22",
/** F23键 */
F23: "F23",
/** F24键 */
F24: "F24",
/** 小键盘逗号 */
NumpadComma: "NumpadComma",
/** 小键盘回车 */
NumpadEnter: "NumpadEnter",
/** 右控制键 */
ControlRight: "ControlRight",
/** 浏览器主页 */
BrowserHome: "BrowserHome",
/** 小键盘除法 */
NumpadDivide: "NumpadDivide",
/** 打印屏幕 */
PrintScreen: "PrintScreen",
/** 右Alt键 */
AltRight: "AltRight",
/** 数字锁定 */
NumLock: "NumLock",
/** Home键 */
Home: "Home",
/** 上箭头 */
ArrowUp: "ArrowUp",
/** Page Up键 */
PageUp: "PageUp",
/** 左箭头 */
ArrowLeft: "ArrowLeft",
/** 右箭头 */
ArrowRight: "ArrowRight",
/** End键 */
End: "End",
/** 下箭头 */
ArrowDown: "ArrowDown",
/** Page Down键 */
PageDown: "PageDown",
/** 插入键 */
Insert: "Insert",
/** 删除键 */
Delete: "Delete"
};
const KeyCodeType = {
/** 退格键 */
Backspace: 8,
/** Tab键 */
Tab: 9,
/** 回车键 */
Enter: 13,
/** Shift键 */
Shift: 16,
/** Ctrl键 */
Ctrl: 17,
/** Alt键 */
Alt: 18,
/** 暂停键 */
Pause: 19,
/** 大写锁定键 */
Capslock: 20,
/** ESC键 */
Escape: 27,
/** 空格键 */
Space: 32,
/** Page Up键 */
PageUp: 33,
/** Page Down键 */
PageDown: 34,
/** End键 */
End: 35,
/** Home键 */
Home: 36,
/** 左箭头 */
Left: 37,
/** 上箭头 */
Up: 38,
/** 右箭头 */
Right: 39,
/** 下箭头 */
Down: 40,
/** 插入键 */
Insert: 45,
/** 删除键 */
Delete: 46,
/** 数字键0 */
Key0: 48,
/** 数字键1 */
Key1: 49,
/** 数字键2 */
Key2: 50,
/** 数字键3 */
Key3: 51,
/** 数字键4 */
Key4: 52,
/** 数字键5 */
Key5: 53,
/** 数字键6 */
Key6: 54,
/** 数字键7 */
Key7: 55,
/** 数字键8 */
Key8: 56,
/** 数字键9 */
Key9: 57,
/** A键 */
A: 65,
/** B键 */
B: 66,
/** C键 */
C: 67,
/** D键 */
D: 68,
/** E键 */
E: 69,
/** F键 */
F: 70,
/** G键 */
G: 71,
/** H键 */
H: 72,
/** I键 */
I: 73,
/** J键 */
J: 74,
/** K键 */
K: 75,
/** L键 */
L: 76,
/** M键 */
M: 77,
/** N键 */
N: 78,
/** O键 */
O: 79,
/** P键 */
P: 80,
/** Q键 */
Q: 81,
/** R键 */
R: 82,
/** S键 */
S: 83,
/** T键 */
T: 84,
/** U键 */
U: 85,
/** V键 */
V: 86,
/** W键 */
W: 87,
/** X键 */
X: 88,
/** Y键 */
Y: 89,
/** Z键 */
Z: 90,
/** 选择键 */
Select: 93,
/** 小键盘0 */
Numpad0: 96,
/** 小键盘1 */
Numpad1: 97,
/** 小键盘2 */
Numpad2: 98,
/** 小键盘3 */
Numpad3: 99,
/** 小键盘4 */
Numpad4: 100,
/** 小键盘5 */
Numpad5: 101,
/** 小键盘6 */
Numpad6: 102,
/** 小键盘7 */
Numpad7: 103,
/** 小键盘8 */
Numpad8: 104,
/** 小键盘9 */
Numpad9: 105,
/** 乘法键 */
Multiply: 106,
/** 加法键 */
Add: 107,
/** 减法键 */
Subtract: 109,
/** 小数点键 */
Decimal: 110,
/** 除法键 */
Divide: 111,
/** F1键 */
F1: 112,
/** F2键 */
F2: 113,
/** F3键 */
F3: 114,
/** F4键 */
F4: 115,
/** F5键 */
F5: 116,
/** F6键 */
F6: 117,
/** F7键 */
F7: 118,
/** F8键 */
F8: 119,
/** F9键 */
F9: 120,
/** F10键 */
F10: 121,
/** F11键 */
F11: 122,
/** F12键 */
F12: 123,
/** 数字锁定键 */
Numlock: 144,
/** 滚动锁定键 */
Scrolllock: 145,
/** 分号键 */
Semicolon: 186,
/** 等号键 */
EqualSign: 187,
/** 逗号键 */
Comma: 188,
/** 减号键 */
Dash: 189,
/** 句点键 */
Period: 190,
/** 斜杠键 */
ForwardSlash: 191,
/** 反引号键 */
GraveAccent: 192,
/** 左方括号 */
OpenBracket: 219,
/** 反斜杠 */
BackSlash: 220,
/** 右方括号 */
CloseBraket: 221,
/** 单引号 */
SingleQuote: 222,
};
/**
* 旋转顺序类型。
* @enum {string}
* @readonly
* @private
*/
const RotationOrdersType = {
/**
* XYZ
* @private
*/
XYZ: 'XYZ',
/**
* YZX
* @private
*/
YZX: 'YZX',
/**
* ZXY
* @private
*/
ZXY: 'ZXY',
/**
* XZY
* @private
*/
XZY: 'XZY',
/**
* YXZ
* @private
*/
YXZ: 'YXZ',
/**
* ZYX
* @private
*/
ZYX: 'ZYX'
};
/**
* 坐标轴类型。
* @enum {string}
* @readonly
* @public
*/
const AxisType = {
/** X轴 */
X: 'X',
/** Y轴 */
Y: 'Y',
/** Z轴 */
Z: 'Z',
};
/**
* 投影类型。
* @enum {string}
* @readonly
* @public
*/
const ProjectionType = {
/** 正交投影 */
Orthographic: 'Orthographic',
/** 透视投影 */
Perspective: 'Perspective',
};
/**
* 视图模式。
* @enum {string}
* @readonly
* @public
*/
const ViewMode = {
/** 顶视图 */
Top: 'Top',
/** 底视图 */
Bottom: 'Bottom',
/** 左视图 */
Left: 'Left',
/** 右视图 */
Right: 'Right',
/** 前视图 */
Front: 'Front',
/** 后视图 */
Back: 'Back',
};
/**
* 视图模式类型。
* @deprecated 2.7
* @private
*/
const ViewModeType = ViewMode;
/**
* 对齐类型。
* @enum {string}
* @readonly
* @public
*/
const AlignType = {
/**
* 居中对齐。
* @private
*/
Center: 'Center',
/**
* 左对齐。
* @private
*/
Left: 'Left',
/**
* 顶部对齐。
* @private
*/
Top: 'Top',
/**
* 左上对齐。
* @private
*/
TopLeft: 'TopLeft',
/**
* 右上对齐。
* @private
*/
TopRight: 'TopRight',
/**
* 右对齐。
* @private
*/
Right: 'Right',
/**
* 底部对齐。
* @private
*/
Bottom: 'Bottom',
/**
* 左下对齐。
* @private
*/
BottomLeft: 'BottomLeft',
/**
* 右下对齐。
* @private
*/
BottomRight: 'BottomRight',
}
/**
* 面渲染类型.
* @enum {string}
* @readonly
* @public
*/
const SideType = {
/** 只绘制正面 */
Front: 'Front',
/** 只绘制背面 */
Back: 'Back',
/** 绘制正面和背面 */
Double: 'Double',
};
/**
* 渲染类型。
* @enum {string}
* @readonly
* @public
*/
const RenderType = {
/** 精灵 */
Sprite: 'Sprite',
/** 平面 */
Plane: 'Plane',
};
/**
* 轴心点模式。
* @enum {string}
* @readonly
* @public
*/
const PivotMode = {
/** 自动 */
Auto: 'Auto',
/** 位置 */
Location: 'Location',
};
/**
* 轴心点模式类型。
* @deprecated 2.7
* @private
*/
const PivotModeType = PivotMode;
/**
* 拾取类型。
* @enum {string}
* @readonly
*/
const PickType = {
/** 射线投射 */
Raycaster: 'Raycaster',
/** GPU */
GPU: 'GPU',
GPUFast: 'GPUFast',
};
/**
* 拾取模式。
* @enum {string}
* @readonly
*/
const PickMode = {
/** 网格 */
Mesh: 'Mesh',
/** 包围盒 */
BoundingBox: 'BoundingBox',
};
/**
* 雾的类型。
* @enum {string}
* @readonly
* @private
*/
const FogType = {
/**
* 线性雾
* </br>以线性方式增加雾在相机距离一定距离处的密度。
* @private
*/
Linear: 'Linear',
/**
* 指数雾
* </br>使用指数平方雾。
* @private
*/
Exp2: 'Exp2',
};
/**
* 动画播放状态
* @enum {string}
* @readonly
* @public
*/
const PlayState = {
/**
* 准备就绪。
*/
Ready: 'Ready',
/**
* 正在播放。
*/
Playing: 'Playing',
/**
* 已暂停。
*/
Paused: 'Paused',
/**
* 已停止。
*/
Stopped: 'Stopped',
/**
* 已完成。
*/
Finished: 'Finished',
};
/**
* 播放状态类型。
* @deprecated 2.7
* @private
*/
const PlayStateType = PlayState;
/**
* 动画方向类型。
* @enum {string}
* @readonly
* @public
*/
const AnimationDirectionType = {
/**
* 正常模式播放。
*/
Normal: 'Normal',
/**
* 反向模式播放。
*/
Reverse: 'Reverse',
};
/**
* 继承类型。
* @enum {string}
* @readonly
* @public
*/
const InheritType = {
/**
* 对象将正常处理动作(处理后传递给子对象)。
*/
Normal: 'Normal',
/**
* 对象将处理动作但不传递给子对象。
*/
Break: 'Break',
/**
* 对象将跳过动作但继续传递给子对象。
*/
Jump: 'Jump',
/**
* 对象将中断动作且不传递给子对象。
*/
Stop: 'Stop',
}
const InheritActionType = InheritType;
/**
* 包围盒显示方案
* @enum {string}
* @readonly
* @public
*/
const BoxHelperModeType = {
/** All 物体以及所有子物体都计算到一个包围盒中(会显示一个最大的包围盒) */
All: 'All',
/** Root 只显示物体自身的包围盒,忽略所有子物体 */
Root: 'Root',
/** Bodies 显示物体以及所有子物体自身的包围盒(会显示多个包围盒) */
Bodies: 'Bodies',
}
/**
* 混合类型。
* @enum {string}
* @readonly
* @public
*/
const BlendingType = {
/**
* 禁用混合。
*/
No: 'NoBlending',
/**
* 正常混合。
* 颜色(RGB) = (源颜色 * 1) + (目标颜色 * (1 - 源Alpha))
* 颜色(A) = (源Alpha * 1) + (目标Alpha * (1 - 源Alpha))
*/
Normal: 'NormalBlending',
/**
* 加法混合。
* 颜色(RGBA) = (源颜色 * 1) + (目标颜色 * 1)。
*/
Additive: 'AdditiveBlending',
/**
* 减法混合。
* 颜色(RGB) = 目标颜色 * (1 - 源Alpha)
* 颜色(A) = 目标Alpha * 1
*/
Subtractive: 'SubtractiveBlending',
/**
* 乘法混合。
* 颜色(RGB) = 目标颜色 * 源颜色
* 颜色(A) = 目标Alpha * 源Alpha
*/
Multiply: 'MultiplyBlending',
};
/**
* UV模式。
* @enum {string}
* @readonly
* @public
*/
const UVMode = {
/**
* 以平铺方式重复填充UV。
*/
Tile: 'Tile',
/**
* 以拉伸图像模式填充UV。
*/
Stretch: 'Stretch',
/**
* 自定义UV。
*/
Custom: 'Custom',
};
/**
* UV模式类型。
* @deprecated 2.7
* @private
*/
const UVModeType = UVMode;
/**
* 图像槽类型。
* @enum {string}
* @readonly
* @public
*/
const ImageSlotType = {
/** 贴图 */
Map: 'Map',
/** 环境贴图 */
EnvMap: 'EnvMap',
/** 透明度贴图 */
AlphaMap: 'AlphaMap',
/** 自发光贴图 */
EmissiveMap: 'EmissiveMap',
/** 法线贴图 */
NormalMap: 'NormalMap',
/** 颜色映射 */
ColorMapping: 'ColorMapping',
/** 环境光遮蔽贴图 */
AOMap: 'AOMap',
};
/**
* 纹理元素编码类型。
* @enum {string}
* @readonly
* @public
*/
const TexelEncodingType = {
/** 线性编码 */
LINEAR: "LINEAR",
/** sRGB编码 */
SRGB: "SRGB",
/** RGBE编码 */
RGBE: "RGBE",
/** RGBM7编码 */
RGBM7: "RGBM7",
/** RGBM16编码 */
RGBM16: "RGBM16",
/** RGBD编码 */
RGBD: "RGBD",
/** 伽马编码 */
GAMMA: "GAMMA"
}
/**
* 图像颜色格式类型。
* @enum {string}
* @readonly
* @public
*/
const ImageColorFormat = {
/**
* 红、绿、蓝(RGB)颜色格式。
*/
RGB: 'RGB',
/**
* 透明度、红、绿、蓝(RGBA)颜色格式。
*/
RGBA: 'RGBA',
/** BC7_M6_OPAQUE_ONLY压缩格式 */
BC7_M6_OPAQUE_ONLY: 'BC7_M6_OPAQUE_ONLY',
};
/**
* 图像压缩类型。
* @enum {string}
* @readonly
* @private
*/
const ImageCompressionType = {
/**
* ETC1
* @private
*/
ETC1: 'ETC1',
/**
* ETC2
* @private
*/
ETC2: 'ETC2',
/**
* BC1
* @private
*/
BC1: 'BC1',
/**
* BC3
* @private
*/
BC3: 'BC3',
/**
* BC4
* @private
*/
BC4: 'BC4',
/**
* BC5
* @private
*/
BC5: 'BC5',
/**
* BC7_M6_OPAQUE_ONLY
* @private
*/
BC7_M6_OPAQUE_ONLY: 'BC7_M6_OPAQUE_ONLY',
/**
* BC7_M5
* @private
*/
BC7_M5: 'BC7_M5',
/**
* PVRTC1_4_RGB
* @private
*/
PVRTC1_4_RGB: 'PVRTC1_4_RGB',
/**
* PVRTC1_4_RGBA
* @private
*/
PVRTC1_4_RGBA: 'PVRTC1_4_RGBA',
/**
* ASTC_4x4
* @private
*/
ASTC_4x4: 'ASTC_4x4',
/**
* ATC_RGB
* @private
*/
ATC_RGB: 'ATC_RGB',
/**
* ATC_RGBA_INTERPOLATED_ALPHA
* @private
*/
ATC_RGBA_INTERPOLATED_ALPHA: 'ATC_RGBA_INTERPOLATED_ALPHA',
/**
* RGBA32
* @private
*/
RGBA32: 'RGBA32',
/**
* RGB565
* @private
*/
RGB565: 'RGB565',
/**
* BGR565
* @private
*/
BGR565: 'BGR565',
/**
* RGBA4444
* @private
*/
RGBA4444: 'RGBA4444',
};
/**
* 图像填充类型。
* @enum {string}
* @readonly
* @public
*/
const ImageWrapType = {
/**
* 图像以重复模式填充。
*/
Repeat: 'Repeat',
/**
* 图像使用边缘重复。
*/
ClampToEdge: 'ClampToEdge',
/**
* 图像以重复/镜像一一对应模式填充。
*/
MirroredRepeat: 'MirroredRepeat',
};
/**
* 图像映射类型。
* @enum {string}
* @readonly
* @public
*/
const ImageMappingType = {
/**
* 图像纹理正常映射。
*/
UV: 'UV',
/**
* 立方体反射
* @private
*/
CubeReflection: 'CubeReflection',
/**
* 立方体折射
* @private
*/
CubeRefraction: 'CubeRefraction',
/**
* 使用单一环境贴图显示图像,如天空盒等。
*/
EquirectangularReflection: 'EquirectangularReflection',
/**
* 等矩形折射
* @private
*/
EquirectangularRefraction: 'EquirectangularRefraction',
};
/**
* 图像过滤类型。
* @enum {string}
* @readonly
* @public
*/
const ImageFilterType = {
/**
* 使用最接近指定纹理坐标的纹理元素的值。
*/
NearestFilter: 'NearestFilter',
/**
* 选择与被纹理化像素大小最接近的mipmap,并使用NearestFilter。
*/
NearestMipmapNearestFilter: 'NearestMipmapNearestFilter',
/**
* 选择与被纹理化像素大小最接近的两个mipmap,并使用NearestFilter。
*/
NearestMipmapLinearFilter: 'NearestMipmapLinearFilter',
/**
* 使用最接近指定纹理坐标的四个纹理元素的加权平均值。
*/
LinearFilter: 'LinearFilter',
/**
* 选择与被纹理化像素大小最接近的mipmap,并使用LinearFilter。
*/
LinearMipmapNearestFilter: 'LinearMipmapNearestFilter',
/**
* 选择与被纹理化像素大小最接近的两个mipmap,并使用LinearFilter。
*/
LinearMipmapLinearFilter: 'LinearMipmapLinearFilter'
};
/**
* 阴影质量类型。
* @enum {number}
* @readonly
* @public
*/
const ShadowQualityType = {
/**
* 512x512 阴影纹理大小。
*/
Low: 512,
/**
* 1024x1024 阴影纹理大小。
*/
Medium: 1024,
/**
* 2048x2048 阴影纹理大小。
*/
High: 2048,
/**
* 4096x4096 阴影纹理大小。
*/
Ultra: 4096
};
/**
* 光球模式类型。
* @enum {string}
* @readonly
* @private
*/
const LightSphereModeType = {
/**
* 在运行时每帧获取绑定对象的包围盒。
* @private
*/
Dynamic: 'Dynamic',
/**
* 在绑定时(仅一次)获取绑定对象的包围盒。
* @private
*/
Static: 'Static'
};
/**
* 动作队列类型。
* @enum {string}
* @readonly
* @public
*/
const ActionQueueType = {
/**
* 进入对象层级的动作。
*/
EnterLevel: 'EnterLevel',
};
/**
* 碰撞体类型。
* @enum {string}
* @readonly
* @public
*/
const ColliderType = {
/**
* 使用包围盒检查碰撞。
*/
Box: 'Box',
/**
* 使用包围球检查碰撞。
*/
Sphere: 'Sphere',
};
/**
* 资源类型。
* @enum {string}
* @readonly
* @private
*/
const ResourceType = {
/**
* 自动检测资源类型。
* @private
*/
AutoDetect: 'AutoDetect',
/**
* 非加密资源类型。
* @private
*/
NonEncrypted: 'NonEncrypted',
/**
* 加密资源类型。
* @private
*/
Encrypted: 'Encrypted',
};
/**
* 场景资源类型。
* @enum {string}
* @readonly
* @private
*/
const SceneResourceType = {
/**
* 场景资源是树形格式的对象。
* @private
*/
Object: 'Object',
/**
* 场景资源是布局格式的对象。
* @private
*/
Layout: 'Layout',
};
/**
* 空资源类型。
* @enum {string}
* @readonly
* @private
*/
const Empty = {
/**
* 空图像纹理资源
* @private
*/
ImageTexture: 'EmptyImageTexture',
/**
* 空纹理资源
* @private
*/
Texture: 'EmptyTexture',
};
/**
* 字体粗细。
* @enum {string}
* @readonly
*/
const FontWeight = {
/**
* 正常。
* @private
*/
Normal: 'Normal',
/**
* 粗体。
* @private
*/
Bold: 'Bold',
/**
* 更粗。
* @private
*/
Bolder: 'Bolder',
/**
* 更细。
* @private
*/
Lighter: 'Lighter',
}
/**
* 关系方向类型。
* @enum {string}
* @readonly
* @public
*/
const RelationshipDirection = {
/** 出 源 -> 目标 */
Out: 'Out',
/** 入 目标 -> 源 */
In: "In",
/** 双向 */
InOut: 'InOut',
/** 无 */
None: 'None',
}
/**
* 过滤结果类型。
* @enum {string}
* @readonly
*/
const FilterResultType = {
Pass: 'Pass',
Fail: 'Fail',
Ignore: 'Ignore'
};
/**
* 动作类型。
* @enum {string}
* @readonly
* @private
*/
const ActionType = {
/**
* 创建对象。
* @private
*/
CreateObject: 'CreateObject',
/**
* 相机飞行到。
* @private
*/
CameraFlyTo: 'CameraFlyTo',
/**
* 对象设置颜色。
* @private
*/
ObjectSetColor: 'ObjectSetColor',
/**
* 对象设置属性。
* @private
*/
ObjectSetProperty: 'ObjectSetProperty',
}
/**
* 图像编码类型。
* @enum {string}
* @readonly
* @public
*/
const ImageEncodingType = {
/** 线性编码 */
'LINEAR': 'LINEAR',
/** sRGB编码 */
'SRGB': 'SRGB',
/** RGBE编码 */
'RGBE': 'RGBE',
/** RGBM7编码 */
'RGBM7': 'RGBM7',
/** RGBM16编码 */
'RGBM16': 'RGBM16',
/** RGBD编码 */
'RGBD': 'RGBD',
/** 伽玛编码 */
'GAMMA': 'GAMMA'
};
/**
* 挤压形状的可见方向
* @enum {string}
* @readonly
* @public
*/
const ExtrudeShapeDirection = {
/** 前 */
Top: 'Top',
/** 后 */
Bottom: 'Bottom',
/** 两者 */
Both: 'Both',
/** 无 */
None: 'None',
};
/**
* 变换类型
* @enum {number}
* @readonly
* @public
*/
const Transform = {
/** 旋转变换 */
Rotation: 1 << 0,
/** 缩放变换 */
Scale: 1 << 1
};
/**
* 缩放模式
* @enum {string}
* @readonly
* @public
*/
const ScaleMode = {
/**
* 宽高乘系数作为缩放
*/
ScaleFactor: 'ScaleFactor',
/**
* 宽高比乘系数作为缩放
*/
ScaleRatio: 'ScaleRatio',
/**
* 固定缩放 (宽大于高,固定宽,修改高保持宽高比。反之固定高,修改宽保持宽高比)
*/
ScaleFixed: 'ScaleFixed'
}
const StyleAttributeKeys = {
SpecularFactor: 'SpecularFactor',
FresnelPower: 'FresnelPower',
FresnelInverse: 'FresnelInverse',
ColorMappingIntensity: 'ColorMappingIntensity',
AOMapIntensity: 'AOMapIntensity',
EnvMapIntensity: 'EnvMapIntensity',
Lights: 'Lights',
VerticalEmissive: 'VerticalEmissive',
AlphaTest: 'AlphaTest',
LightingGroup: 'LightingGroup'
}
/**
* 精确模式
* @enum {string}
* @readonly
* @public
*/
const AccuracyMode = {
/**
* 基础模式
*/
Basic: 'Basic',
/**
* 精确模式
*/
Accurate: 'Accurate'
}
export {
Empty,
CameraMode,
NodeUserDataType,
EventType,
LerpType,
LoopType,
MouseButtonType,
SpaceType,
CodeType,
KeyCodeType,
RotationOrdersType,
AxisType,
ProjectionType,
ViewMode,
ViewModeType,
AlignType,
SideType,
RenderType,
PivotMode,
PivotModeType,
PickType,
PickMode,
FogType,
PlayState,
PlayStateType,
AnimationDirectionType,
InheritType,
InheritActionType,
BoxHelperModeType,
BlendingType,
UVMode,
UVModeType,
ImageSlotType,
TexelEncodingType,
ImageColorFormat,
ImageCompressionType,
ImageWrapType,
ImageMappingType,
ImageFilterType,
ShadowQualityType,
LightSphereModeType,
ActionQueueType,
ColliderType,
ResourceType,
SceneResourceType,
FontWeight,
RelationshipDirection,
FilterResultType,
ActionType,
ImageEncodingType,
ExtrudeShapeDirection,
Transform,
ScaleMode,
StyleAttributeKeys,
AccuracyMode
}