geometry rewrite uncomplete
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -9,11 +9,7 @@ namespace StgSharp.Control
|
|||||||
{
|
{
|
||||||
public static void Point(Point p)
|
public static void Point(Point p)
|
||||||
{
|
{
|
||||||
StgSharp.ContainerNode<Point> _cache = p._id;
|
GameTimeLine._currentPool.pointContainer.Remove(p);
|
||||||
_cache.Previous.Next = _cache.Next;
|
|
||||||
_cache.Next.Previous = _cache.Previous;
|
|
||||||
_cache.Next = default;
|
|
||||||
_cache.Previous = default;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Steamworks;
|
using StgSharp.Linear;
|
||||||
using StgSharp.Linear;
|
|
||||||
using StgSharp.Math;
|
using StgSharp.Math;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -30,46 +29,14 @@ namespace StgSharp.Geometries
|
|||||||
|
|
||||||
public override Point RefOrigin => _basePoint;
|
public override Point RefOrigin => _basePoint;
|
||||||
|
|
||||||
public override Point RefPoint => _center;
|
public override Point RefPoint01 => _center;
|
||||||
|
|
||||||
public override Point RefVec01 => _beginPoint;
|
public override Point RefPoint02 => _beginPoint;
|
||||||
|
|
||||||
public override Point RefVec02 => _endPoint;
|
public override Point RefPoint03 => _endPoint;
|
||||||
|
|
||||||
public override RenderMode renderMode => _renderMode;
|
public override RenderMode renderMode => _renderMode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internal sealed override void CalcVec01(uint tick)
|
|
||||||
{
|
|
||||||
_center._position = _basePoint._position + MoveCenter(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal sealed override void CalcVec02(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
_beginPoint._position = vec + UpdateRadius(tick);
|
|
||||||
|
|
||||||
}
|
|
||||||
internal sealed override void CalcVec03(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
_endPoint._position = vec + UpdateAngle(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
internal sealed override void CalcVec04(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec05(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec06(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec07(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec08(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec09(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec10(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec11(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec12(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec13(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec14(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec15(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec16(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
|
|
||||||
public virtual vec3d MoveCenter(uint tick) => default;
|
public virtual vec3d MoveCenter(uint tick) => default;
|
||||||
|
|
||||||
public virtual vec3d UpdateRadius(uint tick) => default;
|
public virtual vec3d UpdateRadius(uint tick) => default;
|
||||||
@@ -79,16 +46,16 @@ namespace StgSharp.Geometries
|
|||||||
internal override void OnRender(uint tick)
|
internal override void OnRender(uint tick)
|
||||||
{
|
{
|
||||||
tick-=bornTick;
|
tick-=bornTick;
|
||||||
CalcVec01(tick);
|
_center._position = _basePoint._position + MoveCenter(tick);
|
||||||
switch (_renderMode)
|
switch (_renderMode)
|
||||||
{
|
{
|
||||||
case RenderMode.BasePoint:
|
case RenderMode.BasePoint:
|
||||||
CalcVec02(_basePoint._position,tick);
|
_beginPoint._position = _basePoint._position + UpdateRadius(tick);
|
||||||
CalcVec03(_basePoint._position,tick);
|
_endPoint._position = _basePoint._position + UpdateAngle(tick);
|
||||||
break;
|
break;
|
||||||
case RenderMode.RefPoint:
|
case RenderMode.RefPoint:
|
||||||
CalcVec02(_center._position,tick);
|
_beginPoint._position = _center._position + UpdateRadius(tick);
|
||||||
CalcVec03(_center._position, tick);
|
_endPoint._position = _center._position + UpdateAngle(tick);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ namespace StgSharp.Geometries
|
|||||||
|
|
||||||
public override Point RefOrigin => _baseCenter;
|
public override Point RefOrigin => _baseCenter;
|
||||||
|
|
||||||
public override Point RefPoint => _center;
|
public override Point RefPoint01 => _center;
|
||||||
|
|
||||||
public override Point RefVec01 => _pointOnCircle;
|
public override Point RefPoint02 => _pointOnCircle;
|
||||||
|
|
||||||
public override Point RefVec02 => _pointOnPlain;
|
public override Point RefPoint03 => _pointOnPlain;
|
||||||
|
|
||||||
public override RenderMode renderMode => _renderMode;
|
public override RenderMode renderMode => _renderMode;
|
||||||
|
|
||||||
@@ -35,35 +35,6 @@ namespace StgSharp.Geometries
|
|||||||
bornTick = tickCounter._value;
|
bornTick = tickCounter._value;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal override void CalcVec01(uint tick)
|
|
||||||
{
|
|
||||||
_center._position = _baseCenter._position + MoveCenter(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec02(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
_pointOnCircle._position = vec + UpdateRadius(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec03(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
_pointOnPlain._position = vec + UpdatePlain(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal sealed override void CalcVec04(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec05(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec06(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec07(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec08(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec09(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec10(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec11(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec12(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec13(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec14(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec15(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec16(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
|
|
||||||
public virtual vec3d MoveCenter(uint tick) => default;
|
public virtual vec3d MoveCenter(uint tick) => default;
|
||||||
|
|
||||||
public virtual vec3d UpdateRadius(uint tick) => default;
|
public virtual vec3d UpdateRadius(uint tick) => default;
|
||||||
@@ -88,16 +59,16 @@ namespace StgSharp.Geometries
|
|||||||
internal override void OnRender(uint tick)
|
internal override void OnRender(uint tick)
|
||||||
{
|
{
|
||||||
tick-=bornTick;
|
tick-=bornTick;
|
||||||
CalcVec01(tick);
|
_center._position = MoveCenter(tick);
|
||||||
switch (_renderMode)
|
switch (_renderMode)
|
||||||
{
|
{
|
||||||
case RenderMode.BasePoint:
|
case RenderMode.BasePoint:
|
||||||
CalcVec02(_baseCenter._position,tick);
|
_pointOnCircle._position = _baseCenter._position + UpdateRadius(tick);
|
||||||
CalcVec03(_baseCenter._position,tick);
|
_pointOnPlain._position = _baseCenter._position + UpdatePlain(tick);
|
||||||
break;
|
break;
|
||||||
case RenderMode.RefPoint:
|
case RenderMode.RefPoint:
|
||||||
CalcVec02(_center._position, tick);
|
_pointOnCircle._position = _center._position + UpdateRadius(tick);
|
||||||
CalcVec03(_center._position, tick);
|
_pointOnPlain._position = _center._position + UpdatePlain(tick);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ namespace StgSharp.Geometries
|
|||||||
private readonly uint bornTick;
|
private readonly uint bornTick;
|
||||||
|
|
||||||
public abstract Point RefOrigin { get; }
|
public abstract Point RefOrigin { get; }
|
||||||
public abstract Point RefPoint{ get; }
|
public abstract Point RefPoint01{ get; }
|
||||||
public abstract Point RefVec01{ get; }
|
public abstract Point RefPoint02{ get; }
|
||||||
public abstract Point RefVec02{ get; }
|
public abstract Point RefPoint03{ get; }
|
||||||
public uint BornTime => bornTick;
|
public uint BornTime => bornTick;
|
||||||
|
|
||||||
public IPlainGeometry(uint bornTime)
|
public IPlainGeometry(uint bornTime)
|
||||||
@@ -32,23 +32,6 @@ namespace StgSharp.Geometries
|
|||||||
|
|
||||||
public IPlainGeometry() { }
|
public IPlainGeometry() { }
|
||||||
|
|
||||||
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);
|
internal abstract void OnRender(uint tick);
|
||||||
|
|
||||||
|
|||||||
@@ -65,21 +65,6 @@ namespace StgSharp.Geometries
|
|||||||
_endPoint._position = vec + MoveEndPoint(tick);
|
_endPoint._position = vec + MoveEndPoint(tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed override void CalcVec03(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec04(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec05(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec06(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec07(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec08(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec09(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec10(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec11(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec12(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec13(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec14(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec15(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
internal sealed override void CalcVec16(vec3d vec, uint tick) => throw new UnusedVertexException();
|
|
||||||
|
|
||||||
//计算线起点的方法,通过对线的派生的重写实现功能
|
//计算线起点的方法,通过对线的派生的重写实现功能
|
||||||
public virtual vec3d MoveBeginPoint(uint tick)
|
public virtual vec3d MoveBeginPoint(uint tick)
|
||||||
=> movBegin.Invoke( GameTimeLine.tickCounter);
|
=> movBegin.Invoke( GameTimeLine.tickCounter);
|
||||||
|
|||||||
@@ -1,132 +0,0 @@
|
|||||||
using StgSharp.Linear;
|
|
||||||
using StgSharp.Math;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Numerics;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace StgSharp.Geometries
|
|
||||||
{
|
|
||||||
public class Polygon : IPlainGeometry
|
|
||||||
{
|
|
||||||
internal Point _refOrigin;
|
|
||||||
internal Point[] vertexArray ;
|
|
||||||
internal RenderMode _renderMode;
|
|
||||||
internal readonly int _vertexCount;
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec02(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec03(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec04(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal override void CalcVec05(vec3d vec, uint tick)
|
|
||||||
{
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
using Steamworks;
|
||||||
|
using StgSharp.Control;
|
||||||
|
using StgSharp.Linear;
|
||||||
|
using StgSharp.Math;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Numerics;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace StgSharp.Geometries
|
||||||
|
{
|
||||||
|
public class Polygon5 : IPlainGeometry
|
||||||
|
{
|
||||||
|
internal Point _refOrigin;
|
||||||
|
internal Point vertex1;
|
||||||
|
internal Point vertex2;
|
||||||
|
internal Point vertex3;
|
||||||
|
internal Point vertex4;
|
||||||
|
internal Point vertex5;
|
||||||
|
internal RenderMode _renderMode;
|
||||||
|
internal readonly int _vertexCount;
|
||||||
|
|
||||||
|
public override Point RefOrigin => _refOrigin;
|
||||||
|
|
||||||
|
public override Point RefPoint01 => vertex1;
|
||||||
|
|
||||||
|
public override Point RefPoint02 => vertex2;
|
||||||
|
|
||||||
|
public override Point RefPoint03 => vertex3;
|
||||||
|
|
||||||
|
public override RenderMode renderMode => throw new NotImplementedException();
|
||||||
|
|
||||||
|
public virtual vec3d movPoint01(uint tick)
|
||||||
|
{
|
||||||
|
return movP01Operation.Invoke(GameTimeLine.tickCounter);
|
||||||
|
}
|
||||||
|
internal GetLocationHandler movP01Operation = default;
|
||||||
|
public GetLocationHandler MovP01Operation { get => movP01Operation ; }
|
||||||
|
|
||||||
|
public virtual vec3d movPoint02(uint tick)
|
||||||
|
{
|
||||||
|
return movP02Operation.Invoke(GameTimeLine.tickCounter);
|
||||||
|
}
|
||||||
|
internal GetLocationHandler movP02Operation = default;
|
||||||
|
public GetLocationHandler MovP02Operation { get => movP02Operation ; }
|
||||||
|
|
||||||
|
public virtual vec3d movPoint03(uint tick)
|
||||||
|
{
|
||||||
|
return movP03Operation.Invoke(GameTimeLine.tickCounter);
|
||||||
|
}
|
||||||
|
internal GetLocationHandler movP03Operation = default;
|
||||||
|
public GetLocationHandler MovP03Operation { get => movP03Operation; }
|
||||||
|
|
||||||
|
public virtual vec3d movPoint04(uint tick)
|
||||||
|
{
|
||||||
|
return movP04Operation.Invoke(GameTimeLine.tickCounter);
|
||||||
|
}
|
||||||
|
internal GetLocationHandler movP04Operation = default;
|
||||||
|
public GetLocationHandler MovP04Operation { get => movP04Operation; }
|
||||||
|
|
||||||
|
public virtual vec3d movPoint05(uint tick)
|
||||||
|
{
|
||||||
|
return movP05Operation.Invoke(GameTimeLine.tickCounter);
|
||||||
|
}
|
||||||
|
internal GetLocationHandler movP05Operation = default;
|
||||||
|
public GetLocationHandler MovP05Operation { get => movP05Operation; }
|
||||||
|
|
||||||
|
internal override void OnRender(uint tick)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,6 +21,14 @@ namespace StgSharp
|
|||||||
_id = id;
|
_id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void SelfDestrcut()
|
||||||
|
{
|
||||||
|
_id._previous._next = _id._next;
|
||||||
|
_id._next._previous = _id._previous;
|
||||||
|
this._id = default;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,18 @@ namespace StgSharp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Remove(T node)
|
||||||
|
{
|
||||||
|
foreach (INode<T> item in this)
|
||||||
|
{
|
||||||
|
if (item == node)
|
||||||
|
{
|
||||||
|
node.SelfDestrcut();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void RemoveTail()
|
public void RemoveTail()
|
||||||
{
|
{
|
||||||
if (_tail==default(ContainerNode<T>))
|
if (_tail==default(ContainerNode<T>))
|
||||||
|
|||||||
@@ -40,10 +40,44 @@ namespace StgSharp
|
|||||||
}
|
}
|
||||||
public Pool( Geometries.Rectangle area)
|
public Pool( Geometries.Rectangle area)
|
||||||
{
|
{
|
||||||
if (Calc.Abs(area._centerToCorner1.X) == Calc.Abs(area._centerToCorner2.X)
|
vec3d vec = area._vertex1._position - area._vertex2._position;
|
||||||
&& Calc.Abs(area._centerToCorner1.Y) == Calc.Abs(area._centerToCorner2.Y))
|
if ((vec.X==0||vec.Y==0)&&vec.Z==0)
|
||||||
{
|
{
|
||||||
|
Line[] barders = area.GetAllSides();
|
||||||
|
if (area._vertex1.X>0)
|
||||||
|
{
|
||||||
|
if (area._vertex1.Y>0)
|
||||||
|
{
|
||||||
|
topBoader = barders[3];
|
||||||
|
rightBoader = barders[0];
|
||||||
|
bottomBoader = barders[1];
|
||||||
|
leftBoader = barders[2];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
topBoader = barders[2];
|
||||||
|
rightBoader = barders[3];
|
||||||
|
bottomBoader = barders[0];
|
||||||
|
leftBoader = barders[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (area._vertex1.Y > 0)
|
||||||
|
{
|
||||||
|
topBoader = barders[3];
|
||||||
|
rightBoader = barders[0];
|
||||||
|
bottomBoader = barders[1];
|
||||||
|
leftBoader = barders[2];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
topBoader = barders[2];
|
||||||
|
rightBoader = barders[3];
|
||||||
|
bottomBoader = barders[0];
|
||||||
|
leftBoader = barders[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
8c8a835e66daaf164fa2e6efae7c02f12143e5b9
|
b06fbbdaa0e28e28634094c37b24ee8c2c2f1201
|
||||||
|
|||||||
Reference in New Issue
Block a user