src/proto2/Vector.hh
author nireco
Tue, 18 Nov 2008 19:05:35 +0000
changeset 53 a76ddb2e39fb
parent 51 360208b631c1
child 54 b8b043ba0abd
permissions -rw-r--r--
changed Vector.hh to work as coor.hh
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     1
#ifndef COOR_H
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     2
#define COOR_H
46
saiam
parents:
diff changeset
     3
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     4
//#define TYPE double
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
     5
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     6
template <typename TYPE>
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     7
class coor {
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
     8
public:
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
     9
    TYPE x;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    10
    TYPE y;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    11
    coor() {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    12
        x = 0; y = 0;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    13
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    14
    coor(TYPE X, TYPE Y) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    15
        x = X;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    16
        y = Y;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    17
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    18
    coor(const coor& c) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    19
        x = c.x;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    20
        y = c.y;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    21
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    22
    void operator = (const coor& c) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    23
        x = c.x;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    24
        y = c.y;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    25
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    26
    coor operator + (const coor& c) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    27
        return coor(x+c.x, y+c.y);
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    28
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    29
    coor operator - (const coor& c) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    30
        return coor(x-c.x, y-c.y);
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    31
    }
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    32
    void operator += (const coor& c) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    33
        x += c.x;
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    34
        y += c.y;
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    35
    }
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    36
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    37
    coor operator * (const double d) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    38
        return coor(x*d, y*d);
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    39
    }
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    40
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    41
};
46
saiam
parents:
diff changeset
    42
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    43
template<typename T>
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    44
bool operator== (const coor<T>& c1, const coor<T>& c2) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    45
    return ((c1.x == c2.x) && (c1.y == c2.y));
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    46
}
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    47
46
saiam
parents:
diff changeset
    48
#endif