28 #include <osgGA/TerrainManipulator>
29 #include <osgViewer/Viewer>
30 #include <osg/PositionAttitudeTransform>
31 #include <osg/ShapeDrawable>
50 class CameraManipulator;
51 class NodeTrackerManipulator;
79 Command_TLSChange(
const MSLink*
const link, osg::Switch* switchNode);
83 virtual ~Command_TLSChange();
97 const MSLink*
const myLink;
100 osg::ref_ptr<osg::Switch> mySwitch;
108 Command_TLSChange(
const Command_TLSChange&);
111 Command_TLSChange& operator=(
const Command_TLSChange&);
117 osg::ref_ptr<osg::PositionAttitudeTransform> pos;
118 osg::ref_ptr<osg::ShapeDrawable> geom;
119 osg::ref_ptr<osg::Switch> lights;
129 virtual ~GUIOSGView();
182 long onKeyPress(FXObject*, FXSelector,
void*);
192 long onPaint(FXObject*, FXSelector,
void*);
193 long OnIdle(FXObject* sender, FXSelector sel,
void* ptr);
196 class SUMOTerrainManipulator :
public osgGA::TerrainManipulator {
198 SUMOTerrainManipulator() {
199 setAllowThrow(
false);
200 setRotationMode(ELEVATION_AZIM_ROLL);
202 bool performMovementLeftMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
203 return osgGA::TerrainManipulator::performMovementMiddleMouseButton(eventTimeDelta, dx, dy);
205 bool performMovementMiddleMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
206 return osgGA::TerrainManipulator::performMovementLeftMouseButton(eventTimeDelta, dx, dy);
208 bool performMovementRightMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
209 return osgGA::TerrainManipulator::performMovementRightMouseButton(eventTimeDelta, dx, -dy);
213 class FXOSGAdapter :
public osgViewer::GraphicsWindow {
217 void grabFocusIfPointerInWindow() {}
218 void useCursor(
bool cursorOn);
220 bool makeCurrentImplementation();
221 bool releaseContext();
222 void swapBuffersImplementation();
228 bool realizeImplementation() {
231 bool isRealizedImplementation()
const {
234 void closeImplementation() {}
235 bool releaseContextImplementation() {
243 FXCursor*
const myOldCursor;
248 osg::ref_ptr<FXOSGAdapter> myAdapter;
249 osg::ref_ptr<osgViewer::Viewer> myViewer;
250 osg::ref_ptr<osg::Group> myRoot;
254 osg::ref_ptr<osgGA::CameraManipulator> myCameraManipulator;
258 std::map<MSVehicle*, OSGMovable > myVehicles;
259 std::map<MSTransportable*, OSGMovable > myPersons;
261 osg::ref_ptr<osg::Node> myGreenLight;
262 osg::ref_ptr<osg::Node> myYellowLight;
263 osg::ref_ptr<osg::Node> myRedLight;
264 osg::ref_ptr<osg::Node> myRedYellowLight;