35 #include <osgGA/TerrainManipulator>
36 #include <osgViewer/Viewer>
37 #include <osg/PositionAttitudeTransform>
38 #include <osg/ShapeDrawable>
58 class CameraManipulator;
59 class NodeTrackerManipulator;
87 Command_TLSChange(
const MSLink*
const link, osg::Switch* switchNode);
91 virtual ~Command_TLSChange();
105 const MSLink*
const myLink;
108 osg::ref_ptr<osg::Switch> mySwitch;
116 Command_TLSChange(
const Command_TLSChange&);
119 Command_TLSChange& operator=(
const Command_TLSChange&);
125 osg::ref_ptr<osg::PositionAttitudeTransform> pos;
126 osg::ref_ptr<osg::ShapeDrawable> geom;
127 osg::ref_ptr<osg::Switch> lights;
136 virtual ~GUIOSGView();
185 long onKeyPress(FXObject*, FXSelector,
void*);
195 long onPaint(FXObject*, FXSelector,
void*);
196 long OnIdle(FXObject* sender, FXSelector sel,
void* ptr);
199 class SUMOTerrainManipulator :
public osgGA::TerrainManipulator {
201 SUMOTerrainManipulator() {
202 setAllowThrow(
false);
204 bool performMovementLeftMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
205 return osgGA::TerrainManipulator::performMovementMiddleMouseButton(eventTimeDelta, dx, dy);
207 bool performMovementMiddleMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
208 return osgGA::TerrainManipulator::performMovementLeftMouseButton(eventTimeDelta, dx, dy);
210 bool performMovementRightMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
211 return osgGA::TerrainManipulator::performMovementRightMouseButton(eventTimeDelta, dx, -dy);
215 class FXOSGAdapter :
public osgViewer::GraphicsWindow {
219 void grabFocusIfPointerInWindow() {}
220 void useCursor(
bool cursorOn);
222 bool makeCurrentImplementation();
223 bool releaseContext();
224 void swapBuffersImplementation();
230 bool realizeImplementation() {
233 bool isRealizedImplementation()
const {
236 void closeImplementation() {}
237 bool releaseContextImplementation() {
245 FXCursor*
const myOldCursor;
250 osg::ref_ptr<FXOSGAdapter> myAdapter;
251 osg::ref_ptr<osgViewer::Viewer> myViewer;
252 osg::ref_ptr<osg::Group> myRoot;
256 osg::ref_ptr<osgGA::CameraManipulator> myCameraManipulator;
260 std::map<MSVehicle*, OSGMovable > myVehicles;
261 std::map<MSTransportable*, OSGMovable > myPersons;
263 osg::ref_ptr<osg::Node> myGreenLight;
264 osg::ref_ptr<osg::Node> myYellowLight;
265 osg::ref_ptr<osg::Node> myRedLight;
266 osg::ref_ptr<osg::Node> myRedYellowLight;
virtual long onConfigure(FXObject *, FXSelector, void *)
virtual void startTrack(int)
virtual void setViewport(const Position &lookFrom, const Position &lookAt)
applies the given viewport settings
virtual void centerTo(GUIGlID id, bool applyZoom, SUMOReal zoomDist=20)
centers to the chosen artifact
virtual void recenterView()
recenters the view
virtual long onMouseMove(FXObject *, FXSelector, void *)
virtual SUMOTime getCurrentTimeStep() const
get the current simulation time
virtual long onLeftBtnPress(FXObject *, FXSelector, void *)
virtual long onKeyRelease(FXObject *o, FXSelector sel, void *data)
virtual void buildViewToolBars(GUIGlChildWindow &)
builds the view toolbars
A class that stores and controls tls and switching of their programs.
virtual int getTrackedID() const
virtual long onPaint(FXObject *, FXSelector, void *)
virtual long onMiddleBtnPress(FXObject *, FXSelector, void *)
virtual long onKeyPress(FXObject *o, FXSelector sel, void *data)
virtual long onMiddleBtnRelease(FXObject *, FXSelector, void *)
A point in 2D or 3D with translation and scaling methods.
LinkState
The right-of-way state of a link between two lanes used when constructing a NBTrafficLightLogic, in MSLink and GNEInternalLane.
A single child window which contains a view of the simulation area.
virtual void showViewportEditor()
virtual long onLeftBtnRelease(FXObject *, FXSelector, void *)
A MSNet extended by some values for usage within the gui.
virtual bool setColorScheme(const std::string &)
virtual void onGamingClick(Position)
virtual long onRightBtnPress(FXObject *, FXSelector, void *)
virtual long onRightBtnRelease(FXObject *, FXSelector, void *)
A MSVehicle extended by some values for usage within the gui.