80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
using StgSharp.Linear;
|
|
using StgSharp.Math;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace StgSharp.Geometries
|
|
{
|
|
|
|
/// <summary>
|
|
/// 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
|
|
/// </summary>
|
|
public abstract class IPlainGeometry:INode<IPlainGeometry>
|
|
{
|
|
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<uint> 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
|
|
{
|
|
/// <summary>
|
|
/// 坐标点将基于参考原点构建
|
|
/// </summary>
|
|
BasePoint,
|
|
/// <summary>
|
|
/// 坐标点将基于参考起点构建
|
|
/// </summary>
|
|
RefPoint
|
|
}
|
|
|
|
|
|
}
|