From 93f52c0387c249c58c8501f55e496bb9a5711997 Mon Sep 17 00:00:00 2001
From: bobarna <barnabas.borcsok@gmail.com>
Date: Tue, 18 May 2021 23:13:46 +0200
Subject: [PATCH] ready for turn-in

---
 docs/img/pbd_demo/k_0_2.png      | Bin 0 -> 5849 bytes
 docs/img/pbd_demo/k_0_6.png      | Bin 0 -> 3434 bytes
 docs/img/pbd_demo/k_0_8.png      | Bin 0 -> 2922 bytes
 docs/img/pbd_demo/k_1.png        | Bin 0 -> 2104 bytes
 docs/img/teaser.png              | Bin 0 -> 7902 bytes
 src/geometries/PBDSimulation.cpp |  46 +++++++++++++++++++------------
 src/geometries/PBDSimulation.h   |   2 +-
 src/main.cpp                     |   2 +-
 8 files changed, 31 insertions(+), 19 deletions(-)
 create mode 100644 docs/img/pbd_demo/k_0_2.png
 create mode 100644 docs/img/pbd_demo/k_0_6.png
 create mode 100644 docs/img/pbd_demo/k_0_8.png
 create mode 100644 docs/img/pbd_demo/k_1.png
 create mode 100644 docs/img/teaser.png

diff --git a/docs/img/pbd_demo/k_0_2.png b/docs/img/pbd_demo/k_0_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6e1c5bb7a170c8372d166975d2de675e62d2eeb
GIT binary patch
literal 5849
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
P7#KWV{an^LB{Ts5t4>|A

literal 0
HcmV?d00001

diff --git a/docs/img/pbd_demo/k_0_6.png b/docs/img/pbd_demo/k_0_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..431462afc25d6305caa94b9e8dd7556f4c666677
GIT binary patch
literal 3434
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
S%OeH`1_n=8KbLh*2~7Z`_hF>~

literal 0
HcmV?d00001

diff --git a/docs/img/pbd_demo/k_0_8.png b/docs/img/pbd_demo/k_0_8.png
new file mode 100644
index 0000000000000000000000000000000000000000..82ab12ef563fb8172acaf411c9adf4513b0f5df7
GIT binary patch
literal 2922
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
W*eag!xWK@`z~JfX=d#Wzp$Py`4v}vF

literal 0
HcmV?d00001

diff --git a/docs/img/pbd_demo/k_1.png b/docs/img/pbd_demo/k_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..1123d822bb5054ad75d1f3139e389e1515b9c495
GIT binary patch
literal 2104
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

literal 0
HcmV?d00001

diff --git a/docs/img/teaser.png b/docs/img/teaser.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee0c6c9b28b54c77165670906a834917d2fe7d2e
GIT binary patch
literal 7902
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

literal 0
HcmV?d00001

diff --git a/src/geometries/PBDSimulation.cpp b/src/geometries/PBDSimulation.cpp
index 195b941..d96e6fc 100644
--- a/src/geometries/PBDSimulation.cpp
+++ b/src/geometries/PBDSimulation.cpp
@@ -11,12 +11,16 @@ PBDSimulation::PBDSimulation(size_t _nr_sims, size_t _nr_segments, float _l_seg)
         lSeg(_l_seg),
         externalForces(.0f, .0f, .0f) {
 
+    bool red = true;
     // placing the fibers of the cloth
     for (size_t i = 0; i < nrStrands; i++) {
         vec3 currPos(-0.15f, -0.15f, lSeg*0.5f * (float)i - 0.15);
 
         vec3 color = vec3(0.9f, 0.3f, 0.3f);
-        strands.emplace_back(CreateFiber(nrSegments, lSeg, currPos * vec3(1, -1, 1), color));
+
+        if(i%8 == 4) red = !red;
+
+        strands.emplace_back(CreateFiber(nrSegments, lSeg, currPos * vec3(1, -1, 1), color, red));
     }
 
 }
