54 #ifdef CHECK_MEMORY_LEAKS
56 #endif // CHECK_MEMORY_LEAKS
79 const std::
string& name)
80 :
FXMainWindow(app.getApp(), "Tracker", NULL, NULL, DECOR_ALL, 20, 20, 300, 200),
83 app.addChild(
this,
true);
84 FXVerticalFrame* glcanvasFrame =
new FXVerticalFrame(
this, FRAME_SUNKEN | LAYOUT_SIDE_TOP | LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
86 setTitle(name.c_str());
93 for (std::vector<TrackerValueDesc*>::iterator i1 =
myTracked.begin(); i1 !=
myTracked.end(); i1++) {
116 new FXToolBarGrip(
myToolBar,
myToolBar, FXToolBar::ID_TOOLBARGRIP, TOOLBARGRIP_DOUBLE);
120 ICON_ABOVE_TEXT | BUTTON_TOOLBAR | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT);
124 FRAME_SUNKEN | LAYOUT_LEFT | LAYOUT_TOP | COMBOBOX_STATIC);
192 for (std::vector<TrackerValueDesc*>::iterator i1 =
myTracked.begin(); i1 !=
myTracked.end(); i1++) {
193 (*i1)->setAggregationSpan(
TIME2STEPS(aggInt));
208 std::vector<TrackerValueDesc*>::iterator i;
229 for (
unsigned int j = 0; j <
max; j++) {
242 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
265 :
FXGLCanvas(c, app.getGLVisual(), app.getBuildGLCanvas(), (
FXObject*) 0, (FXSelector) 0, LAYOUT_SIDE_TOP | LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 300, 200),
266 myParent(&parent), myApplication(&app) {}
277 glMatrixMode(GL_PROJECTION);
279 glMatrixMode(GL_MODELVIEW);
281 glDisable(GL_TEXTURE_2D);
283 for (std::vector<TrackerValueDesc*>::iterator i = myParent->myTracked.begin(); i != myParent->myTracked.end(); i++) {
299 glScaled(0.8, 0.8, 1);
302 glScaled(1.0, ys, 1.0);
313 glVertex2d(0, desc.
getMin());
314 glVertex2d(2.0, desc.
getMin());
317 glVertex2d(0, desc.
getMax());
318 glVertex2d(2.0, desc.
getMax());
320 glColor4f(red, green, blue, 0.3f);
321 for (
int a = 1; a < 6; a++) {
325 glVertex2d(2.0, ypos);
330 if (values.size() < 2) {
335 latest = values.back();
338 std::vector<SUMOReal>::const_iterator i = values.begin();
342 glColor4f(red, green, blue, 1.0f);
343 for (; i != values.end(); i++) {
358 glColor3d(red, green, blue);
364 glRotated(180, 1, 0, 0);
366 glTranslated(-0.8 - w / 2., 0.88, 0);
368 glTranslated(0.8 + w / 2., -0.88, 0);
369 glRotated(-180, 1, 0, 0);
372 glRotated(180, 1, 0, 0);
374 glTranslated(0.75, 0.88, 0);
376 glTranslated(-0.75, -0.88, 0);
377 glRotated(-180, 1, 0, 0);
380 glRotated(180, 1, 0, 0);
382 glTranslated(-0.98, 0.82, 0);
384 glTranslated(0.98, -0.82, 0);
385 glRotated(-180, 1, 0, 0);
388 glRotated(180, 1, 0, 0);
390 glTranslated(-0.98, -0.78, 0);
392 glTranslated(0.98, 0.78, 0);
393 glRotated(-180, 1, 0, 0);
396 glRotated(180, 1, 0, 0);
400 glTranslated(-0.98, p + .02, 0);
402 glTranslated(0.98, -(p + .02), 0);
403 glRotated(-180, 1, 0, 0);
406 glRotated(180, 1, 0, 0);
408 glTranslated(-0.98, -.92, 0);
410 glTranslated(0.98, .92, 0);
411 glRotated(-180, 1, 0, 0);
419 myWidthInPixels = myParent->getWidth();
420 myHeightInPixels = myParent->getHeight();
421 if (myWidthInPixels != 0 && myHeightInPixels != 0) {
422 glViewport(0, 0, myWidthInPixels - 1, myHeightInPixels - 1);
423 glClearColor(1.0, 1.0, 1.0, 1);
424 glDisable(GL_DEPTH_TEST);
425 glDisable(GL_LIGHTING);
426 glDisable(GL_LINE_SMOOTH);
428 glEnable(GL_ALPHA_TEST);
429 glDisable(GL_COLOR_MATERIAL);
431 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
446 myWidthInPixels = getWidth();
447 myHeightInPixels = getHeight();
448 if (myWidthInPixels != 0 && myHeightInPixels != 0) {
449 glViewport(0, 0, myWidthInPixels - 1, myHeightInPixels - 1);
450 glClearColor(1.0, 1.0, 1.0, 1);
451 glDisable(GL_DEPTH_TEST);
452 glDisable(GL_LIGHTING);
453 glDisable(GL_LINE_SMOOTH);
455 glEnable(GL_ALPHA_TEST);
456 glDisable(GL_COLOR_MATERIAL);
458 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
460 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);