-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVec3D.h
49 lines (44 loc) · 1.19 KB
/
Vec3D.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
/*
Author: Johan Fotsing
Class: ECE6122
Last Date Modified: 12/06/2019
Description:
Here is the header file for the class Vec3D that is used to facilitate vector manipulation
*/
#ifndef VEC_3D
#define VEC_3D
#include <iostream>
using namespace std;
class Vec3D
{
private:
double x, y, z;
public:
Vec3D();
Vec3D(double, double, double);
Vec3D(const Vec3D &);
// Member operations
Vec3D& operator= (const Vec3D &);
Vec3D operator+(const Vec3D &) const;
Vec3D& operator+= (const Vec3D &);
Vec3D operator-() const;
Vec3D operator-(const Vec3D &) const;
Vec3D& operator-= (const Vec3D &);
Vec3D operator*(const double &) const;
Vec3D operator/(const double &) const;
// Getters and special functions
double getX() const;
double getY() const;
double getZ() const;
void setX(const double &);
void setY(const double &);
void setZ(const double &);
double norm() const;
double dotProduct(const Vec3D &) const;
Vec3D projectOn(const Vec3D &) const;
// Friend functions
friend Vec3D operator*(const double &, const Vec3D &);
friend ostream& operator<<(ostream&, const Vec3D &);
//~Vec3D();
};
#endif