1 #ifndef WORLD_VIEW_PROGRAM_H 2 #define WORLD_VIEW_PROGRAM_H 5 #include <KrisLibrary/GLdraw/GL.h> 6 #include <KrisLibrary/GLdraw/Widget.h> 7 #include <KrisLibrary/math3d/Ray3D.h> 11 #include <KrisLibrary/GLdraw/GLUINavigationProgram.h> 12 #include <KrisLibrary/GLdraw/GLScreenshotProgram.h> 13 #if defined (__APPLE__) || defined (MACOSX) 17 #endif //__APPLE__ || MACOSX 19 #define BASE_PROGRAM GLUINavigationProgram 25 #include <KrisLibrary/GLdraw/GLUTNavigationProgram.h> 26 #include <KrisLibrary/GLdraw/GLScreenshotProgram.h> 27 #define BASE_PROGRAM GLUTNavigationProgram 29 #if defined (__APPLE__) || defined (MACOSX) 30 #include <GLUT/glut.h> 36 #include <GL/freeglut_ext.h> 48 bool LoadWorldCommandLine(WorldModel& world,
int argc,
const char** argv);
51 #if HAVE_GLUI || HAVE_GLUT 59 class WorldViewProgram :
public GLScreenshotProgram<BASE_PROGRAM>
62 WorldViewProgram(WorldModel* world);
63 virtual ~WorldViewProgram() {}
65 bool LoadCommandLine(
int argc,
const char** argv);
66 virtual bool Initialize();
67 virtual void SetWorldLights();
68 void ClickRay(
int x,
int y,Ray3D& r)
const;
69 RobotModel* ClickRobot(
const Ray3D& r,
int& body,Vector3& localpt)
const;
70 RigidObjectModel* ClickObject(
const Ray3D& r,Vector3& localpt)
const;
71 virtual void RefreshIdle();
72 virtual void RenderWorld();
73 virtual void DoFreeDrag(
int dx,
int dy,
int button);
74 virtual void DoCtrlDrag(
int dx,
int dy,
int button);
75 virtual void DoAltDrag(
int dx,
int dy,
int button);
76 virtual void DoShiftDrag(
int dx,
int dy,
int button);
81 #endif // HAVE_GLUI || HAVE_GLUT 90 virtual bool Hover(
int x,
int y, Camera::Viewport& viewport,
double& distance);
92 virtual bool BeginDrag(
int x,
int y, Camera::Viewport& viewport,
double& distance);
93 virtual void Drag(
int dx,
int dy, Camera::Viewport& viewport) {}
94 virtual void EndDrag() {}
96 virtual void DrawGL(Camera::Viewport& viewport);
A (static) rigid object that may be manipulated.
Definition: RigidObject.h:15
Defines the WorldModel class.
The main robot type used in RobotSim.
Definition: Robot.h:83
Definition: ContactDistance.h:6
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:24