File: Test-Field.H

package info (click to toggle)
openfoam 4.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,028 kB
  • ctags: 58,990
  • sloc: cpp: 830,760; sh: 10,227; ansic: 8,215; xml: 745; lex: 437; awk: 194; sed: 91; makefile: 77; python: 18
file content (58 lines) | stat: -rw-r--r-- 1,109 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
#include <iostream>

template<class C>
class Vector;

template<class C>
Vector<C> operator+(const Vector<C>& v1, const Vector<C>& v2);

template<class C>
std::ostream& operator<<(std::ostream& os, const Vector<C>& v);


/*---------------------------------------------------------------------------*\
                           Class Vector Declaration
\*---------------------------------------------------------------------------*/

template<class C>
class Vector
{

    double X, Y;

public:

    inline Vector(const double x, const double y);

    C x() const
    {
        return X;
    }

    C y() const
    {
        return Y;
    }

    friend Vector<C> operator+ <C>(const Vector<C>& v1, const Vector<C>& v2);

    friend std::ostream& operator<<(std::ostream& os, const Vector<C>& v)
    {
        os  << v.X << '\t' << v.Y << '\n';
        return os;
    }
};

template<class C>
inline Vector<C>::Vector(const double x, const double y)
{
    X = x;
    Y = y;
}


template<class C>
inline Vector<C> operator+(const Vector<C>& v1, const Vector<C>& v2)
{
    return Vector<C>(v1.X+v2.X, v1.Y+v2.Y);
}