-
Notifications
You must be signed in to change notification settings - Fork 0
/
vector3d.h
49 lines (42 loc) · 1.36 KB
/
vector3d.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
#ifndef _VECTOR3D_h_
#define _VECTOR3D_h_
#include <cmath>
/**
* \file vector3d.h
* \Author Pongó Tivadar
* \date 2015 Május
* \brief A Vector3d osztály deklarációja.
*/
/**
* \brief Vector3d osztály
*
* 3 double tagváltozója van, melyek egy 3d-s vektort reprezentálnak Descartes-koordinátákkal.
* A vektorokat összeadhatjuk, kivonhatjuk, számmal oszthatjuk, szorozhatjuk, vehetjük az
* abszolútértékét a hosszát logaritmikusan csökkenthetjük és mint helyvektornak meghatározhatjuk
* a gömbi koordinátarendszer-beli theta és phi szöget. (abs(), getTheta(), getPhi())
*/
class Vector3d {
private:
double x, y, z;
public:
Vector3d(const Vector3d& vec);
Vector3d(double a = 0.0, double b = 0.0, double c = 0.0);
void setX(double in);
void setY(double in);
void setZ(double in);
double getX() const;
double getY() const;
double getZ() const;
double getTheta() const;
double getPhi() const;
double abs() const;
Vector3d log() const;
friend Vector3d CrossProduct(const Vector3d& a, const Vector3d& b);
Vector3d operator+(const Vector3d& vec);
Vector3d operator-(const Vector3d& vec);
const Vector3d& operator+=(const Vector3d& vec);
const Vector3d& operator-=(const Vector3d& vec);
Vector3d operator*(double a);
Vector3d operator/(double a);
};
#endif // _VECTOR3D_h_