1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
// $Id: mpVector.h 797 2009-01-16 15:06:53Z larry $
/* 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
*/
//
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// FileName: mpVector.h
// Author : Michael Y. Polyakov
// email : myp@andrew.cmu.edu or mikepolyakov@hotmail.com
// Website : www.angelfire.com/linux/myp
// Date : 7/16/2002
//
// Provides basic vector handling.
//////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef MPVECTOR_H
#define MPVECTOR_H
#include <math.h>
#include <stdio.h>
/* #include <wx/string.h> */
class mp4Vector;
class mpVector
{
friend class mp4Vector;
public:
float x, y, z;
mpVector();
mpVector(float xx, float yy, float zz);
mpVector(const mpVector& other);
mpVector& Normalize();
float Magnitude();
mpVector Cross(const mpVector& other);
mpVector operator - (mpVector v);
mpVector operator + (mpVector v);
float operator * (mpVector v);
mpVector operator - (float c);
mpVector operator + (float c);
mpVector operator / (float c);
mpVector operator * (float c);
void operator = (const mpVector& other);
operator mp4Vector() const;
operator char*() const;
};
class mp4Vector
{
public:
float x, y, z, val;
mp4Vector();
mp4Vector(float aa, float bb, float cc, float dd);
mp4Vector(const mp4Vector& other);
mp4Vector(const mpVector& v, const float value);
void operator = (const mp4Vector& v);
void operator = (const mpVector& v);
bool operator == (const mp4Vector& v) const;
operator mpVector() const;
};
#endif
|