daily update on 20230120 by nitload youmu, struct of project fixed, math lib created
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using GLFWDotNet;
|
||||
using StgSharp.Geometries;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
@@ -8,7 +7,7 @@ namespace StgSharp.Control
|
||||
{
|
||||
public static class Add
|
||||
{
|
||||
public static void Point(IGeometrySimple geometry)
|
||||
public static void Point(IGeometry geometry)
|
||||
{
|
||||
Point p = new Point();
|
||||
p.getXHandler += geometry.SetArrayX;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using StgSharp.Logic;
|
||||
using StgSharp.Geometries;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
@@ -10,11 +8,11 @@ namespace StgSharp.Control
|
||||
{
|
||||
public static void Point(Point p)
|
||||
{
|
||||
Logic.ContainerNode<INode> _cache = p.ID;
|
||||
_cache.Previous.Next=_cache.Next;
|
||||
StgSharp.ContainerNode<INode> _cache = p._id;
|
||||
_cache.Previous.Next = _cache.Next;
|
||||
_cache.Next.Previous = _cache.Previous;
|
||||
_cache.Next = default(Logic.ContainerNode<INode>);
|
||||
_cache.Previous = default(Logic.ContainerNode<INode>);
|
||||
_cache.Next = default(StgSharp.ContainerNode<INode>);
|
||||
_cache.Previous = default(StgSharp.ContainerNode<INode>);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
using StgSharp.Geometries;
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Entities
|
||||
namespace StgSharp
|
||||
{
|
||||
public interface IEntity:INode
|
||||
{
|
||||
public IGeometrySimple CollisionShape { get; set; }
|
||||
|
||||
|
||||
public IGeometry CollisionShape { get; set; }
|
||||
|
||||
public Sensor CollisionSensor { get; set; }
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
using StgSharp.Logic;
|
||||
using StgSharp.Geometries;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Circle : IGeometrySimple
|
||||
public class Circle : IGeometry
|
||||
{
|
||||
private Logic.ContainerNode<INode> _id;
|
||||
private StgSharp.ContainerNode<INode> _id;
|
||||
internal Point _referencePoint;
|
||||
internal float _vecX;
|
||||
internal float _vecY;
|
||||
@@ -28,7 +27,10 @@ namespace StgSharp.Geometries
|
||||
get { return _vecY; }
|
||||
}
|
||||
|
||||
|
||||
ContainerNode<INode> INode.ID
|
||||
{
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public float SetArrayX(Counter<uint> tickCounter)
|
||||
{
|
||||
@@ -39,5 +41,17 @@ namespace StgSharp.Geometries
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void INode.setID<T>(ContainerNode<T> id)
|
||||
{
|
||||
if (_id == default(ContainerNode<INode>))
|
||||
{
|
||||
_id = id as ContainerNode<INode>;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
public delegate float GetLocationHandler(Counter<uint> tickCounter);
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,13 +1,13 @@
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
|
||||
|
||||
public interface IGeometrySimple:INode
|
||||
public interface IGeometry:INode
|
||||
{
|
||||
public Point ReferencePoint
|
||||
{
|
||||
@@ -1,14 +1,13 @@
|
||||
using StgSharp.Control;
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Line:IGeometrySimple
|
||||
public class Line:IGeometry
|
||||
{
|
||||
private Logic.ContainerNode<INode> _id;
|
||||
private ContainerNode<INode> _id;
|
||||
|
||||
internal Point _referencePoint;
|
||||
internal float _vecX;
|
||||
@@ -29,6 +28,10 @@ namespace StgSharp.Geometries
|
||||
get { return _vecY; }
|
||||
}
|
||||
|
||||
ContainerNode<INode> INode.ID
|
||||
{
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public Line( Point referencePoint, float vecX, float vecY)
|
||||
{
|
||||
@@ -45,8 +48,17 @@ namespace StgSharp.Geometries
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void INode.setID<T>(ContainerNode<T> id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
_id = id as ContainerNode<INode>;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentNullException("Cannot set id teice!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
{
|
||||
public class Rectangle:IGeometryComplex
|
||||
{
|
||||
|
||||
internal Point _vertex;
|
||||
|
||||
internal float _vecX1;
|
||||
internal float _vecX2;
|
||||
|
||||
internal float _vecY1;
|
||||
internal float _vecY2;
|
||||
|
||||
|
||||
public Rectangle( Line side1, Line side2 )
|
||||
{
|
||||
_vecX1 = side1.VecX;
|
||||
_vecX2 = side2.VecX;
|
||||
|
||||
_vecY1 = side1.VecY;
|
||||
_vecY2 = side2.VecY;
|
||||
|
||||
if (_vecX1 * _vecX2 + _vecY1 * _vecY2 !=0 )
|
||||
{
|
||||
throw new ArgumentException("Given lines cannot form a rectangle!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
using StgSharp.Logic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
{
|
||||
public class Square:IGeometrySimple
|
||||
{
|
||||
private readonly Logic.ContainerNode<INode> _id;
|
||||
internal Point _referrencePoint;
|
||||
public float _vecX;
|
||||
public float _vecY;
|
||||
|
||||
|
||||
|
||||
public Point ReferencePoint
|
||||
{
|
||||
get { return _referrencePoint; }
|
||||
}
|
||||
|
||||
public float VecX
|
||||
{
|
||||
get { return _vecX; }
|
||||
}
|
||||
|
||||
public float VecY
|
||||
{
|
||||
get
|
||||
{
|
||||
return _vecY;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public float SetArrayX(Counter<uint> tickCounter)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
public float SetArrayY(Counter<uint> tickCounter)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Triangle : IGeometry
|
||||
{
|
||||
internal ContainerNode<INode> _id;
|
||||
|
||||
internal Point _referencePoint;
|
||||
|
||||
internal GetLocationHandler _setArrayXHandler;
|
||||
internal GetLocationHandler _setArrayYHandler;
|
||||
|
||||
public Point ReferencePoint
|
||||
{
|
||||
get { return _referencePoint; }
|
||||
}
|
||||
|
||||
public float VecX
|
||||
{
|
||||
get { return _referencePoint.X; }
|
||||
}
|
||||
|
||||
public float VecY
|
||||
{
|
||||
get { return _referencePoint.Y; }
|
||||
}
|
||||
|
||||
ContainerNode<INode> INode.ID
|
||||
{
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
public float SetArrayX(Counter<uint> tickCounter)
|
||||
{
|
||||
return _setArrayXHandler.Invoke(tickCounter);
|
||||
}
|
||||
|
||||
public float SetArrayY(Counter<uint> tickCounter)
|
||||
{
|
||||
return _setArrayYHandler.Invoke(tickCounter);
|
||||
}
|
||||
|
||||
void INode.setID<T>(ContainerNode<T> id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
_id = id as ContainerNode<INode>;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentNullException("Cannot set id teice!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
using GLFWDotNet;
|
||||
using StgSharp.Control;
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
@@ -8,11 +7,11 @@ using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Point: INode
|
||||
{
|
||||
private Logic.ContainerNode<Point> _id;
|
||||
internal StgSharp.ContainerNode<INode> _id;
|
||||
|
||||
internal float _x;
|
||||
internal float _y;
|
||||
@@ -20,23 +19,36 @@ namespace StgSharp.Geometries
|
||||
public GetLocationHandler getXHandler;
|
||||
public GetLocationHandler getYHandler;
|
||||
|
||||
ContainerNode<INode> INode.ID
|
||||
{
|
||||
get { return this._id; }
|
||||
}
|
||||
|
||||
public float X
|
||||
{
|
||||
get
|
||||
{
|
||||
return getXHandler(TimeLine.tickCounter);
|
||||
return getXHandler(Control.TimeLine.tickCounter);
|
||||
}
|
||||
}
|
||||
public float Y
|
||||
{
|
||||
get
|
||||
{
|
||||
return getYHandler(TimeLine.tickCounter);
|
||||
return getYHandler(Control.TimeLine.tickCounter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void INode.setID<T>(ContainerNode<T> id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
_id = id as ContainerNode<INode>;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentNullException("Cannot set id teice!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class ContainerNode<T> where T : INode
|
||||
{
|
||||
@@ -11,6 +11,8 @@ namespace StgSharp.Logic
|
||||
internal ContainerNode<T> _next;
|
||||
internal ContainerNode<T> _side;
|
||||
|
||||
|
||||
|
||||
public virtual ContainerNode<T> Previous
|
||||
{
|
||||
get { return _previous; }
|
||||
@@ -37,6 +39,7 @@ namespace StgSharp.Logic
|
||||
public ContainerNode(T t)
|
||||
{
|
||||
_this = t;
|
||||
t.setID<T>(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Counter<T>where T:struct, IConvertible, IFormattable, IComparable
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Dictionary<T> where T : Enum ,INode
|
||||
{
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public interface INode
|
||||
{
|
||||
internal ContainerNode<INode> ID { get; }
|
||||
|
||||
|
||||
internal void setID<T>(ContainerNode<T> id) where T:INode;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class LinkedList<T> where T: INode
|
||||
{
|
||||
internal ContainerNode<T> _head;
|
||||
internal ContainerNode<T> _first;
|
||||
internal ContainerNode<T> _tail;
|
||||
|
||||
private ContainerNode<T> _cache;
|
||||
|
||||
public T Head
|
||||
public T First
|
||||
{
|
||||
get { return _head._this; }
|
||||
set { _head = new ContainerNode<T>(value); }
|
||||
get { return _first._this; }
|
||||
set { _first = new ContainerNode<T>(value); }
|
||||
}
|
||||
|
||||
public T Tail
|
||||
@@ -26,9 +26,9 @@ namespace StgSharp.Logic
|
||||
|
||||
public void Add(T t)
|
||||
{
|
||||
if (_head != default(ContainerNode<T>))
|
||||
if (_first != default(ContainerNode<T>))
|
||||
{
|
||||
Head = t;
|
||||
First = t;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
using StgSharp.Control;
|
||||
using StgSharp.Geometries;
|
||||
using StgSharp.Logic;
|
||||
using StgSharp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Pool
|
||||
{
|
||||
public LinkedList<Point> pointContainer;
|
||||
public LinkedList<IGeometrySimple> geometryContainer;
|
||||
public LinkedList<IGeometry> geometryContainer;
|
||||
public LinkedList<Sensor> sensorContainer;
|
||||
|
||||
public Line leftBoader;
|
||||
@@ -22,13 +20,13 @@ namespace StgSharp.Logic
|
||||
|
||||
public void OnRender()
|
||||
{
|
||||
ContainerNode<Point> idCache = pointContainer._head;
|
||||
ContainerNode<Point> idCache = pointContainer._first;
|
||||
Point p;
|
||||
do
|
||||
{
|
||||
p = idCache._this;
|
||||
p._x = p.getXHandler.Invoke(TimeLine.tickCounter);
|
||||
p._y = p.getYHandler.Invoke(TimeLine.tickCounter);
|
||||
p._x = p.getXHandler.Invoke(Control.TimeLine.tickCounter);
|
||||
p._y = p.getYHandler.Invoke(Control.TimeLine.tickCounter);
|
||||
idCache = idCache._next;
|
||||
} while (idCache != default(ContainerNode<Point>));
|
||||
|
||||
|
||||
@@ -2,13 +2,27 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
namespace StgSharp
|
||||
{
|
||||
public class Sensor : INode
|
||||
{
|
||||
private ContainerNode<Sensor> _id;
|
||||
private ContainerNode<INode> _id;
|
||||
|
||||
ContainerNode<INode> INode.ID
|
||||
{
|
||||
get { return _id; }
|
||||
}
|
||||
|
||||
|
||||
void INode.setID<T>(ContainerNode<T> id)
|
||||
{
|
||||
if (id == null)
|
||||
{
|
||||
_id = id as ContainerNode<INode>;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentNullException("Cannot set id teice!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp
|
||||
{
|
||||
public static partial class Math
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="x"></param>
|
||||
/// <returns>
|
||||
/// Returns the value of ln(x).
|
||||
/// </returns>
|
||||
public static float Log(float x)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Geometries
|
||||
namespace StgSharp
|
||||
{
|
||||
public interface IGeometryComplex
|
||||
public static partial class Math
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
9bdca74aa3bf0b9908c1b3dd7529115cfc8b9480
|
||||
ffe0859de4666337fddb22395a629f5b2a7223e3
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user