Flow123d  release_2.2.0-914-gf1a3a4f
myvector.h
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file myvector.h
15  * @brief
16  */
17 
18 #ifndef vectorH
19 #define vectorH
20 
21 
22 namespace ngh {
23 
24 class TPoint;
25 
26 
27 class TVector {
28 protected:
29  static int numberInstance;
30  int id;
31 
32  double coors[ 3 ];
33  double length;
34 
35  int generateId();
36 
37  void Compute();
38  void CompLength();
39 
40 public:
41  TVector();
42  TVector(double, double, double);
44  TVector(const TVector &);
45  ~TVector();
46 
47  double Length() const;
48  void Get(double&, double&, double&) const;
49  void Get(double*) const;
50  double Get(int) const;
51  void SetVector(double, double, double);
52  bool IsZero();
53 
54  double X1() const;
55  double X2() const;
56  double X3() const;
57 
58  TVector & operator =(const TPoint&);
59  TVector operator +(const TVector&);
60  TVector operator +(const TPoint&);
61  TVector operator -(const TVector&);
62  friend TVector operator*(const TVector&, double);
63  friend TVector operator*(double, const TVector&);
64  bool operator ==(const TVector&);
65 
66  static int getNumInstances() {
68  }
69 };
70 
71 TVector Cross(const TVector&, const TVector&);
72 double Dot(const TVector&, const TVector&);
73 bool AreParallel(const TVector&, const TVector&);
74 bool ArePerpendicular(const TVector&, const TVector&);
75 
76 } //namespace ngh
77 
78 #endif
TVector operator-(const TVector &)
Definition: vector.cpp:120
double coors[3]
Definition: myvector.h:32
bool IsZero()
Definition: vector.cpp:151
static int numberInstance
Definition: myvector.h:29
Definition: abscissa.h:25
TVector operator+(const TVector &)
Definition: vector.cpp:96
void Compute()
Definition: vector.cpp:78
void Get(double &, double &, double &) const
Definition: vector.cpp:163
void SetVector(double, double, double)
Definition: vector.cpp:132
double length
Definition: myvector.h:33
double X2() const
Definition: vector.cpp:224
double Length() const
Definition: vector.cpp:159
bool operator==(const TVector &)
Definition: vector.cpp:211
double X3() const
Definition: vector.cpp:228
bool AreParallel(const TVector &, const TVector &)
Definition: vector.cpp:232
double Dot(const TVector &, const TVector &)
Definition: vector.cpp:199
bool ArePerpendicular(const TVector &, const TVector &)
Definition: vector.cpp:244
int generateId()
Definition: vector.cpp:29
TVector & operator=(const TPoint &)
Definition: vector.cpp:86
static int getNumInstances()
Definition: myvector.h:66
void CompLength()
Definition: vector.cpp:82
friend TVector operator*(const TVector &, double)
Definition: vector.cpp:139
TVector Cross(const TVector &, const TVector &)
Definition: vector.cpp:182
double X1() const
Definition: vector.cpp:220