src/proto2/Vector.hh
author terom
Tue, 18 Nov 2008 19:17:56 +0000
changeset 54 b8b043ba0abd
parent 53 a76ddb2e39fb
child 55 8ae9dd0ae337
permissions -rw-r--r--
fix some more compiler errors...
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
    }
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    36
    coor operator * (const double d) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    37
        return coor(x*d, y*d);
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    38
    }
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    39
51
360208b631c1 Resolved conflicts.
saiam
parents: 50
diff changeset
    40
};
46
saiam
parents:
diff changeset
    41
53
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    42
template<typename T>
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    43
bool operator== (const coor<T>& c1, const coor<T>& c2) {
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    44
    return ((c1.x == c2.x) && (c1.y == c2.y));
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    45
}
a76ddb2e39fb changed Vector.hh to work as coor.hh
nireco
parents: 51
diff changeset
    46
46
saiam
parents:
diff changeset
    47
#endif