|
Sparkle 0.0.1
|
Physics component that handles collisions in 2D. More...
#include <spk_rigid_body_2d.hpp>


Public Types | |
| enum class | TriggerMode { Trigger , Blocking } |
| Defines collision response behavior. | |
| using | RegistryEntry = std::pair<spk::Entity *, spk::RigidBody2D *> |
| Registry entry associating an entity with a rigid body. | |
| Public Types inherited from spk::ActivableObject | |
| using | Contract = StatefulObject<ActivationStatus>::Contract |
| Subscription handle controlling callback lifetime. | |
| using | Job = StatefulObject<ActivationStatus>::Job |
| Callback signature executed on activation state changes. | |
| Public Types inherited from spk::StatefulObject< ActivationStatus > | |
| using | Contract |
| Handle allowing subscribers to manage callback lifetimes. | |
| using | Job |
| Callable invoked when the object transitions to a state. | |
Public Member Functions | |
| RigidBody2D (const std::wstring &p_name) | |
| Creates a rigid body component. | |
| void | start () override |
| Registers the rigid body for collision updates. | |
| void | stop () override |
| Unregisters the rigid body from collision updates. | |
| void | setMesh (const Mesh2D *p_mesh) |
| Sets the mesh used for collision. | |
| const Mesh2D * | mesh () const |
| Returns the mesh used for collision. | |
| const CollisionMesh2D & | collisionMesh () const |
| Returns the collision mesh derived from the render mesh. | |
| void | setTriggerMode (TriggerMode p_mode) |
| Sets the trigger mode. | |
| TriggerMode | triggerMode () const |
| Returns the trigger mode. | |
| void | setTriggerAction (std::function< void(spk::Entity *, spk::Entity *)> p_action) |
| Sets the trigger callback for collisions. | |
| const std::function< void(spk::Entity *, spk::Entity *)> & | triggerAction () const |
| Returns the trigger callback. | |
| bool | collides (const RigidBody2D &p_other) const |
| Tests collision against another rigid body. | |
| bool | collides (const spk::Vector2 &p_worldPoint) const |
| Tests collision against a world-space point. | |
| Public Member Functions inherited from spk::Component2D | |
| Component2D (const std::wstring &p_name) | |
| Builds a 2D component with a name. | |
| Entity2D * | owner () |
| Returns the 2D owner entity. | |
| const Entity2D * | owner () const |
| Returns the 2D owner entity. | |
| Public Member Functions inherited from spk::Component | |
| Component (const std::wstring &p_name) | |
| Builds a component with a name. | |
| ~Component () override | |
| Virtual destructor. | |
| void | setName (const std::wstring &p_name) |
| Sets the component name. | |
| void | setPriority (const int &p_priority) |
| Sets the component priority. | |
| const std::wstring & | name () const |
| Returns the component name. | |
| int | priority () const |
| Returns the component priority. | |
| Entity * | owner () |
| Returns the owning entity. | |
| const Entity * | owner () const |
| Returns the owning entity. | |
| virtual void | awake () |
| Called when the component becomes active. | |
| virtual void | sleep () |
| Called when the component is put to sleep. | |
| virtual void | handleGeometryChange (const spk::Extend2D &p_geometry) |
| Handles geometry change events. | |
| virtual void | handlePaintEvent (spk::PaintEvent &p_event) |
| Handles paint events. | |
| virtual void | handleKeyPressEvent (spk::KeyPressEvent &p_event) |
| Handles key press events. | |
| virtual void | handleKeyReleaseEvent (spk::KeyReleaseEvent &p_event) |
| Handles key release events. | |
| virtual void | handleGlyphEvent (spk::GlyphEvent &p_event) |
| Handles glyph input events. | |
| virtual void | handleMousePressEvent (spk::MousePressEvent &p_event) |
| Handles mouse press events. | |
| virtual void | handleMouseReleaseEvent (spk::MouseReleaseEvent &p_event) |
| Handles mouse release events. | |
| virtual void | handleMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event) |
| Handles mouse double-click events. | |
| virtual void | handleMouseMotionEvent (spk::MouseMotionEvent &p_event) |
| Handles mouse motion events. | |
| virtual void | handleMouseWheelEvent (spk::MouseWheelEvent &p_event) |
| Handles mouse wheel events. | |
| virtual void | handleEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event) |
| Handles enter resize mode events. | |
| virtual void | handleResizeEvent (spk::ResizeEvent &p_event) |
| Handles resize events. | |
| virtual void | handleExitResizeModeEvent (spk::ExitResizeModeEvent &p_event) |
| Handles exit resize mode events. | |
| virtual void | handleQuitEvent (spk::QuitEvent &p_event) |
| Handles quit events. | |
| virtual void | handleMoveEvent (spk::MoveEvent &p_event) |
| Handles move events. | |
| virtual void | handleFullScreenModeEvent (spk::FullScreenModeEvent &p_event) |
| Handles fullscreen mode events. | |
| virtual void | handleMaximizedModeEvent (spk::MaximizedModeEvent &p_event) |
| Handles maximized mode events. | |
| virtual void | handleFocusEvent (spk::FocusEvent &p_event) |
| Handles focus events. | |
| virtual void | handleUpdateEvent (spk::UpdateEvent &p_event) |
| Handles update events. | |
| Public Member Functions inherited from spk::ActivableObject | |
| ActivableObject () | |
| Builds a deactivated object. | |
| ActivableObject (ActivationStatus p_initial) | |
| Builds with a custom initial activation state. | |
| void | activate () |
| Sets the state to Activated. | |
| void | deactivate () |
| Sets the state to Deactivated. | |
| void | toggle () |
| Toggles between activated and deactivated states. | |
| bool | isActive () const |
| Checks whether the object is currently activated. | |
| Contract | addActivationCallback (const Job &p_callback) |
| Registers a callback executed when the object activates. | |
| Contract | addDeactivationCallback (const Job &p_callback) |
| Registers a callback executed when the object deactivates. | |
| Public Member Functions inherited from spk::StatefulObject< ActivationStatus > | |
| StatefulObject (const ActivationStatus &p_initialState) | |
| Builds with an initial state. | |
| StatefulObject & | operator= (const StatefulObject &p_other)=delete |
| void | setState (const ActivationStatus &p_newState) |
| Sets a new state and triggers callbacks registered for it. | |
| ActivationStatus | state () const |
| Returns the current state. | |
| Contract | addCallback (const ActivationStatus &p_state, const Job &p_callback) |
| Subscribes a callback for a specific state. | |
Static Public Member Functions | |
| static const std::set< RegistryEntry > & | rigidBodies () |
| Returns the registry of active rigid bodies. | |
Additional Inherited Members | |
| Protected Member Functions inherited from spk::Component | |
| virtual void | _onGeometryChange (const spk::Extend2D &p_geometry) |
| Handles geometry changes before public callbacks. | |
| virtual void | _onPaintEvent (spk::PaintEvent &p_event) |
| Handles paint events before public callbacks. | |
| virtual void | _onKeyPressEvent (spk::KeyPressEvent &p_event) |
| Handles key press events before public callbacks. | |
| virtual void | _onKeyReleaseEvent (spk::KeyReleaseEvent &p_event) |
| Handles key release events before public callbacks. | |
| virtual void | _onGlyphEvent (spk::GlyphEvent &p_event) |
| Handles glyph input events before public callbacks. | |
| virtual void | _onMousePressEvent (spk::MousePressEvent &p_event) |
| Handles mouse press events before public callbacks. | |
| virtual void | _onMouseReleaseEvent (spk::MouseReleaseEvent &p_event) |
| Handles mouse release events before public callbacks. | |
| virtual void | _onMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event) |
| Handles mouse double-click events before public callbacks. | |
| virtual void | _onMouseMotionEvent (spk::MouseMotionEvent &p_event) |
| Handles mouse motion events before public callbacks. | |
| virtual void | _onMouseWheelEvent (spk::MouseWheelEvent &p_event) |
| Handles mouse wheel events before public callbacks. | |
| virtual void | _onEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event) |
| Handles enter resize mode events before public callbacks. | |
| virtual void | _onResizeEvent (spk::ResizeEvent &p_event) |
| Handles resize events before public callbacks. | |
| virtual void | _onExitResizeModeEvent (spk::ExitResizeModeEvent &p_event) |
| Handles exit resize mode events before public callbacks. | |
| virtual void | _onQuitEvent (spk::QuitEvent &p_event) |
| Handles quit events before public callbacks. | |
| virtual void | _onMoveEvent (spk::MoveEvent &p_event) |
| Handles move events before public callbacks. | |
| virtual void | _onFullScreenModeEvent (spk::FullScreenModeEvent &p_event) |
| Handles fullscreen mode events before public callbacks. | |
| virtual void | _onMaximizedModeEvent (spk::MaximizedModeEvent &p_event) |
| Handles maximized mode events before public callbacks. | |
| virtual void | _onFocusEvent (spk::FocusEvent &p_event) |
| Handles focus events before public callbacks. | |
| virtual void | _onUpdateEvent (spk::UpdateEvent &p_event) |
| Handles update events before public callbacks. | |
Physics component that handles collisions in 2D.
|
explicit |
Creates a rigid body component.
| p_name | Component name. |


