1 #ifndef INTERFACE_SIM_TEST_GUI_H 2 #define INTERFACE_SIM_TEST_GUI_H 4 #include "SimulationGUI.h" 5 #include "View/ViewPlot.h" 6 #include "View/WorldDragWidget.h" 8 #include "View/ObjectPoseWidget.h" 9 #include <KrisLibrary/utils/stringutils.h> 10 #include <KrisLibrary/utils/apputils.h> 15 #define GLUT_LEFT_BUTTON 0 16 #define GLUT_MIDDLE_BUTTON 1 17 #define GLUT_RIGHT_BUTTON 2 24 vector<bool> drawMeasurement;
80 AppUtils::ProgramSettings settings;
82 int cur_link,cur_driver;
85 enum {ModeNormal, ModeForceApplication};
87 vector<RobotPoseWidget> robotWidgets;
88 vector<RigidObjectPoseWidget> objectWidgets;
89 WidgetSet allRobotWidgets,allObjectWidgets;
93 int forceSpringActive;
94 Vector3 forceSpringAnchor;
95 int drawBBs,drawPoser,drawDesired,drawEstimated,drawContacts,drawWrenches,drawExpanded,drawTime,doLogging;
97 string contactStateLogFile, contactWrenchLogFile;
98 map<int,string> robotCommandLogFiles, robotSensedLogFiles, robotTorqueLogFiles;
100 vector<SensorPlot> sensorPlots;
101 vector<vector<bool> > drawSensors;
102 vector<GeometryAppearance> originalAppearance,expandedAppearance;
106 virtual void Start();
107 virtual bool OnCommand(
const string& cmd,
const string& args);
108 virtual bool OnIdle();
109 void ToggleSensorPlot(
int sensorIndex,
int enabled);
110 void ToggleSensorMeasurement(
int sensorIndex,
int measurement,
int enabled);
111 void ToggleDrawExpandedCheckbox(
int checked);
112 void SimStep(Real dt);
113 void SensorPlotUpdate();
115 bool LoadFile(
const char* fn);
118 virtual void RenderWorld();
119 virtual void RenderScreen();
120 virtual void DoPassiveMouseMove(
int x,
int y);
121 virtual void BeginDrag(
int x,
int y,
int button,
int modifiers);
122 virtual void EndDrag(
int x,
int y,
int button,
int modifiers);
123 virtual void DoFreeDrag(
int dx,
int dy,
int button);
126 if(button == GLUT_LEFT_BUTTON) DragPan(dx,dy);
131 if(button == GLUT_LEFT_BUTTON) DragZoom(dx,dy);
136 if(button == GLUT_LEFT_BUTTON) { camera.dist *= (1 + 0.01*Real(dy)); SendRefresh(); }
144 #include <KrisLibrary/GLdraw/GLScreenshotProgram.h> 146 #if defined (__APPLE__) || defined (MACOSX) 150 #endif //__APPLE__ || MACOSX 152 class GLUISimTestGUI :
public GLScreenshotProgram<GLUIGUI>
155 typedef GLScreenshotProgram<GLUIGUI>
BaseT;
159 AppUtils::ProgramSettings settings;
163 GLUI_Button* save_movie_button;
164 GLUI_Listbox* driver_listbox;
165 GLUI_Spinner* driver_value_spinner;
166 GLUI_String file_name;
168 vector<string> controllerSettings;
169 int controllerSettingIndex;
170 GLUI_Listbox* settingsBox;
171 GLUI_EditText* settingEdit;
172 vector<string> controllerCommands;
173 int controllerCommandIndex;
174 GLUI_EditText* commandEdit;
178 vector<bool> sensorDrawn;
179 vector<vector<bool> > sensorMeasurementDrawn;
180 GLUI_Listbox* sensorBox;
181 int sensorSelectIndex;
182 int sensorMeasurementSelectIndex;
183 GLUI_Checkbox* toggleSensorDrawCheckbox;
184 GLUI_Checkbox* toggleMeasurementDrawCheckbox;
185 GLUI_Button* isolateMeasurementButton;
186 GLUI_Listbox* measurementListbox;
189 virtual bool Initialize();
191 void UpdateControllerSettingGUI();
192 void UpdateSensorGUI();
193 void UpdateSensorMeasurementGUI();
194 virtual void Handle_Control(
int id);
195 virtual void Handle_Keypress(
unsigned char c,
int x,
int y);
196 virtual bool OnCommand(
const string& cmd,
const string& args);
The main world class containing multiple robots, objects, and static geometries (terrains). Lights and other viewport information may also be stored here.
Definition: World.h:20
virtual void DoAltDrag(int dx, int dy, int button)
Overload this for alt-dragging.
Definition: SimTestGUI.h:129
An OpenGL x-y auto-scrolling plot. Used in SimTest (Interface/SimTestGUI.h) to draw sensor data...
Definition: ViewPlot.h:14
Generic simulation program.
Definition: SimulationGUI.h:36
SimTest program.
Definition: SimTestGUI.h:76
A backend that processes mouse motion calls into dragging callbacks. Makes it a bit easier to determi...
Definition: NavigationGUI.h:13
virtual void DoShiftDrag(int dx, int dy, int button)
Overload this for shift-dragging.
Definition: SimTestGUI.h:134
Definition: GenericGUI.h:84
Definition: SimTestGUI.h:20
A physical simulator for a RobotWorld.
Definition: WorldSimulation.h:67
virtual void DoCtrlDrag(int dx, int dy, int button)
Overload this for control-dragging.
Definition: SimTestGUI.h:124