aboutsummaryrefslogtreecommitdiff
path: root/source/Vector4f.cpp
blob: 506dc22c9fc20513e51851743ee79ee9f9b1d11f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "Vector4f.h"

Vector4f::Vector4f() {}

Vector4f::Vector4f(float x_, float y_, float z_, float w_) 
{
	x = x_;
	y = y_;
	z = z_;
	w = w_;
}

float Vector4f::dotProduct(const Vector4f& a)
{
	return ((x * a.x) + (y * a.y) + (z * a.z));
}

Vector4f Vector4f::crossProduct(const Vector4f& a)
{
	return Vector4f((y * a.z - z * a.y), (z * a.x - x * a.z), (x * a.y - y * a.x), (w * a.w));
}

Vector4f Vector4f::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 Vector4f(x1, y1, z1, w1);
}