@@ -123,37 +127,37 @@ void PBDSimulation::Draw() {
             particlePosAndColor.push_back(strand[i + 1]->pos.x);
             particlePosAndColor.push_back(strand[i + 1]->pos.y);
             particlePosAndColor.push_back(strand[i + 1]->pos.z);
-            particlePosAndColor.push_back(strand[i + 1]->color.x);
-            particlePosAndColor.push_back(strand[i + 1]->color.y);
-            particlePosAndColor.push_back(strand[i + 1]->color.z);
+            particlePosAndColor.push_back(strand[i]->color.x);
+            particlePosAndColor.push_back(strand[i]->color.y);
+            particlePosAndColor.push_back(strand[i]->color.z);
 
             particlePosAndColor.push_back(next_strand[i]->pos.x);
             particlePosAndColor.push_back(next_strand[i]->pos.y);
             particlePosAndColor.push_back(next_strand[i]->pos.z);
-            particlePosAndColor.push_back(next_strand[i]->color.x);
-            particlePosAndColor.push_back(next_strand[i]->color.y);
-            particlePosAndColor.push_back(next_strand[i]->color.z);
+            particlePosAndColor.push_back(strand[i]->color.x);
+            particlePosAndColor.push_back(strand[i]->color.y);
+            particlePosAndColor.push_back(strand[i]->color.z);
 
             particlePosAndColor.push_back(next_strand[i]->pos.x);
             particlePosAndColor.push_back(next_strand[i]->pos.y);
             particlePosAndColor.push_back(next_strand[i]->pos.z);
-            particlePosAndColor.push_back(next_strand[i]->color.x);
-            particlePosAndColor.push_back(next_strand[i]->color.y);
-            particlePosAndColor.push_back(next_strand[i]->color.z);
+            particlePosAndColor.push_back(strand[i]->color.x);
+            particlePosAndColor.push_back(strand[i]->color.y);
+            particlePosAndColor.push_back(strand[i]->color.z);
 
             particlePosAndColor.push_back(strand[i + 1]->pos.x);
             particlePosAndColor.push_back(strand[i + 1]->pos.y);
             particlePosAndColor.push_back(strand[i + 1]->pos.z);
-            particlePosAndColor.push_back(strand[i + 1]->color.x);
-            particlePosAndColor.push_back(strand[i + 1]->color.y);
-            particlePosAndColor.push_back(strand[i + 1]->color.z);
+            particlePosAndColor.push_back(strand[i]->color.x);
+            particlePosAndColor.push_back(strand[i]->color.y);
+            particlePosAndColor.push_back(strand[i]->color.z);
 
             particlePosAndColor.push_back(next_strand[i+1]->pos.x);
             particlePosAndColor.push_back(next_strand[i+1]->pos.y);
             particlePosAndColor.push_back(next_strand[i+1]->pos.z);
-            particlePosAndColor.push_back(next_strand[i+1]->color.x);
-            particlePosAndColor.push_back(next_strand[i+1]->color.y);
-            particlePosAndColor.push_back(next_strand[i+1]->color.z);
+            particlePosAndColor.push_back(strand[i]->color.x);
+            particlePosAndColor.push_back(strand[i]->color.y);
+            particlePosAndColor.push_back(strand[i]->color.z);
         }
     }
 
@@ -181,7 +185,7 @@ vec3 PBDSimulation::getExternalForces() const {
     return externalForces;
 }
 
-std::vector<Particle *> PBDSimulation::CreateFiber(size_t n, float l, vec3 startPos, vec3 color) {
+std::vector<Particle *> PBDSimulation::CreateFiber(size_t n, float l, vec3 startPos, vec3 color, bool red) {
     vec3 currPos = startPos;
     std::vector<Particle *> currentStrand;
 
@@ -191,6 +195,14 @@ std::vector<Particle *> PBDSimulation::CreateFiber(size_t n, float l, vec3 start
         // which is 2.0e-7 kg == 10^(-7) kg
         float m = util::randomOffsetf(.35f, .15f);
 
+        if(red) {
+            if((i % 8) < 4) color = vec3(0.9f, 0.3f, 0.3f);
+            else color = vec3(0.9f, 0.9f, 0.9f);
+        } else {
+            if((i % 8) >= 4) color = vec3(0.9f, 0.3f, 0.3f);
+            else color = vec3(0.9f, 0.9f, 0.9f);
+        }
+
         // first and last particle's position is infinite
         if (i == 0 || i == n-1) currentStrand.push_back(new Particle(currPos, 0, color));
         else currentStrand.push_back(new Particle(currPos, 1 / m, color));
diff --git a/src/geometries/PBDSimulation.h b/src/geometries/PBDSimulation.h
index e5906e4..1db565c 100644
--- a/src/geometries/PBDSimulation.h
+++ b/src/geometries/PBDSimulation.h
@@ -47,7 +47,7 @@ public:
 
     void resetExternalForces();
 
-    std::vector<Particle *> CreateFiber(size_t n, float l, vec3 startPos, vec3 color);
+    std::vector<Particle *> CreateFiber(size_t n, float l, vec3 startPos, vec3 color, bool red);
 };
 
 
diff --git a/src/main.cpp b/src/main.cpp
index cdd3eab..a36f341 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -139,7 +139,7 @@ int main(int argc, char **argv) {
     }
 
     glfwInit();
-    window = glfwCreateWindow(WIDTH, HEIGHT, "Brave-2", NULL, NULL);
+    window = glfwCreateWindow(WIDTH, HEIGHT, "mmadid", NULL, NULL);
     if (!window) {
         std::cerr << "ERROR: could not open window with GLFW3" << std::endl;
         glfwTerminate();
-- 
GitLab