public zz2DBounds(zz2DBounds other) { mMin = other.mMin; mMax = other.mMax; }
public bool Contains(zz2DBounds pBound) { return Contains(pBound.mMax) && Contains(pBound.mMin); }
/// <summary> /// 输入多边形信息 /// </summary> /// <param name="points"></param> public void setShape(Vector2[] points ) { //Debug.Log(points.Length); if (points.Length < 2) { Debug.LogError("points.Length < 2"); return; } shapePoint = points; mConvexPoints = new LinkedList<zz2DPoint>(); mConcavePoints = new LinkedList<zz2DPoint>(); mAllPoints = new LinkedList<zz2DPoint>(); //第一个点 zz2DPoint lFirstPoint = new zz2DPoint(points[0]); bounds = new zz2DBounds(points[0]); lFirstPoint.listNode = mAllPoints.AddLast(lFirstPoint); //第二个点 zz2DPoint lPrePoint = addPoint(points[1], lFirstPoint); for (int i = 2; i < points.Length; ++i) { zz2DPoint lNewPoint = addPoint(points[i], lPrePoint); checkConcave(lPrePoint); lPrePoint = lNewPoint; } zz2DPoint lLastPoint = lPrePoint; linkPoint(lLastPoint, lFirstPoint); checkConcave(lLastPoint); checkConcave(lFirstPoint); //Debug.Log(mAllPoints.Count); }