daily update on 20230322 by nitload youmu, new geometry structure rewritten 70%

This commit is contained in:
Nitload
2023-03-22 20:32:17 +08:00
parent db2ca36fd7
commit eedab82f6e
66 changed files with 1382 additions and 785 deletions
+46 -16
View File
@@ -1,30 +1,60 @@
using StgSharp;
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp
{
public interface IGeometry:INode
public abstract class IGeometry:INode<IGeometry>
{
public Point ReferencePoint
internal ContainerNode<IGeometry> _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<IGeometry> INode<IGeometry>.ID => _id;
void INode<IGeometry>.setID<T>(ContainerNode<T> id)
{
get;
if (_id != default)
{
throw new ArgumentException("Cannot set id twice");
}
else
{
_id = id as ContainerNode<IGeometry>;
}
}
internal float ExpressionX
{
get;
}
internal float ExpressionY
{
get;
}
public float SetArrayX(Counter<uint> tickCounter);
public float SetArrayY(Counter<uint> tickCounter);
}
public enum RenderMode
{
/// <summary>
/// 坐标点将基于参考原点构建
/// </summary>
BasePoint,
/// <summary>
/// 坐标点将基于参考起点构建
/// </summary>
RefPoint
}
}