diff options
author | Ian C <ianc@noddybox.co.uk> | 2010-08-19 13:24:37 +0000 |
---|---|---|
committer | Ian C <ianc@noddybox.co.uk> | 2010-08-19 13:24:37 +0000 |
commit | af34bad8b39e95276b0d4e08ccdc26f89df2d2ec (patch) | |
tree | 427e06fe813cd847f96e12ff612d245b2da970c5 /vec3d.h | |
parent | 19bbd5822593c7198dd54eb0f5d38fa1ed8d8fb7 (diff) |
Updates to maths and added the use of a 3D vector.
Diffstat (limited to 'vec3d.h')
-rw-r--r-- | vec3d.h | 71 |
1 files changed, 71 insertions, 0 deletions
@@ -0,0 +1,71 @@ +// +// glgrav - OpenGL N-Body gravity simulator +// +// Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk) +// +// This program 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 2 of the License, or +// (at your option) any later version. +// +// This program 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 this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ------------------------------------------------------------------------- +// +// 3D Vector +// +// $Id$ +// +#ifndef VEC3D_H + +#define VEC3D_H + +#include "global.h" + +class Vec3D +{ +public: + Vec3D(); + Vec3D(double dx, double dy, double dz); + virtual ~Vec3D(); + + void Set(double dx, double dy ,double dz); + + double dx() const; + double dy() const; + double dz() const; + + bool IsNull() const; + + double Length() const; + + void Normalise(); + void SetLength(double d); + + void AddScalar(double d); + void Minus(); + void Scale(double d); + + void Add(const Vec3D& v); + void Subtract(const Vec3D& v); + void Scale(const Vec3D& v); + + double DotProduct(const Vec3D& v); + Vec3D CrossProduct(const Vec3D& v); + +private: + double m_dx; + double m_dy; + double m_dz; +}; + +#endif + +// END OF FILE // |