daily update on 20230322 by nitload youmu, new geometry structure rewritten 70%
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user