@lru_cache(maxsize=1)
def __call__(self) -> gpd.GeoDataFrame:
    "Calculates all polygons of the mesh including domain islands\n\n        Parameters\n        ----------\n\n        Returns\n        -------\n        gpd.GeoDataFrame\n            Dataframe containing all polygons of the mesh.\n\n        See Also\n        --------\n        implode()\n            Dataframe with a single combined multipolygon.\n        multipolygon()\n            `shapely` multipolygon shape of combined mesh polygons.\n\n        Notes\n        -----\n        The result of this method is cached, so that multiple calls\n        to it won't result in multiple calculations. If the mesh\n        is modified and the cache is not properly clear the calls\n        to this method can result in invalid return values.\n        "
    data = []
    for bnd_id in np.unique(self.rings()['bnd_id'].tolist()):
        exterior = self.rings().loc[((self.rings()['bnd_id'] == bnd_id) & (self.rings()['type'] == 'exterior'))]
        interiors = self.rings().loc[((self.rings()['bnd_id'] == bnd_id) & (self.rings()['type'] == 'interior'))]
        data.append({'geometry': Polygon(exterior.iloc[0].geometry.coords, [row.geometry.coords for (_, row) in interiors.iterrows()]), 'bnd_id': bnd_id})
    return gpd.GeoDataFrame(data, crs=self.mesh.crs)
Calculates all polygons of the mesh including domain islands

Parameters
----------

Returns
-------
gpd.GeoDataFrame
    Dataframe containing all polygons of the mesh.

See Also
--------
implode()
    Dataframe with a single combined multipolygon.
multipolygon()
    `shapely` multipolygon shape of combined mesh polygons.

Notes
-----
The result of this method is cached, so that multiple calls
to it won't result in multiple calculations. If the mesh
is modified and the cache is not properly clear the calls
to this method can result in invalid return values.
@lru_cache(maxsize=1)
def __call__(self) -> gpd.GeoDataFrame:
    "Calculates all polygons of the mesh including domain islands\n\n        Parameters\n        ----------\n\n        Returns\n        -------\n        gpd.GeoDataFrame\n            Dataframe containing all polygons of the mesh.\n\n        See Also\n        --------\n        implode()\n            Dataframe with a single combined multipolygon.\n        multipolygon()\n            `shapely` multipolygon shape of combined mesh polygons.\n\n        Notes\n        -----\n        The result of this method is cached, so that multiple calls\n        to it won't result in multiple calculations. If the mesh\n        is modified and the cache is not properly clear the calls\n        to this method can result in invalid return values.\n        "
    data = []
    for bnd_id in np.unique(self.rings()['bnd_id'].tolist()):
        exterior = self.rings().loc[((self.rings()['bnd_id'] == bnd_id) & (self.rings()['type'] == 'exterior'))]
        interiors = self.rings().loc[((self.rings()['bnd_id'] == bnd_id) & (self.rings()['type'] == 'interior'))]
        data.append({'geometry': Polygon(exterior.iloc[0].geometry.coords, [row.geometry.coords for (_, row) in interiors.iterrows()]), 'bnd_id': bnd_id})
    return gpd.GeoDataFrame(data, crs=self.mesh.crs)