class Minkowski {

	public static IGeometry substractionOfMinkowskiFromCenter(IGeometry polygon1, IGeometry polygon2){
		
		// Création de l'univers Omega
		IGeometry box = polygon1.buffer(10).mbRegion();
		
		// Complémentaire de la parcelle dans Omega
		IGeometry parcelle = box.difference(polygon1);
		
		// Duplicata de l'élément structurant
		IGeometry batiment = (IGeometry) polygon2.clone();
		
		// Calcul de la somme inverse de Minkowski
		IGeometry temp = Minkowski.inverseSumOfMinkowskiFromCenter(parcelle, batiment);
		
		// On teste si l'espace résultant est vide
		if (((IPolygon)temp).getInterior().size() == 0){return null;}
		
		// Récupération du complémentaire dans Omega
		IGeometry tempclear = (IGeometry) temp.clone();
		((IPolygon)tempclear).getInterior().clear();
		IGeometry output = tempclear.difference(temp);
	
		return output;
		
	}

}