# {py:mod}`simvx.core.graphics.mesh` ```{py:module} simvx.core.graphics.mesh ``` ```{autodoc2-docstring} simvx.core.graphics.mesh :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Mesh ` - ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh :summary: ``` ```` ### API `````{py:class} Mesh(positions, indices=None, normals=None, texcoords=None, topology='triangles') :canonical: simvx.core.graphics.mesh.Mesh ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.__init__ ``` ````{py:property} vertex_count :canonical: simvx.core.graphics.mesh.Mesh.vertex_count :type: int ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.vertex_count ``` ```` ````{py:property} index_count :canonical: simvx.core.graphics.mesh.Mesh.index_count :type: int ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.index_count ``` ```` ````{py:property} stride :canonical: simvx.core.graphics.mesh.Mesh.stride :type: int ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.stride ``` ```` ````{py:property} has_normals :canonical: simvx.core.graphics.mesh.Mesh.has_normals :type: bool ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.has_normals ``` ```` ````{py:property} has_texcoords :canonical: simvx.core.graphics.mesh.Mesh.has_texcoords :type: bool ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.has_texcoords ``` ```` ````{py:method} interleaved_bytes() -> bytes :canonical: simvx.core.graphics.mesh.Mesh.interleaved_bytes ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.interleaved_bytes ``` ```` ````{py:method} index_bytes() -> bytes :canonical: simvx.core.graphics.mesh.Mesh.index_bytes ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.index_bytes ``` ```` ````{py:method} bounding_box() -> tuple[numpy.ndarray, numpy.ndarray] :canonical: simvx.core.graphics.mesh.Mesh.bounding_box ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.bounding_box ``` ```` ````{py:method} bounding_radius() -> float :canonical: simvx.core.graphics.mesh.Mesh.bounding_radius ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.bounding_radius ``` ```` ````{py:method} generate_normals() -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.generate_normals ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.generate_normals ``` ```` ````{py:method} cube(size: float = 1.0) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.cube :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.cube ``` ```` ````{py:method} sphere(radius: float = 1.0, rings: int = 16, segments: int = 16) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.sphere :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.sphere ``` ```` ````{py:method} cone(radius: float = 0.5, height: float = 1.0, segments: int = 16) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.cone :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.cone ``` ```` ````{py:method} cylinder(radius: float = 0.5, height: float = 1.0, segments: int = 16) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.cylinder :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.cylinder ``` ```` ````{py:method} load(path: str) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.load :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.load ``` ```` ````{py:method} from_obj(path: str) -> simvx.core.graphics.mesh.Mesh :canonical: simvx.core.graphics.mesh.Mesh.from_obj :classmethod: ```{autodoc2-docstring} simvx.core.graphics.mesh.Mesh.from_obj ``` ```` `````