Daily update on 20231211 by nitload youmu
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user