1
/*-----------------------------------------------------------------------------
7
-------------------------------------------------------------------------------
9
Functions for dealing with 2d (usually texture mapping) values.
11
-----------------------------------------------------------------------------*/
21
/*-----------------------------------------------------------------------------
23
-----------------------------------------------------------------------------*/
25
GLvector2 glVectorNormalize (GLvector2 v)
30
length = glVectorLength (v);
31
if (length < 0.000001f)
33
return v * (1.0f / length);
37
/*-----------------------------------------------------------------------------
39
-----------------------------------------------------------------------------*/
41
float glVectorLength (GLvector2 v)
44
return (float)sqrt (v.x * v.x + v.y * v.y);
48
/*-----------------------------------------------------------------------------
50
-----------------------------------------------------------------------------*/
52
GLvector2 glVectorSinCos (float a)
57
a *= DEGREES_TO_RADIANS;
64
/*-----------------------------------------------------------------------------
66
-----------------------------------------------------------------------------*/
68
GLvector2 glVector (float x, float y)
79
/*-----------------------------------------------------------------------------
81
-----------------------------------------------------------------------------*/
83
GLvector2 glVectorAdd (GLvector2 val1, GLvector2 val2)
88
result.x = val1.x + val2.x;
89
result.y = val1.y + val2.y;
95
/*-----------------------------------------------------------------------------
97
-----------------------------------------------------------------------------*/
99
GLvector2 glVectorInterpolate (GLvector2 v1, GLvector2 v2, float scalar)
104
result.x = MathInterpolate (v1.x, v2.x, scalar);
105
result.y = MathInterpolate (v1.y, v2.y, scalar);
110
/*-----------------------------------------------------------------------------
112
-----------------------------------------------------------------------------*/
114
GLvector2 glVectorSubtract (GLvector2 val1, GLvector2 val2)
119
result.x = val1.x - val2.x;
120
result.y = val1.y - val2.y;
125
/*-----------------------------------------------------------------------------
127
-----------------------------------------------------------------------------*/
129
GLvector2 GLvector2::operator+ (const GLvector2& c)
131
return glVector (x + c.x, y + c.y);
134
GLvector2 GLvector2::operator+ (const float& c)
136
return glVector (x + c, y + c);
139
void GLvector2::operator+= (const GLvector2& c)
145
void GLvector2::operator+= (const float& c)
151
GLvector2 GLvector2::operator- (const GLvector2& c)
153
return glVector (x - c.x, y - c.y);
156
GLvector2 GLvector2::operator- (const float& c)
158
return glVector (x - c, y - c);
161
void GLvector2::operator-= (const GLvector2& c)
167
void GLvector2::operator-= (const float& c)
173
GLvector2 GLvector2::operator* (const GLvector2& c)
175
return glVector (x * c.x, y * c.y);
178
GLvector2 GLvector2::operator* (const float& c)
180
return glVector (x * c, y * c);
183
void GLvector2::operator*= (const GLvector2& c)
189
void GLvector2::operator*= (const float& c)
195
GLvector2 GLvector2::operator/ (const GLvector2& c)
197
return glVector (x / c.x, y / c.y);
200
GLvector2 GLvector2::operator/ (const float& c)
202
return glVector (x / c, y / c);
205
void GLvector2::operator/= (const GLvector2& c)
211
void GLvector2::operator/= (const float& c)
217
bool GLvector2::operator== (const GLvector2& c)
219
if (x == c.x && y == c.y)