PixelOrientedOverview::PixelOrientedOverview(TulipGraphDimension *data, PixelOrientedMediator *pixelOrientedMediator, Coord blCornerPos, const std::string &dimName, const Color &backgroundColor, const Color &textColor) : data(data), pixelOrientedMediator(pixelOrientedMediator), blCornerPos(blCornerPos), dimName(dimName), frame(nullptr), frame2(nullptr), overviewGen(false), backgroundColor(backgroundColor), textColor(textColor) { if (this->dimName.empty()) { this->dimName = data->getDimensionName(); } overviewId = overviewCpt++; textureName = dimName + " texture " + getStringFromNumber(overviewId); unsigned int width = pixelOrientedMediator->getImageWidth(); unsigned int height = pixelOrientedMediator->getImageHeight(); unsigned int labelHeight = height / 4; Graph *graph = data->getTulipGraph(); pixelLayout = new LayoutProperty(graph); pixelSize = new SizeProperty(graph); graphComposite = new GlGraphComposite(graph); setGraphView(graphComposite); GlGraphInputData *glGraphInputData = graphComposite->getInputData(); glGraphInputData->setElementLayout(pixelLayout); glGraphInputData->setElementSize(pixelSize); frame = new GlRect(Coord(blCornerPos.getX() - 3, blCornerPos.getY() + height + 3), Coord(blCornerPos.getX() + width + 3, blCornerPos.getY() - 3), Color(0, 0, 0), Color(0, 0, 0), false, true); addGlEntity(frame, dimName + "frame"); frame2 = new GlRect(Coord(blCornerPos.getX() - 4, blCornerPos.getY() + height + 4), Coord(blCornerPos.getX() + width + 4, blCornerPos.getY() - 4), Color(0, 0, 0), Color(0, 0, 0), false, true); addGlEntity(frame2, dimName + "frame 2"); backgroundRect = new GlRect(Coord(blCornerPos.getX(), blCornerPos.getY() + height), Coord(blCornerPos.getX() + width, blCornerPos.getY()), Color(255, 255, 255), Color(255, 255, 255), true, false); addGlEntity(backgroundRect, "background rect"); clickLabel = new GlLabel(Coord(blCornerPos.getX() + width / 2, blCornerPos.getY() + height / 2), Size(width, height / 4), Color(0, 0, 0)); clickLabel->setText("Double Click to generate overview"); addGlEntity(clickLabel, "label"); computeBoundingBox(); overviewLabel = new GlLabel(Coord(blCornerPos.getX() + width / 2, blCornerPos.getY() - labelHeight / 2), Size(width, labelHeight), textColor); overviewLabel->setText(dimName); addGlEntity(overviewLabel, "overview label"); }