using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace RichCreator.Utility.Structs
|
{
|
/// <summary>
|
/// 多边形
|
/// </summary>
|
public class ZTPolygon : IEnumerable<ZTPoint>
|
{
|
private ZTPoint[] points;
|
|
public ZTPolygon(ZTPoint[] points)
|
{
|
this.points = points;
|
}
|
|
public ZTPoint[] Points
|
{
|
get { return points; }
|
set { points = value; }
|
}
|
|
public int Length
|
{
|
get { return points.Length; }
|
}
|
|
public ZTPoint this[int index]
|
{
|
get { return points[index]; }
|
set { points[index] = value; }
|
}
|
|
public static bool operator !=(ZTPolygon a, ZTPolygon b)
|
{
|
if (a == b)
|
{
|
return false;
|
}
|
return true;
|
}
|
|
public static bool operator ==(ZTPolygon a, ZTPolygon b)
|
{
|
if (a.Length != b.Length)
|
{
|
return false;
|
}
|
for (int i = 0; i < a.Length; i++)
|
{
|
if (a[i] != b[i])
|
{
|
return false;
|
}
|
}
|
return true;
|
}
|
|
public static implicit operator ZTPoint[] (ZTPolygon polygon)
|
{
|
return polygon.points;
|
}
|
|
public static implicit operator ZTPolygon(ZTPoint[] points)
|
{
|
return new ZTPolygon(points);
|
}
|
|
IEnumerator<ZTPoint> IEnumerable<ZTPoint>.GetEnumerator()
|
{
|
return (IEnumerator<ZTPoint>)points.GetEnumerator();
|
}
|
|
public IEnumerator GetEnumerator()
|
{
|
return points.GetEnumerator();
|
}
|
}
|
}
|