Source code for sigmaepsilon.mesh.downloads

from sigmaepsilon.core.downloads import download_file, delete_downloads
from sigmaepsilon.mesh import PolyData


__all__ = [
    "download_stand",
    "download_bunny",
    "delete_downloads",
    "download_bunny_coarse",
    "download_gt40",
    "download_badacsony",
    "download_bike_stem",
]


def _download(path: str, read: bool = False) -> str | PolyData:
    vtkpath = download_file(path)
    if read:
        return PolyData.read(vtkpath)
    else:
        return vtkpath


[docs] def download_stand(*, read: bool = False) -> str | PolyData: """ Downloads a tetrahedral mesh of a stand in vtk format. Parameters ---------- read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Returns ------- str A path to a file on your filesystem. Example -------- >>> from sigmaepsilon.mesh.downloads import download_stand >>> file_path = download_stand() """ return _download("stand.vtk", read=read)
[docs] def download_bunny(*, tetra: bool = False, read: bool = False) -> str | PolyData: """ Downloads a tetrahedral mesh of a bunny in vtk format. Parameters ---------- tetra: bool, Optional If True, the returned mesh is a tetrahedral one, otherwise it is a surface triangulation. Default is False. read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Returns ------- str A path to a file on your filesystem. Example -------- >>> from sigmaepsilon.mesh.downloads import download_bunny >>> file_path = download_bunny() """ filename = "bunny_T3.vtk" if not tetra else "bunny_TET4.vtk" return _download(filename, read=read)
[docs] def download_bunny_coarse(tetra: bool = False, read: bool = False) -> str | PolyData: """ Downloads and optionally reads the bunny example as a vtk file. Parameters ---------- tetra: bool, Optional If True, the returned mesh is a tetrahedral one, otherwise it is a surface triangulation. Default is False. read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Example ------- >>> from sigmaepsilon.mesh.downloads import download_bunny_coarse >>> mesh = download_bunny_coarse(tetra=True, read=True) """ filename = "bunny_T3_coarse.vtk" if not tetra else "bunny_TET4_coarse.vtk" return _download(filename, read=read)
[docs] def download_gt40(read: bool = False) -> str | PolyData: """ Downloads and optionally reads the Gt40 example as a vtk file. Parameters ---------- read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Example ------- >>> from sigmaepsilon.mesh.downloads import download_gt40 >>> mesh = download_gt40(read=True) """ return _download("gt40.vtk", read=read)
[docs] def download_badacsony(read: bool = False) -> str | PolyData: """ Downloads and optionally reads the badacsony example as a vtk file. Parameters ---------- read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Example ------- >>> from sigmaepsilon.mesh.downloads import download_badacsony >>> mesh = download_badacsony(read=True) """ return _download("badacsony.vtk", read=read)
[docs] def download_bike_stem(read: bool = False) -> str | PolyData: """ Downloads and optionally reads the bike stem example as an STL file. Parameters ---------- read: bool, Optional If False, the path of the mesh file is returned instead of a :class:`~sigmaepsilon.mesh.data.polydata.PolyData` object. Default is False. Example ------- >>> from sigmaepsilon.mesh.downloads import download_bike_stem >>> mesh = download_bike_stem(read=True) """ return _download("bike_stem_nomanifold.stl", read=read)