--- /dev/null
+#ifndef RIGIDBODY_H_
+#define RIGIDBODY_H_
+
+#include <msp/game/component.h>
+#include <msp/geometry/angle.h>
+#include <msp/linal/vector.h>
+
+struct RigidBodySetup
+{
+ float mass = 1.0f;
+};
+
+class RigidBody: public Msp::Game::Component
+{
+public:
+ using Setup = RigidBodySetup;
+
+private:
+ const Setup &setup;
+ Msp::LinAl::Vector<float, 2> velocity;
+
+public:
+ RigidBody(Msp::Game::Handle<Msp::Game::Entity>, const Setup &);
+
+ float get_mass() const { return setup.mass; }
+ void set_velocity(const Msp::LinAl::Vector<float, 2> &);
+ const Msp::LinAl::Vector<float, 2> &get_velocity() const { return velocity; }
+};
+
+#endif