docs: @Override
  	protected void removeConstraintsSub(Constraint[] con) {
  		logger.finest("Trying to remove constraints " + Arrays.toString(con) + "...");
  		if (con != null && con.length != 0) {
  			Bounds[] tot = new Bounds[con.length];
  			int[] from = new int[con.length];
  			int[] to = new int[con.length];
  
  			for (int i = 0; i < con.length; i++) {
  				if (con[i] instanceof SimpleDistanceConstraint) {
  					SimpleDistanceConstraint c = (SimpleDistanceConstraint)con[i];
  					tot[i] = new Bounds(c.getMinimum(),c.getMaximum());
  					from[i] = ((TimePoint)c.getFrom()).getID();
  					to[i] = ((TimePoint)c.getTo()).getID();				
  				}
  			}
  			if (canRestoreDMatrix(con)) cDelete(tot,from,to,true);
  			else {
  				if (backupDMatrixSimple) resetDMatrixBackups();
  				cDelete(tot,from,to,false);
  			}
  		}
  	}