-
Notifications
You must be signed in to change notification settings - Fork 141
Expand file tree
/
Copy pathcppVector.cpp
More file actions
113 lines (88 loc) · 1.75 KB
/
cppVector.cpp
File metadata and controls
113 lines (88 loc) · 1.75 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include "stdafx.h"
# include "cppVector.h"
# include <math.h>
cppVector::cppVector()
{ i = 0.0;
j = 0.0;
k = 0.0;
}
cppVector::~cppVector()
{
}
cppVector::cppVector( double ii, double jj, double kk )
{ i = ii;
j = jj;
k = kk;
}
cppVector::cppVector(const cppVector & v )
{ i = v.i;
j = v.j;
k = v.k;
}
cppVector cppVector::operator=( const cppVector & v )
{
i = v.i;
j = v.j;
k = v.k;
return *this;
}
cppVector cppVector::operator*( Matrix & m )
{
cppVector result;
result.i += i * m.get( 0, 0 );
result.i += j * m.get( 1, 0 );
result.i += k * m.get( 2, 0 );
result.j += i * m.get( 0, 1 );
result.j += j * m.get( 1, 1 );
result.j += k * m.get( 2, 1 );
result.k += i * m.get( 0, 2 );
result.k += j * m.get( 1, 2 );
result.k += k * m.get( 2, 2 );
return result;
}
cppVector cppVector::operator+( const cppVector & v )
{ cppVector result;
result.i = i + v.i;
result.j = j + v.j;
result.k = k + v.k;
return result;
}
void cppVector::seti( double ii )
{ i = ii;
}
void cppVector::setj( double jj )
{ j = jj;
}
void cppVector::setk( double kk )
{ k = kk;
}
double cppVector::geti()
{ return i;
}
double cppVector::getj()
{ return j;
}
double cppVector::getk()
{ return k;
}
void cppVector::Normalize()
{
double length = sqrt( pow( i, 2 ) + pow( j, 2 ) + pow( k, 2 ) );
if( length <= 0 )
return;
i = i/length;
j = j/length;
k = k/length;
}
double cppVector::dot( const cppVector & v )
{ return i*v.i + j*v.j + k*v.k;
}
cppVector cppVector::crossProduct( const cppVector & v )
{
cppVector result;
result.i = j*v.k - k*v.j;
result.j = k*v.i - i*v.k;
result.k = i*v.j - j*v.i;
result.Normalize();
return result;
}