protected virtual void Add(Point2D p, int idx, bool bCalcWindingOrderAndEpsilon) { if (idx < 0) { mPoints.Add(p); } else { mPoints.Insert(idx, p); } mBoundingBox.AddPoint(p); if (bCalcWindingOrderAndEpsilon) { if (mWindingOrder == WindingOrderType.Unknown) { mWindingOrder = CalculateWindingOrder(); } mEpsilon = CalculateEpsilon(); } }