/** * Calcola il dominio comune tra la GeoPolitica attuale ed una seconda fornita * - Se le due GeoPolitiche risiedono su di un ramo comune, ritorna la GeoPolitica inferiore * - Se le due GeoPolitiche risiedono su rami differenti, ritorna FALSE * @param GeoPolitica $g La seconda GeoPolitica * @return false|GeoPolitica Il dominio comune */ public function dominioComune(GeoPolitica $g) { if (static::$_ESTENSIONE == $g::$_ESTENSIONE) { // Le due sono dello stesso livello. if ($this->oid() == $g->oid()) { return $this; } return false; } elseif (static::$_ESTENSIONE > $g::$_ESTENSIONE) { // Questa e' superiore $maggiore = $this; $minore = $g; } else { // Questa e' inferiore $maggiore = $g; $minore = $this; } if ($maggiore->contiene($minore)) { return $minore; } return false; }