diff options
author | sapier <Sapier at GMX dot net> | 2014-04-27 16:09:21 +0200 |
---|---|---|
committer | sapier <Sapier at GMX dot net> | 2014-05-18 01:08:13 +0200 |
commit | 09970b7b6daa82ba0cb71540ebb70e671637782f (patch) | |
tree | bea283470a892adcdcc5962b498a10ca2f405297 /src/camera.h | |
parent | d9f6f9e7a8038071648eb53da0d5be8abdaa9e45 (diff) | |
download | minetest-09970b7b6daa82ba0cb71540ebb70e671637782f.tar.gz minetest-09970b7b6daa82ba0cb71540ebb70e671637782f.tar.bz2 minetest-09970b7b6daa82ba0cb71540ebb70e671637782f.zip |
Add support for interlaced polarized 3d screens
Add (experimental) support for topbottom as well as sidebyside 3d mode
Diffstat (limited to 'src/camera.h')
-rw-r--r-- | src/camera.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/camera.h b/src/camera.h index 63d109f1f..8831257cc 100644 --- a/src/camera.h +++ b/src/camera.h @@ -33,7 +33,7 @@ class LocalPlayer; struct MapDrawControl; class IGameDef; -enum CameraModes {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; +enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT}; /* Client camera class, manages the player and camera scene nodes, the viewing distance @@ -117,8 +117,7 @@ public: // Update the camera from the local player's position. // busytime is used to adjust the viewing range. void update(LocalPlayer* player, f32 frametime, f32 busytime, - f32 tool_reload_ratio, - int current_camera_mode, ClientEnvironment &c_env); + f32 tool_reload_ratio, ClientEnvironment &c_env); // Render distance feedback loop void updateViewingRange(f32 frametime_in, f32 busytime_in); @@ -133,7 +132,23 @@ public: // Draw the wielded tool. // This has to happen *after* the main scene is drawn. // Warning: This clears the Z buffer. - void drawWieldedTool(); + void drawWieldedTool(irr::core::matrix4* translation=NULL); + + // Toggle the current camera mode + void toggleCameraMode() { + if (m_camera_mode == CAMERA_MODE_FIRST) + m_camera_mode = CAMERA_MODE_THIRD; + else if (m_camera_mode == CAMERA_MODE_THIRD) + m_camera_mode = CAMERA_MODE_THIRD_FRONT; + else + m_camera_mode = CAMERA_MODE_FIRST; + } + + //read the current camera mode + inline CameraMode getCameraMode() + { + return m_camera_mode; + } private: // Nodes @@ -196,6 +211,8 @@ private: scene::IMesh *m_wield_mesh_next; u16 m_previous_playeritem; std::string m_previous_itemname; + + CameraMode m_camera_mode; }; #endif |