-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVector.cpp
More file actions
56 lines (42 loc) · 866 Bytes
/
Vector.cpp
File metadata and controls
56 lines (42 loc) · 866 Bytes
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <math.h>
#include <stdio.h>
#include "Vector.h"
float Vector4::magnitude_sq()
{
return sq(data[0]) + sq(data[1]) + sq(data[2]);
}
float Vector4::magnitude()
{
return sqrt( sq(data[0]) + sq(data[1]) + sq(data[2]));
}
void Vector4::normalize()
{
float mag = magnitude();
if( mag != 0.0) {
scale( *this, 1.0f / mag, *this);
}
}
Vector4 Vector4::normalized() const
{
Vector4 u( *this);
u.normalize();
return u;
}
void Vector4::negate()
{
data[0] = -data[0];
data[1] = -data[1];
data[2] = -data[2];
}
Vector4 Vector4::negated() const
{
return Vector4( -data[0], -data[1], -data[2], data[3]);
}
void Vector4::print() const
{
printf( "V4( %f %f %f %f)\n", data[0], data[1], data[2], data[3]);
}
void Vector4::fprintCSV( FILE * file) const
{
fprintf( file, "%f,%f,%f,%f\n", data[0], data[1], data[2], data[3]);
}