using StgSharp.Math; using System; using System.Collections.Generic; using System.Text; namespace StgSharp.Geometries { public abstract class IGeometry:INode { private readonly uint bornTick; public abstract Point BasePoint { get; } public abstract Point RefPoint{ get; } public abstract Point RefVec01{ get; } public abstract Point RefVec02{ get; } public uint BornTime => bornTick; public IGeometry(uint bornTime) { bornTick=bornTime; } public IGeometry(Counter MainTimer) { bornTick = MainTimer.Value; } public IGeometry() { } internal abstract void CalcVec01(uint tick); internal abstract void CalcVec02(vec3d vec, uint tick); internal abstract void CalcVec03(vec3d vec, uint tick); internal abstract void OnRender(uint tick); public abstract RenderMode renderMode { get; } public abstract float SetArrayX(); public abstract float SetArrayY(); public abstract Line[] GetAllSides(); } public enum RenderMode { /// /// 坐标点将基于参考原点构建 /// BasePoint, /// /// 坐标点将基于参考起点构建 /// RefPoint } }