35 #include <osgGA/TerrainManipulator> 36 #include <osgViewer/Viewer> 37 #include <osg/PositionAttitudeTransform> 38 #include <osg/ShapeDrawable> 57 class CameraManipulator;
58 class NodeTrackerManipulator;
86 Command_TLSChange(
const MSLink*
const link, osg::Switch* switchNode);
90 virtual ~Command_TLSChange();
104 const MSLink*
const myLink;
107 osg::ref_ptr<osg::Switch> mySwitch;
115 Command_TLSChange(
const Command_TLSChange&);
118 Command_TLSChange& operator=(
const Command_TLSChange&);
124 osg::ref_ptr<osg::PositionAttitudeTransform> pos;
125 osg::ref_ptr<osg::ShapeDrawable> geom;
126 osg::ref_ptr<osg::Switch> lights;
135 virtual ~GUIOSGView();
149 void centerTo(
GUIGlID id,
bool applyZoom,
double zoomDist = 20);
151 void showViewportEditor();
162 void startTrack(
int id);
175 bool setColorScheme(
const std::string& name);
181 SUMOTime getCurrentTimeStep()
const;
186 long onConfigure(FXObject*, FXSelector,
void*);
187 long onKeyPress(FXObject*, FXSelector,
void*);
188 long onKeyRelease(FXObject*, FXSelector,
void*);
189 long onLeftBtnPress(FXObject*, FXSelector,
void*);
190 long onLeftBtnRelease(FXObject*, FXSelector,
void*);
191 long onMiddleBtnPress(FXObject*, FXSelector,
void*);
192 long onMiddleBtnRelease(FXObject*, FXSelector,
void*);
193 long onRightBtnPress(FXObject*, FXSelector,
void*);
194 long onRightBtnRelease(FXObject*, FXSelector,
void*);
196 long onMouseMove(FXObject*, FXSelector,
void*);
197 long onPaint(FXObject*, FXSelector,
void*);
198 long OnIdle(FXObject* sender, FXSelector sel,
void* ptr);
201 class SUMOTerrainManipulator :
public osgGA::TerrainManipulator {
203 SUMOTerrainManipulator() {
204 setAllowThrow(
false);
206 bool performMovementLeftMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
207 return osgGA::TerrainManipulator::performMovementMiddleMouseButton(eventTimeDelta, dx, dy);
209 bool performMovementMiddleMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
210 return osgGA::TerrainManipulator::performMovementLeftMouseButton(eventTimeDelta, dx, dy);
212 bool performMovementRightMouseButton(
const double eventTimeDelta,
const double dx,
const double dy) {
213 return osgGA::TerrainManipulator::performMovementRightMouseButton(eventTimeDelta, dx, -dy);
217 class FXOSGAdapter :
public osgViewer::GraphicsWindow {
221 void grabFocusIfPointerInWindow() {}
222 void useCursor(
bool cursorOn);
224 bool makeCurrentImplementation();
225 bool releaseContext();
226 void swapBuffersImplementation();
232 bool realizeImplementation() {
235 bool isRealizedImplementation()
const {
238 void closeImplementation() {}
239 bool releaseContextImplementation() {
247 FXCursor*
const myOldCursor;
252 osg::ref_ptr<FXOSGAdapter> myAdapter;
253 osg::ref_ptr<osgViewer::Viewer> myViewer;
254 osg::ref_ptr<osg::Group> myRoot;
258 osg::ref_ptr<osgGA::CameraManipulator> myCameraManipulator;
262 std::map<MSVehicle*, OSGMovable > myVehicles;
263 std::map<MSTransportable*, OSGMovable > myPersons;
265 osg::ref_ptr<osg::Node> myGreenLight;
266 osg::ref_ptr<osg::Node> myYellowLight;
267 osg::ref_ptr<osg::Node> myRedLight;
268 osg::ref_ptr<osg::Node> myRedYellowLight;
A class that stores and controls tls and switching of their programs.
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.
A MSNet extended by some values for usage within the gui.
A MSVehicle extended by some values for usage within the gui.