Report patch name instead of index in debug
[foam-extend-3.2.git] / src / foam / primitives / Vector2D / Vector2DTemplateI.H
blob436513abaa389e6dc7b0f637d4c372f3038053fc
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
28 namespace Foam
31 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
33 // Construct null
34 template <class Cmpt>
35 inline Vector2D<Cmpt>::Vector2D()
39 // Construct given VectorSpace
40 template <class Cmpt>
41 inline Vector2D<Cmpt>::Vector2D(const VectorSpace<Vector2D<Cmpt>, Cmpt, 2>& vs)
43     VectorSpace<Vector2D<Cmpt>, Cmpt, 2>(vs)
47 // Construct given three Cmpts
48 template <class Cmpt>
49 inline Vector2D<Cmpt>::Vector2D(const Cmpt& vx, const Cmpt& vy)
51     this->v_[X] = vx;
52     this->v_[Y] = vy;
56 // Construct from Istream
57 template <class Cmpt>
58 inline Vector2D<Cmpt>::Vector2D(Istream& is)
60     VectorSpace<Vector2D<Cmpt>, Cmpt, 2>(is)
64 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
66 template <class Cmpt>
67 inline const Cmpt&  Vector2D<Cmpt>::x() const
69     return this->v_[X];
72 template <class Cmpt>
73 inline const Cmpt&  Vector2D<Cmpt>::y() const
75     return this->v_[Y];
79 template <class Cmpt>
80 inline Cmpt& Vector2D<Cmpt>::x()
82     return this->v_[X];
85 template <class Cmpt>
86 inline Cmpt& Vector2D<Cmpt>::y()
88     return this->v_[Y];
92 template <class Cmpt>
93 inline const Cmpt& Vector2D<Cmpt>::operator()
95     const direction i
96 ) const
98     return this->operator[](i);
102 template <class Cmpt>
103 inline Cmpt& Vector2D<Cmpt>::operator()
105     const direction i
108     return this->operator[](i);
112 // * * * * * * * * * * * * * * * Global Operators  * * * * * * * * * * * * * //
114 template <class Cmpt>
115 inline typename innerProduct<Vector2D<Cmpt>, Vector2D<Cmpt> >::type
116 operator&(const Vector2D<Cmpt>& v1, const Vector2D<Cmpt>& v2)
118     return Cmpt(v1.x()*v2.x() + v1.y()*v2.y());
122 template <class Cmpt>
123 inline scalar Vector2D<Cmpt>::perp(const Vector2D<Cmpt>& b) const
125     return x()*b.y()-y()*b.x();
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 } // End namespace Foam
133 // ************************************************************************* //