-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVector3D.h
55 lines (53 loc) · 1.76 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
50
51
52
53
54
55
#pragma once
namespace Bladestick
{
namespace Drawing
{
public ref class Vector3D
{
internal:
double x;
double y;
double z;
double w;
double mx;
double my;
double mz;
double mw;
public:
static double getAngleBetween(Vector3D ^ v1, Vector3D ^ v2);
Vector3D(double x, double y, double z, double w, double mx, double my, double mz, double mw);
Vector3D(double x, double y, double z, double w);
Vector3D(double x, double y, double z);
Vector3D(const Vector3D %vector);
Vector3D();
static initonly Vector3D ^ UP = gcnew Vector3D(0, 1, 0);
static initonly Vector3D ^ DOWN = gcnew Vector3D(0, -1, 0);
static initonly Vector3D ^ LEFT = gcnew Vector3D(-1, 0, 0);
static initonly Vector3D ^ RIGHT = gcnew Vector3D(1, 0, 0);
static initonly Vector3D ^ FORTH = gcnew Vector3D(0, 0, -1);
static initonly Vector3D ^ BACK = gcnew Vector3D(0, 0, 1);
Vector3D operator= (Vector3D vector);
Vector3D ^ operator= (Vector3D ^ vector);
Vector3D ^ add(double x, double y, double z);
Vector3D ^ operator+ (double x);
Vector3D ^ operator+ (Vector3D ^ vector);
Vector3D ^ subtract(double x, double y, double z);
Vector3D ^ operator- (double x);
Vector3D ^ operator- (Vector3D ^ vector);
Vector3D ^ operator- ();
Vector3D ^ scale(double x, double y, double z);
Vector3D ^ scale(double x);
double getMagnitude();
Vector3D ^ normalized();
double scalarProduct(double x, double y, double z);
double scalarProduct(Vector3D ^ v);
Vector3D ^ vectorProduct(double x, double y, double z);
Vector3D ^ vectorProduct(Vector3D ^ v);
Vector3D ^ clone();
void modifiedToMain();
void swapModifiedAndMain();
bool Equals(Vector3D ^ v) override;
};
}
}