From 5c613a10364f30bd6add25f7950433f0c482c3ca Mon Sep 17 00:00:00 2001 From: Matthew Kosarek Date: Sun, 31 Oct 2021 13:54:11 -0400 Subject: (mkosarek) Working undamped spring motion --- 2d/rigidbody/rigidbody_1.html | 2 ++ 2d/rigidbody/rigidbody_1/main.cpp | 20 ++++++++++---------- 2d/rigidbody/rigidbody_2.html | 2 ++ 2d/rigidbody/rigidbody_2/main.cpp | 20 ++++++++++---------- 2d/rigidbody/rigidbody_3.html | 2 ++ 2d/rigidbody/rigidbody_3/main.cpp | 12 ++++++------ 6 files changed, 32 insertions(+), 26 deletions(-) (limited to '2d/rigidbody') diff --git a/2d/rigidbody/rigidbody_1.html b/2d/rigidbody/rigidbody_1.html index 62e4bf6..153e443 100644 --- a/2d/rigidbody/rigidbody_1.html +++ b/2d/rigidbody/rigidbody_1.html @@ -26,6 +26,8 @@
  • Rectangle-Rectangle
  • Separating Axis Theorem
  • +
  • +
  • Softbody
  • diff --git a/2d/rigidbody/rigidbody_1/main.cpp b/2d/rigidbody/rigidbody_1/main.cpp index a327fee..c8a3cb4 100644 --- a/2d/rigidbody/rigidbody_1/main.cpp +++ b/2d/rigidbody/rigidbody_1/main.cpp @@ -1,4 +1,4 @@ -#include "../../../shared_cpp/OrthographicRenderer.h" +#include "../../../shared_cpp/Renderer2d.h" #include "../../../shared_cpp/types.h" #include "../../../shared_cpp/WebglContext.h" #include "../../../shared_cpp/mathlib.h" @@ -85,18 +85,18 @@ struct Rigidbody { }; struct Rectangle { - OrthographicShape shape; + Mesh2d shape; Rigidbody body; Vector2 originalPoints[4]; Vector2 transformedPoints[4]; - void load(OrthographicRenderer* renderer, Vector4 color, float32 width, float32 height) { + void load(Renderer2d* renderer, Vector4 color, float32 width, float32 height) { color = color.toNormalizedColor(); float32 halfWidth = width / 2.f; float32 halfHeight = height / 2.f; - OrthographicVertex vertices[6]; + Vertex2d vertices[6]; vertices[0].position = Vector2 { -halfWidth, -halfHeight }; vertices[1].position = Vector2 { -halfWidth, halfHeight }; vertices[2].position = Vector2 { halfWidth, halfHeight }; @@ -128,7 +128,7 @@ struct Rectangle { } } - void render(OrthographicRenderer* renderer) { + void render(Renderer2d* renderer) { shape.render(renderer); } @@ -138,20 +138,20 @@ struct Rectangle { }; struct Circle { - OrthographicShape shape; + Mesh2d shape; Rigidbody body; Vector2 force; float32 radius = 5.f; - void load(OrthographicRenderer* renderer, Vector4 color) { + void load(Renderer2d* renderer, Vector4 color) { const int32 numSegments = 36; const float32 radiansPerSegment = (2.f * PI) / static_cast(numSegments); const int32 numVertices = numSegments * 3; color = color.toNormalizedColor(); - OrthographicVertex vertices[numSegments * 3]; + Vertex2d vertices[numSegments * 3]; for (int idx = 0; idx < numSegments; idx++) { int vIdx = idx * 3; @@ -171,7 +171,7 @@ struct Circle { shape.model = Mat4x4().translateByVec2(body.position); } - void render(OrthographicRenderer* renderer) { + void render(Renderer2d* renderer) { shape.render(renderer); } @@ -189,7 +189,7 @@ void update(float32 time, void* userData); void unload(); WebglContext context; -OrthographicRenderer renderer; +Renderer2d renderer; MainLoop mainLoop; Rectangle rectangle; Circle pointer; diff --git a/2d/rigidbody/rigidbody_2.html b/2d/rigidbody/rigidbody_2.html index 2378a7e..f24666c 100644 --- a/2d/rigidbody/rigidbody_2.html +++ b/2d/rigidbody/rigidbody_2.html @@ -26,6 +26,8 @@
  • Rectangle-Rectangle
  • Separating Axis Theorem
  • +
  • +
  • Softbody
  • diff --git a/2d/rigidbody/rigidbody_2/main.cpp b/2d/rigidbody/rigidbody_2/main.cpp index 44a3c53..cae18a5 100644 --- a/2d/rigidbody/rigidbody_2/main.cpp +++ b/2d/rigidbody/rigidbody_2/main.cpp @@ -1,4 +1,4 @@ -#include "../../../shared_cpp/OrthographicRenderer.h" +#include "../../../shared_cpp/Renderer2d.h" #include "../../../shared_cpp/types.h" #include "../../../shared_cpp/WebglContext.h" #include "../../../shared_cpp/mathlib.h" @@ -100,18 +100,18 @@ struct Rigidbody { }; struct Rectangle { - OrthographicShape shape; + Mesh2d shape; Rigidbody body; Vector2 originalPoints[4]; Vector2 transformedPoints[4]; - void load(OrthographicRenderer* renderer, Vector4 color, float32 width, float32 height) { + void load(Renderer2d* renderer, Vector4 color, float32 width, float32 height) { color = color.toNormalizedColor(); float32 halfWidth = width / 2.f; float32 halfHeight = height / 2.f; - OrthographicVertex vertices[6]; + Vertex2d vertices[6]; vertices[0].position = Vector2 { -halfWidth, -halfHeight }; vertices[1].position = Vector2 { -halfWidth, halfHeight }; vertices[2].position = Vector2 { halfWidth, halfHeight }; @@ -145,7 +145,7 @@ struct Rectangle { } } - void render(OrthographicRenderer* renderer) { + void render(Renderer2d* renderer) { shape.render(renderer); } @@ -155,20 +155,20 @@ struct Rectangle { }; struct Circle { - OrthographicShape shape; + Mesh2d shape; Rigidbody body; Vector2 force; float32 radius = 5.f; - void load(OrthographicRenderer* renderer, Vector4 color) { + void load(Renderer2d* renderer, Vector4 color) { const int32 numSegments = 36; const float32 radiansPerSegment = (2.f * PI) / static_cast(numSegments); const int32 numVertices = numSegments * 3; color = color.toNormalizedColor(); - OrthographicVertex vertices[numSegments * 3]; + Vertex2d vertices[numSegments * 3]; for (int idx = 0; idx < numSegments; idx++) { int vIdx = idx * 3; @@ -188,7 +188,7 @@ struct Circle { shape.model = Mat4x4().translateByVec2(body.position); } - void render(OrthographicRenderer* renderer) { + void render(Renderer2d* renderer) { shape.render(renderer); } @@ -206,7 +206,7 @@ void update(float32 time, void* userData); void unload(); WebglContext context; -OrthographicRenderer renderer; +Renderer2d renderer; MainLoop mainLoop; Rectangle rectangle; Circle pointer; diff --git a/2d/rigidbody/rigidbody_3.html b/2d/rigidbody/rigidbody_3.html index 052c6b1..ed07bbb 100644 --- a/2d/rigidbody/rigidbody_3.html +++ b/2d/rigidbody/rigidbody_3.html @@ -26,6 +26,8 @@
  • Rectangle-Rectangle
  • Separating Axis Theorem
  • +
  • +
  • Softbody
  • diff --git a/2d/rigidbody/rigidbody_3/main.cpp b/2d/rigidbody/rigidbody_3/main.cpp index 2a0af24..7d3edd0 100644 --- a/2d/rigidbody/rigidbody_3/main.cpp +++ b/2d/rigidbody/rigidbody_3/main.cpp @@ -1,4 +1,4 @@ -#include "../../../shared_cpp/OrthographicRenderer.h" +#include "../../../shared_cpp/Renderer2d.h" #include "../../../shared_cpp/types.h" #include "../../../shared_cpp/WebglContext.h" #include "../../../shared_cpp/mathlib.h" @@ -100,13 +100,13 @@ struct Rigidbody { }; struct Circle { - OrthographicShape shape; + Mesh2d shape; Rigidbody body; Rigidbody previousBody; Vector2 force; float32 radius; - void load(OrthographicRenderer* renderer, float32 inRadius, Vector4 startColor, Vector4 endColor) { + void load(Renderer2d* renderer, float32 inRadius, Vector4 startColor, Vector4 endColor) { radius = inRadius; const int32 numSegments = 36; const float32 radiansPerSegment = (2.f * PI) / static_cast(numSegments); @@ -115,7 +115,7 @@ struct Circle { startColor = startColor.toNormalizedColor(); endColor = endColor.toNormalizedColor(); - OrthographicVertex vertices[numSegments * 3]; + Vertex2d vertices[numSegments * 3]; for (int idx = 0; idx < numSegments; idx++) { int vIdx = idx * 3; @@ -146,7 +146,7 @@ struct Circle { body.update(dtSeconds); } - void render(OrthographicRenderer* renderer) { + void render(Renderer2d* renderer) { shape.render(renderer); } @@ -175,7 +175,7 @@ void update(float32 time, void* userData); void unload(); WebglContext context; -OrthographicRenderer renderer; +Renderer2d renderer; MainLoop mainLoop; Circle c1; Circle c2; -- cgit v1.2.1