feat(All):Initial

This commit is contained in:
2025-10-04 23:36:07 +08:00
commit 2b4e5d2668
1321 changed files with 415958 additions and 0 deletions
@@ -0,0 +1,157 @@
import Signal from 'signals';
interface SignalObj<T = any> {
add(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void;
addOnce(listener: (...params: T[]) => void, listenerContext?: any, priority?: Number): void;
dispatch(...params: T[]): void;
remove(listener: (...params: T[]) => void, context?: any): void;
removeAll(): void;
setActive(active: boolean): void;
halt(): void;
dispose(): void;
has(listener: (...params: T[]) => void, context?: any): boolean;
active: boolean;
}
interface SignalRegister {
[s: string]: SignalObj;
}
/**
* App
* @path lib/core/App
*/
const appSignals: SignalRegister = {
// xr
enterXR: new Signal(),
offerXR: new Signal(),
leaveXR: new Signal(),
sceneCleared: new Signal(),
transformModeChanged: new Signal(),
snapChanged: new Signal(),
spaceChanged: new Signal(),
rendererCreated: new Signal(),
rendererUpdated: new Signal(),
rendererConfigUpdate: new Signal(),
rendererDetectKTX2Support: new Signal(),
sceneBackgroundChanged: new Signal(),
sceneEnvironmentChanged: new Signal(),
sceneFogSettingsChanged: new Signal(),
// 雨效果配置参数变更
sceneRainSettingsChanged: new Signal(),
// 雪效果配置参数变更
sceneSnowSettingsChanged: new Signal(),
sceneGraphChanged: new Signal(),
sceneRendered: new Signal(),
sceneResize: new Signal(),
cameraAdded: new Signal(),
cameraRemoved: new Signal(),
cameraChanged: new Signal(),
cameraReset: new Signal(),
geometryChanged: new Signal(),
objectSelected: new Signal(),
objectFocused: new Signal(),
objectFocusByUuid: new Signal(),
// 锁定模型
objectLocked: new Signal(),
// 解锁模型
objectUnlocked: new Signal(),
objectAdded: new Signal(),
objectChanged: new Signal(),
objectRemoved: new Signal(),
materialAdded: new Signal(),
materialChanged: new Signal(),
materialRemoved: new Signal(),
materialCurrentSlotChange: new Signal(),
scriptAdded: new Signal(),
scriptChanged: new Signal(),
scriptRemoved: new Signal(),
showGridChanged: new Signal(),
showHelpersChanged: new Signal(),
historyChanged: new Signal(),
// 场景主相机变更
viewportCameraChanged: new Signal(),
viewportShadingChanged: new Signal(),
intersectionsDetected: new Signal(),
pathTracerUpdated: new Signal(),
// 实例化ShaderMaterial类型内置材质
instantiateShaderMaterial: new Signal(),
// 场景加载完成
sceneLoadComplete: new Signal(),
// 添加日志
addLog: new Signal(),
// 删除日志
deleteLog: new Signal(),
// 清空日志
clearLogs: new Signal(),
// 动画更新渲染
animationMixerUpdate: new Signal(),
// 动画轨道时间变化(游标拖动)
timelineTimeChanged: new Signal(),
// 动画轨道行变化(添加/删除)
timelineRowChanged: new Signal(),
};
/**
* Viewer
* @path lib/core/Viewer
*/
const ViewerSignals: SignalRegister = {
// viewer 初始化完毕,即构造函数执行完毕
viewerInitCompleted: new Signal(),
// 插件注册
pluginInstall: new Signal(),
// 插件卸载
pluginUninstall: new Signal(),
IFCPropertiesVisible: new Signal(),
// 启用/禁用后处理
effectEnabledChange: new Signal(),
// 后处理通道配置变更
effectPassConfigChange: new Signal(),
// 粒子body使用的Object3D变更
particleBodyChanged: new Signal(),
// 粒子系统添加emitter后触发
particleSystemAddEmitter: new Signal(),
// 将emitter添加到粒子系统:fromJSON时触发
emitterAdd2ParticleSystem: new Signal(),
}
/**
* 图纸 相关
*/
const drawingSignals: SignalRegister = {
drawingMarkDone: new Signal(), // 新增/编辑 图纸标记完成回调
cadViewerResize: new Signal(), // 图纸面板移动
}
export const SignalsRegister: SignalRegister = {
...appSignals,
...ViewerSignals,
...drawingSignals,
};
// signal注册器
export const SignalsRegisterFn = (newSignals:Array<string>) => {
newSignals.forEach(key => {
SignalsRegister[key] = new Signal();
})
}