Appearance
目录结构
/electron 桌面应用主进程相关文件
- main/index.ts:Electron 主进程入口文件,负责创建窗口和加载页面。
- preload/index.ts:预加载脚本文件,在渲染进程中注入安全可用的 Electron API。
- preload/index.d.ts:预加载脚本的 TypeScript 类型声明文件,提供类型提示。
/out
- 执行 Electron 编译和打包后的资源都在这个文件夹里面
shell
pnpm dev:electron
pnpm build:win
pnpm build:mac
pnpm build:linux/scripts
- check-icon.js:打包前检查应用图标是否存在、尺寸是否符合要求的校验脚本。
- copy-takram-atmosphere.mjs:将
@takram/three-atmosphere预计算 LUT 复制到public/takram/atmosphere,供 WebGIS 大气渲染运行时加载。
electron.vite.config.ts
- Electron 打包与开发环境配置文件,用于配置主进程、预加载脚本和渲染进程的构建入口、插件、别名等。
/src 入口文件
- App.vue:应用程序的根组件,包含路由视图和代码禁止调试判断。
- main.ts:应用程序入口文件,负责初始化 Vue 应用、挂载路由、挂载全局状态 pinia、注入全局组件、注入全局方法、注入全局自定义指令。
- vite-env.d.ts:Vite 环境变量与模块的类型声明。
/src/assets/* 静态资源文件
- iconFont:阿里妈妈图标库文件
- image:项目中使用的图片
- previewIcon:模型预览图片
- textures:地面贴图
- video:示例视频资源
/src/components/* 公共组件文件
- Loading:loading 组件和自定义指令 loading
- RoamPrompt:漫游路径文字提示
- index.ts:组件全局导出文件
/src/config/* 全局常量配置
- constant:常量文件
- defaultDragList:左侧拖拽默认列表(模型、几何体、光源、特效、着色器、自定义元素等默认数据)
- echartsConfig:echarts 各类图表默认数据
- propertyConfig:模型属性可编辑值、几何体模型参数边界值配置、颜色选择器默认配置、材质类型、渲染器色调映射、场景阴影、场景背景、场景环境光、地面贴图、雾配置
/src/enums/* 全局枚举
- indexDb:indexedDB 枚举
- enum:全局枚举
- event:交互事件、执行时机、动作类型等枚举
/src/layouts/* 全局布局文件
- RenderView:渲染视图
/src/router/* 路由文件
- index:路由配置
/src/store/* 全局状态
- indexDbStore:indexedDb 全局状态
- sceneEditStore:场景内容 Api 全局状态
- pinia:pinia 注册
/src/style/* 全局样式
- element:Element Plus 主题覆盖样式
- iconFont:阿里妈妈图标库样式类
- index:入口文件
- reset:样式重置
/src/types/* 全局 TypeScript 类
- global.d:扩展 Vue 类型定义
- indexDbTypes:indexedDB ts 类
- renderModelTypes:全局 ts 类
- rightPanelTypes:全局 ts 类
- eventTypes:交互事件配置相关类型
- three-css3d.d:扩展 three.js CSS3DRenderer 类型定义
- three-utils.d:扩展 three.js SkeletonUtils 类型定义
/src/utils/* 全局函数类方法
- directive:自定义全局指令
- globalComponent:全局组组件创建方法
- globalProperties:全局方法创建函数
- indexedDB:indexedDB 方法封装
- monaco:monaco-editor 全局配置
- renderScene:three.js API 操作方法封装
- stripSerializedSceneTilesBranch:剔除 3D 瓦片数据方法
- utils:全局工具函数
- webSocket:自定义封装的 socket 方法
/src/utils/elementalEffects/* 元素粒子特效模块
- effectUtils:元素特效公共构建与参数解析工具
- gpuParticles:GPU 粒子渲染基础
- cloudEffect:体积云特效
- fireEffect:火焰特效
- fireRingEffect:火环特效
- fireworkEffect:烟花特效
- fountainEffect:喷泉特效
- smokeEffect:烟雾特效
- tornadoEffect:龙卷风特效
- shaders:GLSL 着色器片段(blackbody、common、noise)
/src/utils/groundModules/* 程序化地面模块
- createBeachGround:沙滩地面
- createLawnGround:草地地面
- createRockGround:岩石地面
- createStoneGround:石质地面
/src/utils/twinElements/* 孪生元素(自定义 DOM 元素)模块
- builders:孪生元素三维网格构建方法
- schema:孪生元素类型标签、默认参数与 options 合并
/src/utils/historyModules/* 历史操作记录模块
- command:历史记录公共类
- index:历史记录操作方法
- transformCommand:变换控制器操作记录
- multiTransformCommand:多对象变换操作记录
- modelCommand:模型新增删除操作记录
/src/utils/sceneModules/* three.js 场景操作模块
- animationModules:动画模块
- cameraRoamingGisModules:相机漫游模块(WebGIS 版本)
- cameraRoamingModules:相机漫游模块
- cloudsModules:WebGIS 云层、大气透视与 3D 瓦片地图模块
- createEffectsModules:粒子特效模块
- createImageModules:图片/Sprite 模型创建模块
- createShaderModules:着色器模块
- createTextModules:创建文本模块
- createVideoModules:创建视频模块
- css3DRendererModules:自定义 DOM(echarts)节点模块
- customElModules:孪生元素(自定义元素)拖入与场景创建模块
- cursorMultipleModules:多选场景内容模块
- ezTreeModules:ezTree 模块
- eventModules:自定义事件脚本模块
- lightModules:灯光模块
- measureModules:测量单位模块
- modelActionModules:模型行为模块
- pointerLockGisModules:第一人称模式模块(WebGIS 版本)
- pointerLockModules:第一人称模式模块
- sceneModules:场景模块
- socketEventModules:socket 任务模块
- transformControlsModules:变换控制器模块
- transformGisModules:变换控制器模块(WebGIS 版本)
- weatherEffectsModules:天气地面模块
/src/utils/webWorker/* webWorker 多线程方法模块(处理大型场景的异步导出和压缩)
- exportWorker:导出多线程
- importWorker:导入多线程
- index:高级 JSON 数据压缩优化工具、Worker 导出 ZIP 文件解析工具、Web Worker 导入方法、Web Worker 导出方法
/src/views/* 页面
- sceneEdit:场景编辑页面
- scenePreview:场景预览页面
/src/views/sceneEdit/layouts/* 场景编辑页面布局
- LeftDragContent:左侧拖拽区模块
- OperationControls:操作控制器
- RightPanelContent:右侧操作面板区
- SceneHeader:头部内容模块
- SceneStatistics:场景内容统计
- index:布局模块导出入口
/src/views/sceneEdit/layouts/RightPanelContent/* 右侧操作面板区
- HelpDescribe:帮助
- InteractiveEvent:自定义交互事件
- SceneContent:场景内容
- ProjectConfig:项目配置
- SocketTask:socket 任务
- enum:面板 Tab 等枚举
- index:入口文件
/src/views/sceneEdit/layouts/RightPanelContent/InteractiveEvent/* 交互事件
- AddEditEventDialog:新增/编辑事件弹窗
- ConditionDialog:条件配置弹窗
/src/views/sceneEdit/layouts/RightPanelContent/SceneContent/modules/* 场景内容属性面板
- AnimationsProperty:模型动画属性
- AxisAnimationProperty:轴动画属性
- CameraRoaming:相机漫游属性
- CustomElProperty:孪生元素属性
- EchartsProperty:ECharts 图表属性
- EffectProperty:粒子特效属性
- EzTreeProperty:ezTree 属性
- GeometryProperty:几何体属性
- ImageProperty:图片模型属性
- LightProperty:灯光属性
- MaterialProperty:材质属性
- MeshProperty:网格/模型属性
- ReplaceMeshDialog:替换模型弹窗
- TextProperty:文本属性
- VideoProperty:视频属性
- index:属性面板模块导出入口
/src/views/sceneEdit/layouts/RightPanelContent/SocketTask/* socket 任务
- AddSocketTaskDialog:新增 socket 任务弹窗