render vertices in addition to edges

This commit is contained in:
2026-02-17 00:54:43 +01:00
parent d6ce1a94f5
commit fba493ea93
6 changed files with 47 additions and 44 deletions

View File

@ -6,11 +6,12 @@
constexpr int WIDTH = 800;
constexpr int HEIGHT = 800;
constexpr float VERTEX_SIZE = 5.0;
constexpr float VERTEX_SIZE = 50.0;
constexpr Color VERTEX_COLOR = {27, 188, 104, 255};
constexpr Color EDGE_COLOR = {20, 133, 38, 255};
constexpr float SIM_SPEED = 4.0;
constexpr float ROTATION_SPEED = 1.0;
constexpr float CAMERA_DISTANCE = 2.2;
constexpr float DEFAULT_SPRING_CONSTANT = 1.5;

View File

@ -115,9 +115,7 @@ public:
auto CalculateSpringForces() -> void;
auto IntegrateVelocities(const float delta_time) -> void;
auto IntegratePositions(const float delta_time) -> void;
auto EulerUpdate(const float delta_time) -> void;
auto VerletUpdate(const float delta_time) -> void;
};

View File

@ -8,8 +8,11 @@
#include "mass_springs.hpp"
using Edge2Set = std::vector<std::pair<Vector2, Vector2>>;
using Edge3Set = std::vector<std::pair<Vector3, Vector3>>;
using Edge2Set = std::vector<std::pair<Vector2, Vector2>>;
using Vertex2Set =
std::vector<Vector3>; // Vertex2Set uses Vector3 to retain the z-coordinate
// for circle size adaptation
class Renderer {
private:
@ -40,10 +43,12 @@ private:
auto Map(const Vector2 &a) -> Vector2;
public:
auto Transform(Edge2Set &edges, const MassSpringSystem &mass_springs,
const float angle, const float distance) -> void;
auto Transform(Edge2Set &edges, Vertex2Set &vertices,
const MassSpringSystem &mass_springs, const float angle,
const float distance) -> void;
auto Draw(const Edge2Set &edges) -> void;
auto DrawMassSprings(const Edge2Set &edges, const Vertex2Set &vertices)
-> void;
};
#endif