using System.Collections; using System.Collections.Generic; using UnityEngine; public abstract class ModulePlateDesign : MonoBehaviour { /// 必须初始化 protected virtual void Awake() { ModuleCore.PlateDesign = this; } /// 核心模块 protected virtual ModuleCore ModuleCore => ModuleCore.I; /// 视图相机模块 protected virtual ModuleViewCamera ViewCamera => ModuleCore.PlateDesignViewCamera; /// 添加一个板片数据 public abstract void AddData(DataPlate data); #region 边缘点操作 /// 是否有效的边缘点 public abstract bool IsValidEdgePoint { get; } /// 返回当前边缘点位置 public abstract Vector3 EdgePointPosition { get; } /// 选中一个边缘点 public abstract void SelectEdgePoint(Vector3 screenPosition); /// 改变边缘点位置 public abstract void ChangeEdgePoint(Vector3 localPosition); /// 插入一个边缘点 public abstract void InsertEdgePoint(Vector3 screenPosition); /// 释放边缘点 public abstract void ReleaseEdgePoint(); #endregion #region 设计点操作 /// 是否有效的设计点 public abstract bool IsValidDesignPoint { get; } /// 返回当前设计点位置 public abstract Vector3 DesignPointPosition { get; } /// 选中一个设计点 public abstract void SelectDesignPoint(Vector3 screenPosition); /// 改变设计点位置 public abstract void ChangeDesignPoint(Vector3 localPosition); /// 插入一个设计点 public abstract void InsertDesignPoint(Vector3 screenPosition); /// 释放设计点 public abstract void ReleaseDesignPoint(); #endregion #region 贝塞尔曲线操作 /// 是否有效的贝塞尔点 public abstract bool IsValidBezierPoint { get; } /// 返回当前贝塞尔点位置 public abstract Vector3 BezierPointPosition { get; } /// 选中一个贝塞尔点 public abstract void SelectBezierPoint(Vector3 screenPosition); /// 改变贝塞尔点位置 public abstract void ChangeBezierPoint(Vector3 localPosition); /// 释放贝塞尔点 public abstract void ReleaseBezierPoint(); #endregion }