using StgSharp; using StgSharp.Math; using System; using System.Collections.Generic; using System.Text; namespace StgSharp { public abstract class IGeometry:INode { internal ContainerNode _id; public abstract Point BasePoint { get; } public abstract Point RefPoint{ get; } public abstract Point RefVec01{ get; } public abstract Point RefVec02{ get; } internal abstract void CalcVec01(uint tick); internal abstract void CalcVec02(vec2d vec, uint tick); internal abstract void CalcVec03(vec2d vec, uint tick); internal abstract void OnRender(uint tick); public abstract RenderMode renderMode { get; } public abstract float SetArrayX(); public abstract float SetArrayY(); ContainerNode INode.ID => _id; void INode.setID(ContainerNode id) { if (_id != default) { throw new ArgumentException("Cannot set id twice"); } else { _id = id as ContainerNode; } } } public enum RenderMode { /// /// 坐标点将基于参考原点构建 /// BasePoint, /// /// 坐标点将基于参考起点构建 /// RefPoint } }