-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathv3.cpp
101 lines (84 loc) · 1.38 KB
/
v3.cpp
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
#include "v3.h"
v3::v3(double a , double b , double c)
{
this-> v[0]=a;
this-> v[1]=b;
this-> v[2]=c;
}
v3::v3 (const v3 & rhs)
{
v[0]=rhs.v[0];
v[1]=rhs.v[1];
v[2]=rhs.v[2];
}
v3::~v3()
{
}
v3 & v3::operator = (const v3 & rhs)
{
v[0]=rhs.v[0];
v[1]=rhs.v[1];
v[2]=rhs.v[2];
return * this;
}
v3 v3::operator+(const v3 & rhs)
{
return v3(v[0]+rhs.v[0],v[1]+rhs.v[1], v[2]+rhs.v[2]);
}
const v3 v3::operator+(const v3 & rhs)const
{
return v3(v[0]+rhs.v[0],v[1]+rhs.v[1], v[2]+rhs.v[2]);
}
v3 v3 ::operator-(const v3 & rhs)
{
return v3(v[0]-rhs.v[0],v[1]-rhs.v[1],v[2]-rhs.v[2]);
}
const v3 v3 ::operator-(const v3 & rhs)const
{
return v3(v[0]-rhs.v[0],v[1]-rhs.v[1],v[2]-rhs.v[2]);
}
v3 v3 :: operator* (const double a)
{
return v3(v[0]*a,v[1]*a, v[2]*a);
}
v3 v3 :: operator / (const double a)
{
return v3(v[0]/a, v[1]/a, v[2]/a);
}
v3 & v3::operator-= (const v3 & rhs)
{
v[0]-=rhs.v[0];
v[1]-=rhs.v[1];
v[2]-=rhs.v[2];
return *this;
}
double v3::dot(const v3 & rhs) const
{
return v[0]*rhs.v[0]+v[1]*rhs.v[1]+v[2]+rhs.v[2];
}
v3 v3::cross(const v3 & rhs)
{
v3 result ;
// code
return result;
}
double v3::getX() const
{
return v[0];
}
double v3::getY() const
{
return v[1];
}
double v3::getZ() const
{
return v[2];
}
// void v3::transform(const glm::mat4 & mat)
// {
// glm::vec4 v =glm::vec4(x,y,z,1.0f),vt;
// vt=mat * v;
// x=vt.x;
// y=vt.y;
// z=vt.z;
// }