# {py:mod}`simvx.core.physics.shapes` ```{py:module} simvx.core.physics.shapes ``` ```{autodoc2-docstring} simvx.core.physics.shapes :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Shape ` - ```{autodoc2-docstring} simvx.core.physics.shapes.Shape :summary: ``` * - {py:obj}`SphereShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.SphereShape3D :summary: ``` * - {py:obj}`BoxShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.BoxShape3D :summary: ``` * - {py:obj}`CapsuleShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.CapsuleShape3D :summary: ``` * - {py:obj}`CylinderShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.CylinderShape3D :summary: ``` * - {py:obj}`ConvexHullShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.ConvexHullShape3D :summary: ``` * - {py:obj}`ConcaveMeshShape3D ` - ```{autodoc2-docstring} simvx.core.physics.shapes.ConcaveMeshShape3D :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.physics.shapes.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.physics.shapes.__all__ :value: > ['Shape', 'SphereShape3D', 'BoxShape3D', 'CapsuleShape3D', 'CylinderShape3D', 'ConvexHullShape3D', '... ```{autodoc2-docstring} simvx.core.physics.shapes.__all__ ``` ```` `````{py:class} Shape :canonical: simvx.core.physics.shapes.Shape Bases: {py:obj}`abc.ABC` ```{autodoc2-docstring} simvx.core.physics.shapes.Shape ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.Shape.build :abstractmethod: ```{autodoc2-docstring} simvx.core.physics.shapes.Shape.build ``` ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.Shape.bounding_radius :abstractmethod: :type: float ```{autodoc2-docstring} simvx.core.physics.shapes.Shape.bounding_radius ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.Shape.__slots__ :value: > () ```` ````` `````{py:class} SphereShape3D(radius: float = 0.5) :canonical: simvx.core.physics.shapes.SphereShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.SphereShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.SphereShape3D.__init__ ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.SphereShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.SphereShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.SphereShape3D.__slots__ :value: > () ```` ````` `````{py:class} BoxShape3D(half_extents: simvx.core.math.Vec3 | tuple[float, float, float] = (0.5, 0.5, 0.5)) :canonical: simvx.core.physics.shapes.BoxShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.BoxShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.BoxShape3D.__init__ ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.BoxShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.BoxShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.BoxShape3D.__slots__ :value: > () ```` ````` `````{py:class} CapsuleShape3D(radius: float = 0.5, height: float = 2.0) :canonical: simvx.core.physics.shapes.CapsuleShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.CapsuleShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.CapsuleShape3D.__init__ ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.CapsuleShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.CapsuleShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.CapsuleShape3D.__slots__ :value: > () ```` ````` `````{py:class} CylinderShape3D(radius: float = 0.5, height: float = 2.0) :canonical: simvx.core.physics.shapes.CylinderShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.CylinderShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.CylinderShape3D.__init__ ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.CylinderShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.CylinderShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.CylinderShape3D.__slots__ :value: > () ```` ````` `````{py:class} ConvexHullShape3D(points: collections.abc.Sequence[simvx.core.math.Vec3 | tuple[float, float, float]]) :canonical: simvx.core.physics.shapes.ConvexHullShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.ConvexHullShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.ConvexHullShape3D.__init__ ``` ````{py:method} from_mesh(vertices: collections.abc.Sequence[simvx.core.math.Vec3 | tuple[float, float, float]], indices: collections.abc.Sequence[int] | None = None) -> simvx.core.physics.shapes.ConvexHullShape3D :canonical: simvx.core.physics.shapes.ConvexHullShape3D.from_mesh :classmethod: ```{autodoc2-docstring} simvx.core.physics.shapes.ConvexHullShape3D.from_mesh ``` ```` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.ConvexHullShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.ConvexHullShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.ConvexHullShape3D.__slots__ :value: > () ```` ````` `````{py:class} ConcaveMeshShape3D(vertices: collections.abc.Sequence[simvx.core.math.Vec3 | tuple[float, float, float]], indices: collections.abc.Sequence[int]) :canonical: simvx.core.physics.shapes.ConcaveMeshShape3D Bases: {py:obj}`simvx.core.physics.shapes.Shape` ```{autodoc2-docstring} simvx.core.physics.shapes.ConcaveMeshShape3D ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.physics.shapes.ConcaveMeshShape3D.__init__ ``` ````{py:method} build(world: simvx.core.physics.world.PhysicsWorld) -> simvx.core.physics.world.ShapeHandle :canonical: simvx.core.physics.shapes.ConcaveMeshShape3D.build ```` ````{py:property} bounding_radius :canonical: simvx.core.physics.shapes.ConcaveMeshShape3D.bounding_radius :type: float ```` ````{py:attribute} __slots__ :canonical: simvx.core.physics.shapes.ConcaveMeshShape3D.__slots__ :value: > () ```` `````