started working on the tex-part
started working on eval-graphics ned helper methods tested some new aspects some fixes and changes added some graphics new test-floorplan many cleanups
This commit is contained in:
95
code/eval/PaperPlot.h
Normal file
95
code/eval/PaperPlot.h
Normal file
@@ -0,0 +1,95 @@
|
||||
#ifndef PAPERPLOT_H
|
||||
#define PAPERPLOT_H
|
||||
|
||||
#include <KLib/misc/gnuplot/Gnuplot.h>
|
||||
|
||||
#include <KLib/misc/gnuplot/GnuplotSplot.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplotElementLines.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplotElementPoints.h>
|
||||
#include <KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h>
|
||||
|
||||
|
||||
#include <Indoor/floorplan/Floor.h>
|
||||
#include <Indoor/geo/Length.h>
|
||||
|
||||
class PaperPlot {
|
||||
|
||||
public:
|
||||
|
||||
K::Gnuplot gp;
|
||||
K::GnuplotSplot plot;
|
||||
|
||||
K::GnuplotSplotElementLines floors;
|
||||
K::GnuplotSplotElementColorPoints nodes;
|
||||
|
||||
public:
|
||||
|
||||
PaperPlot() {
|
||||
|
||||
floors.setLineWidth(2);
|
||||
|
||||
plot.add(&nodes);
|
||||
plot.add(&floors);
|
||||
|
||||
gp << "set ticslevel 0\n";
|
||||
|
||||
|
||||
//gp << "set zrange [0:0]\n";
|
||||
|
||||
}
|
||||
|
||||
void show() {
|
||||
gp.draw(plot);
|
||||
gp.flush();;
|
||||
}
|
||||
|
||||
/** add all obstacles of the given floor to the provided height */
|
||||
void addFloor(const Floor& f, const LengthF height) {
|
||||
|
||||
// add each wall
|
||||
for (const Line2& l : f.getObstacles()) {
|
||||
const K::GnuplotPoint3 p1(l.p1.x, l.p1.y, height.cm());
|
||||
const K::GnuplotPoint3 p2(l.p2.x, l.p2.y, height.cm());
|
||||
floors.addSegment(p1, p2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** add the grid to the plot */
|
||||
template <typename T> void addGrid(Grid<T>& grid) {
|
||||
|
||||
// std::set<uint64_t> used;
|
||||
|
||||
// get the min/max value
|
||||
float max = -999999;
|
||||
float min = +999999;
|
||||
for (const T& n1 : grid) {
|
||||
const float val = n1.imp;
|
||||
//const float val = n1.distToTarget;
|
||||
if (val > max) {max = val;}
|
||||
if (val < min) {min = val;}
|
||||
}
|
||||
gp << "set cbrange["<<min<<":"<<max<<"]\n";
|
||||
|
||||
for (const T& n1 : grid) {
|
||||
const K::GnuplotPoint3 p1(n1.x_cm, n1.y_cm, n1.z_cm);
|
||||
const float color = n1.imp;
|
||||
//const float color = n1.distToTarget/max;
|
||||
//const float color = 0;
|
||||
nodes.add(p1, color);
|
||||
// for (const T& n2 : grid.neighbors(n1)) {
|
||||
// const uint64_t idx = n1.getIdx() * n2.getIdx();
|
||||
// if (used.find(idx) == used.end()) {
|
||||
// const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm);
|
||||
// gridEdges.addSegment(p1, p2);
|
||||
// used.insert(idx);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // PAPERPLOT_H
|
||||
Reference in New Issue
Block a user