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
}