9 std::map<std::string, DataHolderLib::Color>* stratColors,
10 QGraphicsItem* parent)
11 : QGraphicsItem(parent),
_station(station)
25 const QStyleOptionGraphicsItem* option,
34 QPen pen(Qt::black, 1, Qt::SolidLine, Qt::SquareCap, Qt::RoundJoin);
35 pen.setCosmetic(
true);
40 std::vector<GeoLib::Point*> profile =
_station->getProfile();
41 std::vector<std::string> soilNames =
_station->getSoilNames();
42 std::size_t nLayers = profile.size();
44 painter->drawLine(0, 0,
BARWIDTH + 5, 0);
46 for (std::size_t i = 1; i < nLayers; i++)
49 height =
logHeight(((*(profile[i - 1]))[2] - (*(profile[i]))[2]));
50 QRectF layer(0, top,
BARWIDTH, height);
53 QBrush brush(QColor(
static_cast<int>(c[0]),
54 static_cast<int>(c[1]),
55 static_cast<int>(c[2]),
58 painter->setBrush(brush);
60 painter->drawRect(layer);
62 static_cast<int>(layer.bottom()),
64 static_cast<int>(layer.bottom()));
73 std::vector<GeoLib::Point*> profile =
_station->getProfile();
75 for (std::size_t i = 1; i < profile.size(); i++)
77 height += (log((*(profile[i - 1]))[2] - (*(profile[i]))[2] + 1) * 100);
A borehole as a geometric object.
double logHeight(double h) const
Calculates the height for a soil layer by "log(d+1)*100".
double totalLogHeight() const
Calculates the total height of the bar by calculating and adding the log-height for all layers in the...
static const int BARWIDTH
The default width of the bar.
QRectF boundingRect() const override
Returns the bounding rectangle of the bar.
std::map< std::string, DataHolderLib::Color > _stratColors
GeoLib::StationBorehole * _station
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Paints the bar.
StratBar(GeoLib::StationBorehole *station, std::map< std::string, DataHolderLib::Color > *stratColors=nullptr, QGraphicsItem *parent=nullptr)
Constructor.
Color getColor(const std::string &id, std::map< std::string, Color > &colors)
std::array< unsigned char, 4 > Color