using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RichCreator.Utility.Structs
{
///
/// 多边形
///
public struct ZTPolygon :IEquatable
{
public static ZTPolygon Empty = default(ZTPolygon);
public ZTPolygon(ZTPoint[] points)
{
this.Points = points;
}
public ZTPoint[] Points
{
get;set;
}
public int Length
{
get { return Points==null?0:Points.Length; }
}
public ZTPoint this[int index]
{
get { return Points[index]; }
set { Points[index] = value; }
}
public bool Equals(ZTPolygon other)
{
if (this.Length != other.Length)
{
return false;
}
for (int i = 0; i < this.Length; i++)
{
if (!this[i].Equals(other[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);
}
}
}