Text archives Help
- From: aek@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r2276 - trunk/UserInterface
- Date: Wed, 28 May 2008 17:32:51 -0600 (MDT)
Author: aek
Date: Wed May 28 17:32:51 2008
New Revision: 2276
Modified:
trunk/UserInterface/XWindowUI.cc
trunk/UserInterface/XWindowUI.h
Log:
* Game mode now tries to automatically pick a reasonable default movement
speed based on the scene bounding box size. The optional number after
-game is now a multiplier for this. Just a plain '-ui "X(-game)"' should
now be fine for most scenes.
* Changed the -invert flag to not require -game to come before it.
Modified: trunk/UserInterface/XWindowUI.cc
==============================================================================
--- trunk/UserInterface/XWindowUI.cc (original)
+++ trunk/UserInterface/XWindowUI.cc Wed May 28 17:32:51 2008
@@ -83,14 +83,15 @@
int offset=0;
CameraPath::IOMode mode = CameraPath::WriteKnots;
string fname="";
- bool gameMode = false;
fov_speed = 10;
translate_speed = 1;
+ invert = 1.0;
dolly_speed = 5;
rotate_speed = 2;
autoview_fov = 60;
trackball_radius = 0.8;
+ setup_game_mode = false;
// Parse command line args.
for (size_t i=0;i<args.size();++i) {
@@ -110,11 +111,10 @@
throw IllegalArgument("XWindowUI -path", i, args);
mode=CameraPath::ReadKnots;
} else if (arg=="-game") {
- gameMode = true;
- double speed = 50.0;
+ setup_game_mode = true;
+ double speed = 1.0;
getDoubleArg(i, args, speed);
translate_speed = speed;
- invert = 1.0;
} else if (arg=="-invert"){
invert = -1.0;
} else if (arg=="-quit") {
@@ -142,7 +142,7 @@
originalObject = NULL;
register_default_keys();
- if (gameMode)
+ if (setup_game_mode)
register_game_mouse();
else
register_default_mouse();
@@ -200,6 +200,13 @@
void XWindowUI::setupBegin(const SetupContext&, int numChannels)
{
+ if(setup_game_mode){
+ BBox bbox;
+ PreprocessContext ppc;
+ rtrt_interface->getScene()->getObject()->computeBounds(ppc, bbox);
+ translate_speed *= bbox.diagonal().length() * 0.6;
+ setup_game_mode = false; // Avoid scaling translate_speed again if user
hits 'p'
+ }
if(numChannels > static_cast<int>(windows.size())){
int oldsize = static_cast<int>(windows.size());
windows.resize(numChannels);
Modified: trunk/UserInterface/XWindowUI.h
==============================================================================
--- trunk/UserInterface/XWindowUI.h (original)
+++ trunk/UserInterface/XWindowUI.h Wed May 28 17:32:51 2008
@@ -177,6 +177,8 @@
Real trackball_radius;
bool quitting;
+ bool setup_game_mode;
+
// The image size
int width, height;
- [Manta] r2276 - trunk/UserInterface, aek, 05/28/2008
Archive powered by MHonArc 2.6.16.