-
Notifications
You must be signed in to change notification settings - Fork 1
/
Point.h
64 lines (51 loc) · 925 Bytes
/
Point.h
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
#ifndef POINT_H
#define POINT_H
#include <cmath>
namespace Graphics
{
template< typename T = float >
class Point
{
public:
T x, y;
Point()
{
this->x = this->y = NULL;
}
Point( T x, T y )
{
this->x = x;
this->y = y;
}
T distance_from( Point p )
{
return( sqrt( pow( p.x - this->x, 2) + pow( p.y - this->y, 2 ) ) );
}
T *to_array()
{
T a[] = { this->x, this->y };
return( a );
}
Point operator+( Point p )
{
return( Point( this->x + p.x, this->y + p.y ) );
}
Point operator-( Point p )
{
return( Point( this->x - p.x, this->y - p.y ) );
}
Point& operator+=( Point p )
{
this->x += p.x;
this->y += p.y;
return( *this );
}
Point& operator-=( Point p )
{
this->x -= p.x;
this->y -= p.y;
return( *this );
}
};
}
#endif