VECTOR.H
Description : Class library defining a set of 3D vector operations
Header files called upon : iostream.h iomanip.h math.h
Files required in project :
MATRIX.CPP
Class details are as follows:
Class declaration : Vector
Member variables (private)
- float *vec; float pointer to vector elements
- int size; number of vector elements
Constructors (public)
- Vector() : vec(new float[3]), size(3) {}
- Default constructor to allocate space for a 3D vector
- eg Vector vec1;
- Vector(float p, float q, float r) : vec(new float[3]), size(3)
- Constructor for an initialized 3D vector
- eg Vector vec1(0.1, 0.2, 0.3);
- Vector(int i) : vec(new float[i], size(i) {}
- Constructor to allocate space for a vector that has i number of dimensions
- eg Vector vec1(4);
- Vector(const Vector &v)
- Constructor to copy an already existing vector into a previously undeclared vector
- eg Vector vec2(vec1);
- NB1 vec2 is previously undeclared, vec1 already initialized
- NB2 function defined in MATRIX.CPP
- ~Vector()
- Destructor
Member functions (public)
- int GetSize()
- Returns size of vector
- eg int i = vec1.GetSize();
- Vector& operator= (const Vector& v)
- Overloads '=' operator for vector assignment
- eg vec1 = vec2;
- NB function defined in MATRIX.CPP
- Vector operator+ (const Vector& v)
- Overloads '+' operator for vector additionn
- eg vec1 = vec2 + vec3;
- Vector& operator+= (Vector& v)
- Overloads '+=' operator for vector incrementation
- eg vec1 += vec2;
- Vector operator- (const Vector& v)
- Overloads '-' operator for vector subtraction
- eg vec1 = vec2 - vec3;
- Vector& operator-= (Vector& v)
- Overloads '-=' operator for vector decrementation
- eg vec1 -= vec2;
- float operator* (const Vector& v)
- Overloads '*' operator to calculate scalar product between two vectors
- eg float scl1 = vec1 * vec2;
- Vector operator& (const Vector& v)
- Overloads '&' operator to calculate vector product between two vectors
- eg vec1 = vec2 & vec3;
- Vector operator/ (float y)
- Overloads '/' operator for division of a vector by a scalar
- eg vec1 = vec2 / scl1;
- Vector& operator/= (float y)
- Overloads'/=' operator for vector normalization
- eg vec1 /= scl1;
- float mod()
- Returns modulus of a vector
- eg scl1 = vec1.mod();
- float& operator() (int i)
- Overloads parentheses operator to access a particular element in a vector
- eg float scl1 = vec1(i);
- NB 'i'th vector element corresponds to [i-1]th array element therefore v1(1) accesses first element
- friend class Matrix
- matrix class
- NB defined in MATRIX.CPP
- friend ostream& operator << (ostream &os, Vector &v)
- Overloads '<<' operator to write out a vector
- eg cout << vec1;
- NB defined in MATRIX.CPP