void GLHelper::drawTextBox(const std::string& text, const Position& pos, const double layer, const double size, const RGBColor& txtColor, const RGBColor& bgColor, const RGBColor& borderColor, const double angle, const double relBorder, const double relMargin) { if (!initFont()) { return; }; if (bgColor.alpha() != 0) { const double boxAngle = 90; const double stringWidth = size / myFontSize * fonsTextBounds(myFont, 0, 0, text.c_str(), nullptr, nullptr); const double borderWidth = size * relBorder; const double boxHeight = size * (0.32 + 0.6 * relMargin); const double boxWidth = stringWidth + size * relMargin; glPushMatrix(); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glTranslated(pos.x(), pos.y(), layer); glRotated(-angle, 0, 0, 1); Position left(-boxWidth * 0.5, 0); setColor(borderColor); drawBoxLine(left, boxAngle, boxWidth, boxHeight); left.add(borderWidth * 1.5, 0); setColor(bgColor); glTranslated(0, 0, 0.01); drawBoxLine(left, boxAngle, boxWidth - 3 * borderWidth, boxHeight - 2 * borderWidth); glPopMatrix(); } drawText(text, pos, layer + 0.02, size, txtColor, angle); }
void BinaryFormatter::writeAttr(std::ostream& into, const SumoXMLAttr attr, const RGBColor& val) { BinaryFormatter::writeAttrHeader(into, attr, BF_COLOR); FileHelpers::writeByte(into, val.red()); FileHelpers::writeByte(into, val.green()); FileHelpers::writeByte(into, val.blue()); FileHelpers::writeByte(into, val.alpha()); }
void GLHelper::drawText(const std::string& text, const Position& pos, const double layer, const double size, const RGBColor& col, const double angle, const int align, double width) { if (width <= 0) { width = size; } if (!initFont()) { return; }; glPushMatrix(); glAlphaFunc(GL_GREATER, 0.5); glEnable(GL_ALPHA_TEST); glTranslated(pos.x(), pos.y(), layer); glScaled(width / myFontSize, size / myFontSize, 1.); glRotated(-angle, 0, 0, 1); fonsSetAlign(myFont, align == 0 ? FONS_ALIGN_CENTER | FONS_ALIGN_MIDDLE : align); fonsSetColor(myFont, glfonsRGBA(col.red(), col.green(), col.blue(), col.alpha())); fonsDrawText(myFont, 0., 0., text.c_str(), nullptr); glPopMatrix(); }
void GLHelper::setColor(const RGBColor& c) { glColor4ub(c.red(), c.green(), c.blue(), c.alpha()); }
FXColor MFXUtils::getFXColor(const RGBColor& col) { return FXRGBA(col.red(), col.green(), col.blue(), col.alpha()); }