aboutsummaryrefslogtreecommitdiff
path: root/tool_src/BspLib/Vector.h
blob: 92f9bbe5e5195946335c934d8e0143d22f61937f (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//-----------------------------------------------------------------------------
//	BSPLIB HEADER: Vector.h
//
//  Copyright (c) 1997 by Markus Hadwiger
//  All Rights Reserved.
//-----------------------------------------------------------------------------

#ifndef _VECTOR_H_
#define _VECTOR_H_

// bsplib header files
#include "Vector3.h"
#include "Vector2.h"


BSPLIB_NAMESPACE_BEGIN


// vertex plus vector yields vertex -------------------------------------------
inline Vertex3 operator +( const Vertex3 v1, const Vector3 v2 )
{
	return Vertex3( v1.X + v2.X, v1.Y + v2.Y, v1.Z + v2.Z, 1.0 );
}

// vector plus vertex yields vertex -------------------------------------------
inline Vertex3 operator +( const Vector3 v1, const Vertex3 v2 )
{
	return Vertex3( v1.X + v2.X, v1.Y + v2.Y, v1.Z + v2.Z, 1.0 );
}

// vertex minus vertex yields vector ------------------------------------------
inline Vector3 operator -( const Vertex3 v1, const Vertex3 v2 )
{
	return Vector3( v1.X - v2.X, v1.Y - v2.Y, v1.Z - v2.Z, 1.0 );
}

// vertex minus vector yields vertex ------------------------------------------
inline Vertex3 operator -( const Vertex3 v1, const Vector3 v2 )
{
	return Vertex3( v1.X - v2.X, v1.Y - v2.Y, v1.Z - v2.Z, 1.0 );
}

// vector plus vector yields vector -------------------------------------------
inline Vector3 operator +( const Vector3 v1, const Vector3 v2 )
{
	return Vector3( v1.X + v2.X, v1.Y + v2.Y, v1.Z + v2.Z, 1.0 );
}

// vector minus vector yields vector ------------------------------------------
inline Vector3 operator -( const Vector3 v1, const Vector3 v2 )
{
	return Vector3( v1.X - v2.X, v1.Y - v2.Y, v1.Z - v2.Z, 1.0 );
}


//-----------------------------------------------------------------------------


// vertex plus vector yields vertex -------------------------------------------
inline Vertex2 operator +( const Vertex2 v1, const Vector2 v2 )
{
	return Vertex2( v1.X + v2.X, v1.Y + v2.Y, 1.0 );
}

// vector plus vertex yields vertex -------------------------------------------
inline Vertex2 operator +( const Vector2 v1, const Vertex2 v2 )
{
	return Vertex2( v1.X + v2.X, v1.Y + v2.Y, 1.0 );
}

// vertex minus vertex yields vector ------------------------------------------
inline Vector2 operator -( const Vertex2 v1, const Vertex2 v2 )
{
	return Vector2( v1.X - v2.X, v1.Y - v2.Y, 1.0 );
}

// vertex minus vector yields vertex ------------------------------------------
inline Vertex2 operator -( const Vertex2 v1, const Vector2 v2 )
{
	return Vertex2( v1.X - v2.X, v1.Y - v2.Y, 1.0 );
}

// vector plus vector yields vector -------------------------------------------
inline Vector2 operator +( const Vector2 v1, const Vector2 v2 )
{
	return Vector2( v1.X + v2.X, v1.Y + v2.Y, 1.0 );
}

// vector minus vector yields vector ------------------------------------------
inline Vector2 operator -( const Vector2 v1, const Vector2 v2 )
{
	return Vector2( v1.X - v2.X, v1.Y - v2.Y, 1.0 );
}


BSPLIB_NAMESPACE_END


#endif // _VECTOR_H_