File: Point.h

package info (click to toggle)
urg 0.8.11-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 3,212 kB
  • ctags: 1,605
  • sloc: sh: 10,014; cpp: 6,459; ansic: 2,419; makefile: 203
file content (87 lines) | stat: -rw-r--r-- 1,229 bytes parent folder | download | duplicates (2)
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
#ifndef QRK_POINT_H
#define QRK_POINT_H

/*!
  \file
  \brief ʒǔ^`

  \author Satofumi KAMIMURA

  $Id: Point.h 1283 2009-09-09 22:14:18Z satofumi $
*/

namespace qrk
{
  /*!
    \brief ʒǔ^`
  */
  template <typename T>
  class Point
  {
  public:
    T x;
    T y;


    Point(void) : x(0), y(0)
    {
    }


    Point(T x_, T y_) : x(x_), y(y_)
    {
    }


    bool operator == (const Point<T>& rhs) const
    {
      return ((this->x == rhs.x) && (this->y == rhs.y)) ? true : false;
    }


    bool operator < (const Point<T>& rhs) const
    {
      if (y < rhs.y) {
        return true;

      } else if (x < rhs.x) {
        return true;

      } else {
        return false;
      }
    }


    Point<T>& operator += (const Point<T>& rhs)
    {
      this->x += rhs.x;
      this->y += rhs.y;

      return *this;
    }


    const Point<T> operator + (const Point<T>& rhs) const
    {
      return Point<T>(*this) += rhs;
    }


    Point<T>& operator -= (const Point<T>& rhs)
    {
      this->x -= rhs.x;
      this->y -= rhs.y;

      return *this;
    }


    const Point<T> operator - (const Point<T>& rhs) const
    {
      return Point<T>(*this) -= rhs;
    }
  };
}

#endif /* !QRK_POINT_H */