|
@@ -32,6 +32,7 @@
|
32
|
32
|
* Mongoose - Created
|
33
|
33
|
=================================================================*/
|
34
|
34
|
|
|
35
|
+#include <stdio.h>
|
35
|
36
|
#include <math.h>
|
36
|
37
|
#include "hel/math.h"
|
37
|
38
|
#include "Camera.h"
|
|
@@ -238,6 +239,7 @@ void Camera::setSensitivityX(float angle)
|
238
|
239
|
mRotateDelta = helDegToRad(angle);
|
239
|
240
|
}
|
240
|
241
|
|
|
242
|
+
|
241
|
243
|
////////
|
242
|
244
|
void Camera::command(enum camera_command cmd)
|
243
|
245
|
{
|
|
@@ -290,13 +292,17 @@ void Camera::command(enum camera_command cmd)
|
290
|
292
|
#endif
|
291
|
293
|
break;
|
292
|
294
|
case CAMERA_ROTATE_UP:
|
293
|
|
- mTheta2 += mRotateDelta2;
|
294
|
|
- rotate(mTheta2, 1.0, 0.0, 0.0);
|
|
295
|
+ if (mTheta2 < (M_PI / 2)) {
|
|
296
|
+ mTheta2 += mRotateDelta2;
|
|
297
|
+ rotate(mTheta2, 1.0, 0.0, 0.0);
|
|
298
|
+ }
|
295
|
299
|
break;
|
296
|
300
|
case CAMERA_ROTATE_DOWN:
|
297
|
|
- mTheta2 -= mRotateDelta2;
|
298
|
|
- rotate(mTheta2, 1.0, 0.0, 0.0);
|
299
|
|
- break;
|
|
301
|
+ if (mTheta2 > -(M_PI / 2)) {
|
|
302
|
+ mTheta2 -= mRotateDelta2;
|
|
303
|
+ rotate(mTheta2, 1.0, 0.0, 0.0);
|
|
304
|
+ }
|
|
305
|
+ break;
|
300
|
306
|
case CAMERA_ROTATE_RIGHT:
|
301
|
307
|
mTheta += mRotateDelta;
|
302
|
308
|
rotate(mTheta, 0.0, 1.0, 0.0);
|
|
@@ -325,7 +331,7 @@ void Camera::command(enum camera_command cmd)
|
325
|
331
|
}
|
326
|
332
|
|
327
|
333
|
|
328
|
|
-// FIXME: Mostly invalid for QUAT_CAM (can rotate on XYZ)
|
|
334
|
+//! \fixme Mostly invalid for QUAT_CAM (can rotate on XYZ)
|
329
|
335
|
bool Camera::isBehind(int x, int z)
|
330
|
336
|
{
|
331
|
337
|
double bTheta, bCameraX, bCameraZ, Distance;
|