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
}