+++ /dev/null
-///////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2010
-//
-// This file is part of starlight.
-//
-// starlight is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// starlight is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with starlight. If not, see <http://www.gnu.org/licenses/>.
-//
-///////////////////////////////////////////////////////////////////////////
-//
-// File and Version Information:
-// $Rev:: $: revision of last commit
-// $Author:: $: author of last commit
-// $Date:: $: date of last commit
-//
-// Description:
-//
-//
-//
-///////////////////////////////////////////////////////////////////////////
-
-
-#ifndef VECTOR3_H
-#define VECTOR3_H
-
-
-#include <iostream>
-#include <cmath>
-
-
-class vector3
-{
- public:
- vector3();
- vector3(double *vec);
- vector3(double x, double y, double z);
- virtual ~vector3();
-
- const double* GetVector() const { return _vec; }
-
- void SetVector(double x, double y, double z);
- void SetVector(double *vec);
-
- vector3& operator =(const vector3& vec)
- {
- if (this != &vec)
- for (unsigned int i = 0; i < 3; ++i)
- _vec[i] = vec._vec[i];
- return *this;
- }
-
- vector3& operator +=(const vector3& vec)
- {
- for (unsigned int i = 0; i < 3; ++i)
- _vec[i] += vec._vec[i];
- return *this;
- }
- vector3& operator -=(const vector3& vec)
- {
- for (unsigned int i = 0; i < 3; ++i)
- _vec[i] -= vec._vec[i];
- return *this;
- }
-
- double X() const { return _vec[0]; }
- double Y() const { return _vec[1]; }
- double Z() const { return _vec[2]; }
-
- double Mag2() const { return _vec[0] * _vec[0] + _vec[1] * _vec[1] + _vec[2] * _vec[2]; }
- double Mag () const { return sqrt(Mag2()); }
-
- friend std::ostream& operator << (std::ostream& out,
- const vector3& vec)
- {
- out << "(" << vec.X() << ", " << vec.Y() << ", " << vec.Z() << ")";
- return out;
- }
-
- private:
-
- double _vec[3];
-
-};
-
-
-#endif // VECTOR3_H