| bool spk::RigidBody2D::collides | ( | const RigidBody2D & | p_other | ) | const |
Tests collision against another rigid body.
| p_other | Other rigid body. |

| bool spk::RigidBody2D::collides | ( | const spk::Vector2 & | p_worldPoint | ) | const |
Tests collision against a world-space point.
| p_worldPoint | World point to test. |

| const CollisionMesh2D & spk::RigidBody2D::collisionMesh | ( | ) | const |
Returns the collision mesh derived from the render mesh.
| const Mesh2D * spk::RigidBody2D::mesh | ( | ) | const |
Returns the mesh used for collision.
|
static |
Returns the registry of active rigid bodies.
| void spk::RigidBody2D::setMesh | ( | const Mesh2D * | p_mesh | ) |
Sets the mesh used for collision.
| p_mesh | Mesh to use. |

| void spk::RigidBody2D::setTriggerAction | ( | std::function< void(spk::Entity *, spk::Entity *)> | p_action | ) |
Sets the trigger callback for collisions.
| p_action | Callback invoked with self and other entities. |
| void spk::RigidBody2D::setTriggerMode | ( | TriggerMode | p_mode | ) |
Sets the trigger mode.
| p_mode | Trigger or blocking mode. |
|
overridevirtual |
Registers the rigid body for collision updates.
Reimplemented from spk::Component.

|
overridevirtual |
Unregisters the rigid body from collision updates.
Reimplemented from spk::Component.

| const std::function< void(spk::Entity *, spk::Entity *)> & spk::RigidBody2D::triggerAction | ( | ) | const |
Returns the trigger callback.
| RigidBody2D::TriggerMode spk::RigidBody2D::triggerMode | ( | ) | const |
Returns the trigger mode.