-
Notifications
You must be signed in to change notification settings - Fork 0
/
vector.h
76 lines (56 loc) · 1.69 KB
/
vector.h
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
#ifndef vector_h
#define vector_h
/*****************************************************************************
3D Vector Class
NAME:vector.h
DATE:5/11/1996
AUTHOR: Z.A.Nolan
*****************************************************************************/
#include <iostream.h> // include the streams library
// Dummy Class
class TLine ;
class TVector
{
private:
double _X ;
double _Y ;
double _Z ;
// Streaming
istream &Read (istream &In) ;
ostream &Write (ostream &Out) const ;
public:
// Constructors
TVector () ;
TVector (double X,double Y, double Z) ;
TVector (int X,int Y,int Z) ;
TVector (const TLine &LineA ,const TLine &LineB) ;
// Selectors
double X() const ;
double Y() const ;
double Z() const ;
// Modifiers
TVector operator+(const TVector &Vector) const ;
TVector operator-(const TVector &Vector) const ;
TVector & operator+= (const TVector &Vector) ;
TVector & operator-= (const TVector &Vector) ;
// Cross product
TVector operator* (const TVector &Vector) const;
TVector &operator*= (const TVector &Vector) ;
// Dot Product
double Dot (const TVector &Vector) const ;
// * by Scalar
TVector operator* (double Scalar) const ;
TVector &operator*= (double Scalar) ;
// Distance between two vectors
double Distance (const TVector &Vector) const ;
// The Length of a vector
double Magnitude () const;
// Make a vector unit length
TVector Unit() const ;
// make a Vector negative
TVector operator-() const ;
// these just call the real functions
friend istream &operator>>(istream &In, TVector &Vector);
friend ostream &operator<<(ostream &Out,const TVector &Vector) ;
} ;
#endif