Stellarium 0.12.3
gVector.hpp
1 /***************************************************************************
2  * Name: gVector.hpp
3  *
4  * Description: GVector class envelop the STL vertor class to add
5  * some error control.
6  ***************************************************************************/
7 
8 /***************************************************************************
9  * Copyright (C) 2006 by J.L. Canales *
10  * jlcanales@users.sourceforge.net *
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  * This program is distributed in the hope that it will be useful, *
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
20  * GNU General Public License for more details. *
21  * *
22  * You should have received a copy of the GNU General Public License *
23  * along with this program; if not, write to the *
24  * Free Software Foundation, Inc., *
25  * 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. *
26  ***************************************************************************/
27 
28 #ifndef _GVECTOR_HPP_
29 #define _GVECTOR_HPP_ 1
30 
31 #include "gVectorTempl.hpp"
32 
33 //## Class: gVector
34 // This class implement the needed code to make vector calculations.
35 // The gVector class inherit from gVectorTempl class that is created
36 // from the vector STL class giving all the STL vector funcionality.
37 //
38 // This class has not overlapped the = operator and the copy constructor
39 // because this methods are given by the vector STL class.
40 class gVector : public br_stl::gVectorTempl<double>
41 {
42 
43 public:
44  gVector();
45  gVector(unsigned int ai_uiElementsNumber);
46 
47  virtual ~gVector() {};
48 
49  //## Other Operations (specified)
50  //## Operation: operator*
51  // This operators make the vectorial product calculation
52  // gVector operator* ( const gVector &ai_rightVector);
53 
54  //## Operation: operator*
55  // This operator make the scalar product calculation.
56  //gVector operator* ( double ai_escalar);
57 
58  gVector operator+ (gVector &ai_rightVector) const;
59  const gVector& operator+=(gVector &ai_rightVector);
60 
61  gVector operator- (gVector &ai_rightVector) const;
62  const gVector& operator-=(gVector &ai_rightVector);
63 
64  //## Operation: Dot
65  // This method compute the dot vector between two vectors
66  double Dot(const gVector& ai_rightVector) const;
67 
68  //## Operation: Angle
69  // This method compute the angle angle between two vectors
70  //double Angle(const gVector&) const;
71 
72  //## Operation: Magnitude
73  // This method compute the vector magnitude
74  double Magnitude() const;
75 
76 };
77 
78 #endif // _GVECTOR_HPP_