aboutsummaryrefslogtreecommitdiff
path: root/src/Vertice.cpp
diff options
context:
space:
mode:
authorMateja <mail@matejamaric.com>2020-12-27 00:09:34 +0100
committerMateja <mail@matejamaric.com>2020-12-27 00:09:34 +0100
commit0a2da4f82435a49212e276d9d603e84ac298246d (patch)
tree1fea3b94712df18d1229f4f3492b540c90f6f302 /src/Vertice.cpp
parenta84debff887c3e3d930665db140b7a287d3879d4 (diff)
downloaderender-0a2da4f82435a49212e276d9d603e84ac298246d.tar.gz
erender-0a2da4f82435a49212e276d9d603e84ac298246d.zip
Reorganize entire project.
Diffstat (limited to 'src/Vertice.cpp')
-rw-r--r--src/Vertice.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Vertice.cpp b/src/Vertice.cpp
new file mode 100644
index 0000000..022c477
--- /dev/null
+++ b/src/Vertice.cpp
@@ -0,0 +1,46 @@
+#include "Vertice.h"
+
+Vertice::Vertice() : Vector4f() {}
+
+Vertice::Vertice(float x_, float y_, float z_, float u_, float v_) : Vector4f (x_, y_, z_, 1)
+{
+ u = u_;
+ v = v_;
+}
+
+Vertice::Vertice(float x_, float y_, float z_, float w_, float u_, float v_) : Vector4f(x_, y_, z_, w_)
+{
+ u = u_;
+ v = v_;
+}
+
+void Vertice::screenspace(int screenWidth, int screenHeight)
+{
+ x = round(((x + 1.0f) / 2.0f) * screenWidth);
+ y = round(((-y + 1.0f) / 2.0f) * screenHeight);
+}
+
+Vertice Vertice::multiplyMatrix(const Matrix4f& a)
+{
+ float x1, y1, z1, w1;
+ x1 = ((x * a.m[0][0]) + (y * a.m[0][1]) + (z * a.m[0][2]) + (w * a.m[0][3]));
+ y1 = ((x * a.m[1][0]) + (y * a.m[1][1]) + (z * a.m[1][2]) + (w * a.m[1][3]));
+ z1 = ((x * a.m[2][0]) + (y * a.m[2][1]) + (z * a.m[2][2]) + (w * a.m[2][3]));
+ w1 = ((x * a.m[3][0]) + (y * a.m[3][1]) + (z * a.m[3][2]) + (w * a.m[3][3]));
+ return Vertice(x1, y1, z1, w1, u, v);
+}
+
+Vertice& Vertice::operator=(const Vector4f& a)
+{
+ x = a.x;
+ y = a.y;
+ z = a.z;
+ w = a.w;
+ return *this;
+}
+
+Vertice Vertice::divideW()
+{
+ float rw = 1.0f / w;
+ return Vertice(x * rw, y * rw, (z * rw), rw, u * rw, v * rw);
+}