public void PrepareTriangulation(TriangulationContext tcx) { bool flag = this._triangles == null; if (flag) { this._triangles = new List <DelaunayTriangle>(this._points.Count); } else { this._triangles.Clear(); } for (int i = 0; i < this._points.Count - 1; i++) { tcx.NewConstraint(this._points[i], this._points[i + 1]); } tcx.NewConstraint(this._points[0], this._points[this._points.Count - 1]); tcx.Points.AddRange(this._points); bool flag2 = this._holes != null; if (flag2) { foreach (Polygon current in this._holes) { for (int j = 0; j < current._points.Count - 1; j++) { tcx.NewConstraint(current._points[j], current._points[j + 1]); } tcx.NewConstraint(current._points[0], current._points[current._points.Count - 1]); tcx.Points.AddRange(current._points); } } bool flag3 = this._steinerPoints != null; if (flag3) { tcx.Points.AddRange(this._steinerPoints); } }
/// <summary> /// Creates constraints and populates the context with points /// </summary> /// <param name="tcx">The context</param> public void PrepareTriangulation(TriangulationContext tcx) { if (_triangles == null) { _triangles = new List <DelaunayTriangle>(_points.Count); } else { _triangles.Clear(); } // Outer constraints for (int i = 0; i < _points.Count - 1; i++) { tcx.NewConstraint(_points[i], _points[i + 1]); } tcx.NewConstraint(_points[0], _points[_points.Count - 1]); tcx.Points.AddRange(_points); // Hole constraints if (_holes != null) { foreach (Polygon p in _holes) { for (int i = 0; i < p._points.Count - 1; i++) { tcx.NewConstraint(p._points[i], p._points[i + 1]); } tcx.NewConstraint(p._points[0], p._points[p._points.Count - 1]); tcx.Points.AddRange(p._points); } } if (_steinerPoints != null) { tcx.Points.AddRange(_steinerPoints); } }
public override void PrepareTriangulation(TriangulationContext tcx) { base.PrepareTriangulation(tcx); if (_constrainedPointList != null) { TriangulationPoint p1, p2; List <TriangulationPoint> .Enumerator iterator = _constrainedPointList.GetEnumerator(); while (iterator.MoveNext()) { p1 = iterator.Current; iterator.MoveNext(); p2 = iterator.Current; tcx.NewConstraint(p1, p2); } } else { for (int i = 0; i < EdgeIndex.Length; i += 2) { // XXX: must change!! tcx.NewConstraint(Points[EdgeIndex[i]], Points[EdgeIndex[i + 1]]); } } }
public override void PrepareTriangulation(TriangulationContext tcx) { base.PrepareTriangulation(tcx); bool flag = this._constrainedPointList != null; if (flag) { List <TriangulationPoint> .Enumerator enumerator = this._constrainedPointList.GetEnumerator(); while (enumerator.MoveNext()) { TriangulationPoint current = enumerator.Current; enumerator.MoveNext(); TriangulationPoint current2 = enumerator.Current; tcx.NewConstraint(current, current2); } } else { for (int i = 0; i < this.EdgeIndex.Length; i += 2) { tcx.NewConstraint(base.Points[this.EdgeIndex[i]], base.Points[this.EdgeIndex[i + 1]]); } } }