daily update on 20230416 by nitload youmu

This commit is contained in:
Nitload
2023-04-16 03:28:59 +08:00
parent 9756504e9d
commit 7891a26550
26 changed files with 215 additions and 94 deletions
+14 -8
View File
@@ -1,8 +1,10 @@
using Steamworks;
using StgSharp.Linear;
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Text;
namespace StgSharp.Geometries
@@ -11,8 +13,8 @@ namespace StgSharp.Geometries
{
internal Point _basePoint;
internal Point _center;
internal Point _radius;
internal Point _angle;
internal Point _beginPoint;
internal Point _endPoint;
internal RenderMode _renderMode;
internal readonly uint bornTick;
@@ -26,13 +28,13 @@ namespace StgSharp.Geometries
bornTick = tickCounter._value;
}
public override Point BasePoint => _basePoint;
public override Point RefOrigin => _basePoint;
public override Point RefPoint => _center;
public override Point RefVec01 => _radius;
public override Point RefVec01 => _beginPoint;
public override Point RefVec02 => _angle;
public override Point RefVec02 => _endPoint;
public override RenderMode renderMode => _renderMode;
@@ -45,12 +47,12 @@ namespace StgSharp.Geometries
internal sealed override void CalcVec02(vec3d vec, uint tick)
{
_radius._position = vec + UpdateRadius(tick);
_beginPoint._position = vec + UpdateRadius(tick);
}
internal sealed override void CalcVec03(vec3d vec, uint tick)
{
_angle._position = vec + UpdateAngle(tick);
_endPoint._position = vec + UpdateAngle(tick);
}
public virtual vec3d MoveCenter(uint tick) => default;
@@ -88,7 +90,11 @@ namespace StgSharp.Geometries
throw new NotImplementedException();
}
public override Line[] GetAllSides() => throw new NotImplementedException();
public override Plain GetPlain()
{
return new Plain(this._center,this._beginPoint,this._endPoint);
}
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ namespace StgSharp.Geometries
internal RenderMode _renderMode;
internal readonly uint bornTick;
public override Point BasePoint => _baseCenter;
public override Point RefOrigin => _baseCenter;
public override Point RefPoint => _center;
@@ -23,4 +23,26 @@ namespace StgSharp.Geometries
{
}
}
/// <summary>
/// 当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
/// </summary>
public class UnusedVertexException : Exception
{
public UnusedVertexException()
{
}
public UnusedVertexException(string message) : base(message)
{
}
public UnusedVertexException(string message, Exception innerException) : base(message, innerException)
{
}
protected UnusedVertexException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
}
}
@@ -6,11 +6,15 @@ using System.Text;
namespace StgSharp.Geometries
{
/// <summary>
/// 平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
/// </summary>
public abstract class IPlainGeometry:INode<IPlainGeometry>
{
private readonly uint bornTick;
public abstract Point BasePoint { get; }
public abstract Point RefOrigin { get; }
public abstract Point RefPoint{ get; }
public abstract Point RefVec01{ get; }
public abstract Point RefVec02{ get; }
@@ -31,6 +35,21 @@ namespace StgSharp.Geometries
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; }
@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace StgSharp.Geometries
{
public abstract class IPlainGeometryCombination:LinkedList<IPlainGeometry>
{
internal readonly uint _bornTick;
internal abstract void toSimpleGeometry();
public IPlainGeometryCombination(uint bornTime)
{
_bornTick = bornTime;
}
public IPlainGeometryCombination(Counter<uint> timer)
{
_bornTick = timer._value;
}
public IPlainGeometryCombination()
{
}
}
}
+7 -1
View File
@@ -1,6 +1,7 @@
using Steamworks;
using StgSharp;
using StgSharp.Control;
using StgSharp.Linear;
using StgSharp.Math;
using System;
using System.Collections.Generic;
@@ -18,7 +19,7 @@ namespace StgSharp.Geometries
internal RenderMode _renderMode;
internal readonly uint bornTick;
public override Point BasePoint => _basePoint;
public override Point RefOrigin => _basePoint;
public override Point RefPoint => _beginPoint;
@@ -98,5 +99,10 @@ namespace StgSharp.Geometries
{
throw new NotImplementedException();
}
public override Plain GetPlain()
{
throw new ToUpperDimensionException();
}
}
}
@@ -1,4 +1,5 @@
using StgSharp.Control;
using StgSharp.Linear;
using StgSharp.Math;
using System;
using System.Collections.Generic;
@@ -15,7 +16,7 @@ namespace StgSharp.Geometries
internal RenderMode _renderMode;
internal readonly uint bornTick;
public override sealed Point BasePoint => _basePoint;
public override sealed Point RefOrigin => _basePoint;
public override sealed Point RefPoint => _center;
public override sealed Point RefVec01 => _vertex1;
@@ -123,6 +124,10 @@ namespace StgSharp.Geometries
return sides;
}
public override Plain GetPlain()
{
return new Plain(this._center, this._vertex1,this._vertex2);
}
protected vec3d GetVertex3(Counter<uint> tick)
{
+4 -4
View File
@@ -28,17 +28,17 @@ namespace StgSharp.Geometries
public bool IsInGeometry(IPlainGeometry geo)
{
throw new NotImplementedException();
}
public bool IsInGeometry(IPlainGeometryCombination geo)
{
throw new NotImplementedException();
}
public bool IsInPlain(IPlainGeometry geo)
public bool IsOnPlain(IPlainGeometry geo)
{
return this._position * geo.GetPlain().plainParameter == 1;
}
}
+106 -22
View File
@@ -1,48 +1,132 @@
using System;
using StgSharp.Linear;
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Text;
namespace StgSharp.Geometries
{
public class Polygon : IPlainGeometryCombination
public class Polygon : IPlainGeometry
{
internal Point[] pointsArray;
internal Point _refOrigin;
internal Point[] vertexArray ;
internal RenderMode _renderMode;
internal readonly int _vertexCount;
public Polygon(uint bornTime) : base(bornTime)
public override Point RefOrigin => _refOrigin;
public override Point RefPoint => vertexArray[0];
public override Point RefVec01 => throw new NotImplementedException();
public override Point RefVec02 => throw new NotImplementedException();
public override RenderMode renderMode => throw new NotImplementedException();
internal override void CalcVec01(uint tick)
{
throw new NotImplementedException();
}
public Polygon(int pointNum)
internal override void CalcVec02(vec3d vec, uint tick)
{
pointsArray = new Point[pointNum];
this.toSimpleGeometry();
throw new NotImplementedException();
}
public Polygon(Point[] pointsArray)
internal override void CalcVec03(vec3d vec, uint tick)
{
PointsArray = pointsArray;
this.toSimpleGeometry();
throw new NotImplementedException();
}
internal override void toSimpleGeometry()
internal override void CalcVec04(vec3d vec, uint tick)
{
Point begin = pointsArray[0];
for (int i = 1; i <= pointsArray.Length; i++)
{
Triangle a = new Triangle(this._bornTick);
this.Add(a);
}
throw new NotImplementedException();
}
public Point[] PointsArray
internal override void CalcVec05(vec3d vec, uint tick)
{
get { return pointsArray; }
set { pointsArray = value; }
throw new NotImplementedException();
}
internal override void CalcVec06(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec07(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec08(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec09(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec10(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec11(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec12(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec13(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec14(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec15(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void CalcVec16(vec3d vec, uint tick)
{
throw new NotImplementedException();
}
internal override void OnRender(uint tick)
{
throw new NotImplementedException();
}
public override float SetArrayX()
{
throw new NotImplementedException();
}
public override float SetArrayY()
{
throw new NotImplementedException();
}
public override Line[] GetAllSides()
{
throw new NotImplementedException();
}
public override Plain GetPlain()
{
throw new NotImplementedException();
}
}
}
+2 -2
View File
@@ -16,7 +16,7 @@ namespace StgSharp.Geometries
internal RenderMode _renderMode;
internal readonly uint bornTick;
public override sealed Point BasePoint => _basePoint;
public override sealed Point RefOrigin => _basePoint;
public override sealed Point RefPoint=>_center;
public override sealed Point RefVec01 => _vertex1;
@@ -148,7 +148,7 @@ namespace StgSharp.Geometries
public override Plain GetPlain()
{
return new Plain(_vertex1._position, );
return new Plain(this._center, this._vertex1,this._vertex2);
}
protected vec3d GetVertex3(Counter<uint> tick)
+10 -3
View File
@@ -1,4 +1,5 @@
using StgSharp;
using StgSharp.Linear;
using StgSharp.Math;
using System;
using System.Collections.Generic;
@@ -16,7 +17,7 @@ namespace StgSharp.Geometries
internal RenderMode _renderMode;
internal readonly uint bornTick;
public override sealed Point BasePoint => _basePoint;
public override sealed Point RefOrigin => _basePoint;
public override sealed Point RefPoint=>_vertex1;
@@ -63,8 +64,8 @@ namespace StgSharp.Geometries
switch (_renderMode)
{
case RenderMode.BasePoint:
CalcVec02(BasePoint._position,tick);
CalcVec03(BasePoint._position,tick);
CalcVec02(RefOrigin._position,tick);
CalcVec03(RefOrigin._position,tick);
break;
case RenderMode.RefPoint:
CalcVec02(_vertex1._position,tick);
@@ -103,5 +104,11 @@ namespace StgSharp.Geometries
return sides;
}
public override Plain GetPlain()
{
return new Plain(this._vertex1,this._vertex2,this._vertex3);
}
}
}