public static function of(Curve $exteriorRing, Curve ...$interiorRings) :  CurvePolygon
    {
        return new static($exteriorRing->coordinateSystem(), $exteriorRing, ...$interiorRings);
    }
public static function of(Curve $exteriorRing, Curve ...$interiorRings) :  CurvePolygon
    {
        return new static($exteriorRing->coordinateSystem(), $exteriorRing, ...$interiorRings);
    }
public static function of ( Curve $ exteriorRing , Curve ... $ interiorRings ) : CurvePolygon { return new static ( $ exteriorRing -> coordinateSystem ( ) , $ exteriorRing , ... $ interiorRings ) ; }
Creates a non-empty CurvePolygon composed of the given rings.

@param Curve    $exteriorRing  The exterior ring.
@param Curve ...$interiorRings The interior rings, if any.

@return CurvePolygon

@throws CoordinateSystemException If the rings use different coordinate systems.
Creates a non - empty CurvePolygon composed of the given rings .