using StgSharp.Linear; using StgSharp.Math; using System; using System.Collections.Generic; using System.Text; namespace StgSharp.Geometries { /// /// 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。 /// public abstract class IPlainGeometry:INode { private readonly uint bornTick; public abstract Point RefOrigin { get; } public abstract Point RefPoint{ get; } public abstract Point RefVec01{ get; } public abstract Point RefVec02{ get; } public uint BornTime => bornTick; public IPlainGeometry(uint bornTime) { bornTick=bornTime; } public IPlainGeometry(Counter MainTimer) { bornTick = MainTimer.Value; } public IPlainGeometry() { } 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 CalcVec04(vec3d vec, uint tick); internal abstract void CalcVec05(vec3d vec, uint tick); internal abstract void CalcVec06(vec3d vec, uint tick); internal abstract void CalcVec07(vec3d vec, uint tick); internal abstract void CalcVec08(vec3d vec, uint tick); internal abstract void CalcVec09(vec3d vec, uint tick); internal abstract void CalcVec10(vec3d vec, uint tick); internal abstract void CalcVec11(vec3d vec, uint tick); internal abstract void CalcVec12(vec3d vec, uint tick); internal abstract void CalcVec13(vec3d vec, uint tick); internal abstract void CalcVec14(vec3d vec, uint tick); internal abstract void CalcVec15(vec3d vec, uint tick); internal abstract void CalcVec16(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 abstract Plain GetPlain(); } public enum RenderMode { /// /// 坐标点将基于参考原点构建 /// BasePoint, /// /// 坐标点将基于参考起点构建 /// RefPoint } }