using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using MuHua; /// /// 核心模块,实现业务逻辑 /// public class ModuleCore : Module { #region 资产模块 /// 板片资源管理模块 public ModuleAssets AssetsPlate; /// 预设板片资产 public ModuleAssets AssetsPlatePresets; /// 轮廓渲染资源模块 public ModuleAssets AssetsOutline; #endregion #region 页面模块 /// 不会被销毁的全局唯一页面模块 (UIDocument) public ModuleUIPage GlobalPage; /// 当前的主要页面模块 (UIDocument) public ModuleUIPage CurrentPage; /// 预设模板窗口 (回调Action) public ModuleUIWindow PresetsPlateWindow; #endregion #region 视图模块 /// 设计视图相机模块 public ModuleViewCamera ViewCameraDesign; /// 板片烘焙相机视图 public ModuleViewCamera ViewCameraBaking; #endregion #region 输入模块 /// 设计UI输入模块 public ModuleUIInput UIInputDesign; /// 烘焙UI输入模块 public ModuleUIInput UIInputBaking; #endregion #region 转换模块 /// 板片预设数据(DataPlatePresets) 转换 板片数据(DataPlate) public ModuleBuilder PlatePresetsToPlate; /// 板片数据(DataPlate) 转换 多边形数据(DataPolygon) public ModuleBuilder PlateToPolygon; /// 插入点(DataInsertPoint) 转换 点(DataPoint) public ModuleBuilder InsertPointToPoint; #endregion #region 可视模块 /// 设计可视化内容生成模块 public ModuleVisual VisualDesign; /// 烘焙可视化内容生成模块 public ModuleVisual VisualBaking; /// 连接可视化内容生成模块 public ModuleVisual VisualConnector; #endregion #region 查询模块 /// 查询点模块 public ModuleFind FindPoint; /// 查询边模块 public ModuleFind FindSide; /// 查询贝塞尔点模块 public ModuleFind FindBezier; #endregion #region 算法模块 /// 计算位置到边上最近的点 public ModuleAlgorithm AlgorithmSidePoint; /// 简单多边形算法模块 public ModuleAlgorithm AlgorithmSimplePolygon; /// 细分多边形算法模块 public ModuleAlgorithm AlgorithmSubdivisionPolygon; /// 缝合边算法模块 public ModuleAlgorithm AlgorithmSutureSide; #endregion #region 事件定义 /// 标记数据Event public event Action OnMark; /// 移动烘焙视图的板片Event public event Action OnBakingMobilePlate; #endregion #region 事件触发 /// 触发标记数据Event public void Mark(DataMark data) => OnMark?.Invoke(data); /// 触发移动烘焙视图的板片Event public void BakingMobilePlate(DataPlate data) => OnBakingMobilePlate?.Invoke(data); #endregion }