@SuppressWarnings("unchecked") @Override public void prepareTriangulation( TriangulationContext tcx ) { super.prepareTriangulation( tcx ); if( _constrainedPointList != null ) { HashMap<TriangulationPoint, TriangulationPoint> uniquePts = new HashMap<TriangulationPoint, TriangulationPoint>(_points.size()); // Enforce same coordinates means same instance of TriangulationPoint TriangulationPoint.mergeInstances(uniquePts, _points); TriangulationPoint.mergeInstances(uniquePts, _constrainedPointList); TriangulationPoint p1,p2; Iterator iterator = _constrainedPointList.iterator(); while(iterator.hasNext()) { p1 = (TriangulationPoint)iterator.next(); p2 = (TriangulationPoint)iterator.next(); tcx.newConstraint(p1,p2); } } else { for( int i = 0; i < _index.length; i+=2 ) { // XXX: must change!! tcx.newConstraint( _points.get( _index[i] ), _points.get( _index[i+1] ) ); } } }
TriangulationPoint.mergeInstances(uniquePts, _points); if(_steinerPoints != null) { TriangulationPoint.mergeInstances(uniquePts, _steinerPoints); TriangulationPoint.mergeInstances(uniquePts, p._points);