Daily update on 20231211 by nitload youmu

This commit is contained in:
Nitload
2023-12-12 03:17:16 +08:00
parent ab85c1a9fe
commit f97fb137ba
100 changed files with 2699 additions and 3191 deletions
@@ -3,6 +3,9 @@ using System;
namespace StgSharp.Geometries
{
/// <summary>
/// Part of a circle. All points on a arc has the same distance to their center.
/// </summary>
public class Arc : PlainGeometry
{
internal Point center;
@@ -22,7 +25,7 @@ namespace StgSharp.Geometries
internal override void UpdateCoordinate(uint tick)
{
tick -= bornTick;
tick = time;
center.Position = this.coordinate.origin + MoveCenter(tick);
beginPoint.Position = this.coordinate.origin + MovBegin(tick);
endPoint.Position = this.coordinate.origin + MovEnd(tick);
@@ -3,6 +3,9 @@ using System;
namespace StgSharp.Geometries
{
/// <summary>
/// A collection of all point on the same plain and has the same distance to a point
/// </summary>
public class Circle : PlainGeometry
{
internal Point center;
@@ -26,9 +29,10 @@ namespace StgSharp.Geometries
return new Plain(center, pointOnCircle, pointOnPlain);
}
internal override void UpdateCoordinate(uint tick)
{
tick -= bornTick;
tick = time;
center.Position = this.coordinate.origin + MoveCenter(tick);
pointOnCircle.Position = this.coordinate.origin + UpdateRadius(tick);
pointOnPlain.Position = this.coordinate.origin + UpdatePlain(tick);
@@ -32,19 +32,29 @@ namespace StgSharp.Geometries
public Line() { }
//method to calculate begin point of the the line
/// <summary>
/// Move begin side of a line.
/// It is recommended to override this function rather than
/// loading an <see cref="GetLocationHandler"/> with same function.
/// </summary>
/// <param name="tick">Time passed since current line was created.</param>
public virtual vec3d MoveBeginPoint(uint tick)
=> movBegin.Invoke(tick);
=> movBegin.Invoke(time);
//计算线重点的方法,通过对线的派生的重写实现功能
/// <summary>
/// Move end side of a line.
/// It is recommended to override this function rather than
/// loading an <see cref="GetLocationHandler"/> with same function.
/// </summary>
/// <param name="tick">Time passed since current line was created.</param>
/// <returns></returns>
public virtual vec3d MoveEndPoint(uint tick)
=> movEnd.Invoke(tick);
=> movEnd.Invoke(time);
internal override void UpdateCoordinate(uint tick)
{
tick -= bornTick;
beginPoint.Position = coordinate.origin + MoveBeginPoint(tick);
endPoint.Position = coordinate.origin + MoveEndPoint(tick);
beginPoint.Position = coordinate.origin + MoveBeginPoint(time);
endPoint.Position = coordinate.origin + MoveEndPoint(time);
}
public override Line[] GetAllSides()
@@ -64,7 +64,6 @@ namespace StgSharp.Geometries
internal sealed override void UpdateCoordinate(uint tick)
{
uint nowTick = TimeLine.tickCounter._value;
}
}
@@ -1,4 +1,5 @@
using StgSharp.Math;
using StgSharp.Graphics;
using StgSharp.Math;
namespace StgSharp.Geometries
{
@@ -8,7 +9,7 @@ namespace StgSharp.Geometries
/// </summary>
public abstract class PlainGeometry
{
protected readonly uint bornTick;
protected FrameTimer time;
internal PartialPlainCoordinate coordinate;
internal Matrix2x4 textureFrame;
@@ -18,26 +19,32 @@ namespace StgSharp.Geometries
get => this.coordinate;
}
public uint BornTime => bornTick;
/// <summary>
/// Tick time this geometry eas crested
/// </summary>
public uint BornTime => time;
internal abstract int[] Indices { get; }
public PlainGeometry(uint bornTime)
public PlainGeometry(Form form)
{
bornTick = bornTime;
}
public PlainGeometry(Counter<uint> MainTimer)
{
bornTick = MainTimer.Value;
time = new FrameTimer(form);
}
public PlainGeometry() { }
internal abstract void UpdateCoordinate(uint tick);
/// <summary>
/// Get all sides of this <see cref="PlainGeometry"/>.
/// </summary>
/// <returns>A array contains all straight <see cref="Line"/>s of current geometry item.</returns>
public abstract Line[] GetAllSides();
/// <summary>
/// Get a flat <see cref="Plain"/> cincide with current geometry.
/// </summary>
/// <returns></returns>
public abstract Plain GetPlain();
//public abstract Rectangle GetRenderFrame();
@@ -146,7 +146,6 @@ namespace StgSharp.Geometries
internal override void UpdateCoordinate(uint tick)
{
uint nowTick = TimeLine.tickCounter._value;
}
}
}
@@ -103,15 +103,15 @@ namespace StgSharp.Geometries
return new Plain(Vertex0, Vertex1, Vertex2);
}
public virtual vec3d movVertex01(uint tick) => movP01Operation.Invoke(TimeLine.tickCounter._value);
public virtual vec3d movVertex01(uint tick) => movP01Operation.Invoke(time);
public virtual vec3d movVertex02(uint tick) => movP02Operation.Invoke(TimeLine.tickCounter._value);
public virtual vec3d movVertex02(uint tick) => movP02Operation.Invoke(time);
public virtual vec3d movVertex03(uint tick) => movP03Operation.Invoke(TimeLine.tickCounter._value);
public virtual vec3d movVertex03(uint tick) => movP03Operation.Invoke(time);
public virtual vec3d movVertex04(uint tick) => movP04Operation.Invoke(TimeLine.tickCounter._value);
public virtual vec3d movVertex04(uint tick) => movP04Operation.Invoke(time);
public virtual vec3d movVertex05(uint tick) => movP05Operation.Invoke(TimeLine.tickCounter._value);
public virtual vec3d movVertex05(uint tick) => movP05Operation.Invoke(time);
internal override void UpdateCoordinate(uint tick)
@@ -91,32 +91,32 @@ namespace StgSharp.Geometries
public virtual vec3d movVertex0(uint tick)
{
return movVertex0Operation.Invoke(TimeLine.tickCounter._value);
return movVertex0Operation.Invoke(time);
}
public virtual vec3d movVertex1(uint tick)
{
return movVertex1Operation.Invoke(TimeLine.tickCounter._value);
return movVertex1Operation.Invoke(time);
}
public virtual vec3d movVertex2(uint tick)
{
return movVertex2Operation.Invoke(TimeLine.tickCounter._value);
return movVertex2Operation.Invoke(time);
}
public virtual vec3d movVertex3(uint tick)
{
return movVertex3Operation.Invoke(TimeLine.tickCounter._value);
return movVertex3Operation.Invoke(time);
}
public virtual vec3d movVertex4(uint tick)
{
return movVertex4Operation.Invoke(TimeLine.tickCounter._value);
return movVertex4Operation.Invoke(time);
}
public virtual vec3d movVertex5(uint tick)
{
return movVertex5Operation.Invoke(TimeLine.tickCounter._value);
return movVertex5Operation.Invoke(time);
}
internal override void UpdateCoordinate(uint tick)
@@ -81,10 +81,10 @@ namespace StgSharp.Geometries
internal sealed override void UpdateCoordinate(uint tick)
{
tick -= this.bornTick;
vertexMat.mat.colum0 = coordinate.origin.vec + MovVertex01(tick).vec;
vertexMat.mat.colum1 = coordinate.origin.vec + MovVertex02(tick).vec;
vertexMat.mat.colum2 = coordinate.origin.vec + MovVertex03(tick).vec;
tick = time;
vertexMat.mat.colum0 = coordinate.origin.vec + MovVertex01(time).vec;
vertexMat.mat.colum1 = coordinate.origin.vec + MovVertex02(time).vec;
vertexMat.mat.colum2 = coordinate.origin.vec + MovVertex03(time).vec;
}
}
}