Revision: 20160 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20160 Author: dfelinto Date: 2009-05-11 20:42:24 +0200 (Mon, 11 May 2009)
Log Message: ----------- Tilt option to tilt the camera (for planetarium domes) Modified Paths: -------------- branches/ge_dome/source/blender/blenkernel/intern/scene.c branches/ge_dome/source/blender/blenloader/intern/readfile.c branches/ge_dome/source/blender/makesdna/DNA_scene_types.h branches/ge_dome/source/blender/src/buttons_scene.c branches/ge_dome/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp branches/ge_dome/source/gameengine/GamePlayer/ghost/GPG_Application.cpp branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp branches/ge_dome/source/gameengine/Ketsji/KX_Dome.h branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.cpp branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.h Modified: branches/ge_dome/source/blender/blenkernel/intern/scene.c =================================================================== --- branches/ge_dome/source/blender/blenkernel/intern/scene.c 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/blender/blenkernel/intern/scene.c 2009-05-11 18:42:24 UTC (rev 20160) @@ -235,6 +235,7 @@ sce->r.domesize = 1.0f; sce->r.domeres = 4; sce->r.domeresbuf = 1.0f; + sce->r.dometilt = 0; sce->r.simplify_subsurf= 6; sce->r.simplify_particles= 1.0f; @@ -790,4 +791,4 @@ scene->r.dometext = NULL; scene = scene->id.next; } -} \ No newline at end of file +} Modified: branches/ge_dome/source/blender/blenloader/intern/readfile.c =================================================================== --- branches/ge_dome/source/blender/blenloader/intern/readfile.c 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/blender/blenloader/intern/readfile.c 2009-05-11 18:42:24 UTC (rev 20160) @@ -8078,6 +8078,7 @@ sce->r.domesize = 1.0f; sce->r.domeres = 4; sce->r.domeresbuf = 1.0f; + sce->r.dometilt = 0; } /* DBVT culling by default */ for(wrld=main->world.first; wrld; wrld= wrld->id.next) { Modified: branches/ge_dome/source/blender/makesdna/DNA_scene_types.h =================================================================== --- branches/ge_dome/source/blender/makesdna/DNA_scene_types.h 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/blender/makesdna/DNA_scene_types.h 2009-05-11 18:42:24 UTC (rev 20160) @@ -318,7 +318,7 @@ /* Dome variables */ short domeres, domemode; - short domeangle, pad9; + short domeangle, dometilt; float domesize; float domeresbuf; struct Text *dometext; Modified: branches/ge_dome/source/blender/src/buttons_scene.c =================================================================== --- branches/ge_dome/source/blender/src/buttons_scene.c 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/blender/src/buttons_scene.c 2009-05-11 18:42:24 UTC (rev 20160) @@ -1833,13 +1833,14 @@ uiBlockBeginAlign(block); uiDefButS(block, ROW, 0, "Dome", xco, yco-=30, 88, 19, &(G.scene->r.stereomode), 7.0, 8.0, 0, 0, "Enables dome camera"); uiDefButS(block, NUM, 0, "Ang:", xco+90, yco, 88, 19, &G.scene->r.domeangle, 90.0, 250.0, 0, 0, "Angle (Aperture) of the Dome - it only works in mode 1"); - uiDefButS(block, NUM, 0, "Mode:", xco+180, yco, 88, 19, &G.scene->r.domemode, 1.0, 3.0, 0, 0, "1 fisheye, 2 environment map, 3 spherical panoramic"); + uiDefButS(block, NUM, 0, "Mode:", xco+180, yco, 88, 19, &G.scene->r.domemode, 1.0, 5.0, 0, 0, "1 fisheye, 2 environment map, 3 spherical panoramic, 4 front-truncated, 5 rear-truncated"); uiDefButF(block, NUM, 0, "Size:", xco, yco-=21, 88, 19, &G.scene->r.domesize, 0.5, 3.5, 0, 0, "Size adjustments"); uiDefButS(block, NUM, 0, "Tes:", xco+90, yco, 88, 19, &G.scene->r.domeres, 1.0, 8.0, 0, 0, "Tesselation level - 1 to 8"); uiDefButF(block, NUM, 0, "Res:", xco+180, yco, 88, 19, &G.scene->r.domeresbuf, 0.1, 1.0, 0, 0, "Buffer Resolution - decrease it to increase speed"); - uiDefIDPoinBut(block, test_scriptpoin_but, ID_SCRIPT, 1, "Warp Data: ", xco,yco-=21,268, 19, &G.scene->r.dometext, "Custom Warp Mesh data file"); + uiDefButS(block, NUM, 0, "Tilt:", xco, yco-=21, 88, 19, &G.scene->r.dometilt, -359, 359, 0, 0, "Vertical Camera Tilt"); + uiDefIDPoinBut(block, test_scriptpoin_but, ID_SCRIPT, 1, "Warp Data: ", xco+90,yco,178, 19, &G.scene->r.dometext, "Custom Warp Mesh data file"); uiBlockEndAlign(block); uiBlockSetDirection(block, UI_TOP); Modified: branches/ge_dome/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp =================================================================== --- branches/ge_dome/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp 2009-05-11 18:42:24 UTC (rev 20160) @@ -376,7 +376,7 @@ //initialize Dome Settings if(blscene->r.stereomode == RAS_IRasterizer::RAS_STEREO_DOME) - ketsjiengine->InitDome(blscene->r.domesize, blscene->r.domeres, blscene->r.domemode, blscene->r.domeangle, blscene->r.domeresbuf, blscene->r.dometext); + ketsjiengine->InitDome(blscene->r.domesize, blscene->r.domeres, blscene->r.domemode, blscene->r.domeangle, blscene->r.domeresbuf, blscene->r.dometilt, blscene->r.dometext); if (sceneconverter) { Modified: branches/ge_dome/source/gameengine/GamePlayer/ghost/GPG_Application.cpp =================================================================== --- branches/ge_dome/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2009-05-11 18:42:24 UTC (rev 20160) @@ -701,7 +701,7 @@ //initialize Dome Settings if(m_startScene->r.stereomode == RAS_IRasterizer::RAS_STEREO_DOME) - m_ketsjiengine->InitDome(m_startScene->r.domesize, m_startScene->r.domeres, m_startScene->r.domemode, m_startScene->r.domeangle, m_startScene->r.domeresbuf, m_startScene->r.dometext); + m_ketsjiengine->InitDome(m_startScene->r.domesize, m_startScene->r.domeres, m_startScene->r.domemode, m_startScene->r.domeangle, m_startScene->r.domeresbuf, m_startScene->r.dometilt, m_startScene->r.dometext); // Set the GameLogic.globalDict from marshal'd data, so we can // load new blend files and keep data in GameLogic.globalDict Modified: branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp =================================================================== --- branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/Ketsji/KX_Dome.cpp 2009-05-11 18:42:24 UTC (rev 20160) @@ -49,6 +49,7 @@ short mode, //mode - fisheye, truncated, warped, panoramic, ... short angle, float resbuf, //size adjustment of the buffer + short tilt, struct Text* warptext ): @@ -60,6 +61,7 @@ m_mode(mode), m_angle(angle), m_resbuffer(resbuf), + m_tilt(tilt), m_canvas(canvas), m_rasterizer(rasterizer), m_rendertools(rendertools), @@ -1485,6 +1487,7 @@ Uses 5 cameras for angles up to 250\xBA Uses 6 cameras for angles up to 360\xBA */ + int i; float deg45 = MT_PI / 4; MT_Scalar c = cos(deg45); MT_Scalar s = sin(deg45); @@ -1579,6 +1582,23 @@ 0.0, 1.0, 0.0, s, 0.0, c); } + + if (m_tilt) + { + printf("\n\n\\n\n\nTILTOU\n\n"); + float degtilt = ((m_tilt % 360) * 2 * MT_PI) / 360; + c = cos(degtilt); + s = sin(degtilt); + + MT_Matrix3x3 tilt_mat = MT_Matrix3x3( + 1.0, 0.0, 0.0, + 0.0, c, -s, + 0.0, s, c + ); + + for (i =0;i<6;i++) + m_locRot[i] = tilt_mat * m_locRot[i]; + } } void KX_Dome::RotateCamera(KX_Camera* cam, int i) Modified: branches/ge_dome/source/gameengine/Ketsji/KX_Dome.h =================================================================== --- branches/ge_dome/source/gameengine/Ketsji/KX_Dome.h 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/Ketsji/KX_Dome.h 2009-05-11 18:42:24 UTC (rev 20160) @@ -67,6 +67,7 @@ short mode, short angle, float resbuf, + short tilt, struct Text* warptext ); @@ -166,6 +167,7 @@ short m_angle; //the angle of the fisheye float m_radangle; //the angle of the fisheye in radians float m_resbuffer; //the resolution of the buffer + short m_tilt; //the camera vertical tilt RAS_Rect m_viewport; Modified: branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.cpp =================================================================== --- branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.cpp 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.cpp 2009-05-11 18:42:24 UTC (rev 20160) @@ -262,9 +262,9 @@ m_sceneconverter = sceneconverter; } -void KX_KetsjiEngine::InitDome(float size, short res, short mode, short angle, float resbuf, struct Text* text) +void KX_KetsjiEngine::InitDome(float size, short res, short mode, short angle, float resbuf, short tilt, struct Text* text) { - m_dome = new KX_Dome(m_canvas, m_rasterizer, m_rendertools,this, size, res, mode, angle, resbuf, text); + m_dome = new KX_Dome(m_canvas, m_rasterizer, m_rendertools,this, size, res, mode, angle, resbuf, tilt, text); m_usedome = true; } Modified: branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.h =================================================================== --- branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.h 2009-05-11 18:26:47 UTC (rev 20159) +++ branches/ge_dome/source/gameengine/Ketsji/KX_KetsjiEngine.h 2009-05-11 18:42:24 UTC (rev 20160) @@ -211,7 +211,7 @@ RAS_IRenderTools* GetRenderTools(){return m_rendertools;}; /// Dome functions - void InitDome(float size, short res, short mode, short angle, float resbuf, struct Text* text); + void InitDome(float size, short res, short mode, short angle, float resbuf, short tilt, struct Text* text); void EndDome(); void RenderDome(); bool m_usedome; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs