Fixed drawing of distance circles

This commit is contained in:
2019-10-01 14:45:52 +02:00
parent 253b96b2f9
commit f8a9739daf
2 changed files with 18 additions and 4 deletions

View File

@@ -108,6 +108,7 @@ public:
K::GnuplotSplotElementEmpty emptyElem;
std::vector<int> distanceCircles;
K::GnuplotSplotElementPM3D pm3doutline;
@@ -186,7 +187,7 @@ public:
}
void addCircle(int id, const Point2& center, float radius, const K::GnuplotColor& strokeColor)
void addDistanceCircle(const Point2& center, float radius, const K::GnuplotColor& strokeColor)
{
auto c = K::GnuplotCoordinate2(center.x, center.y, K::GnuplotCoordinateSystem::FIRST);
auto r = K::GnuplotCoordinate1(radius, K::GnuplotCoordinateSystem::FIRST);
@@ -196,8 +197,19 @@ public:
K::GnuplotObjectCircle* obj = new K::GnuplotObjectCircle(c, r, fill, stroke);
splot.getObjects().set(id, obj);
splot.getObjects().add(obj);
distanceCircles.push_back(obj->getID());
}
void clearDistanceCircles()
{
for (int oldID : distanceCircles)
{
splot.getObjects().remove(oldID);
}
distanceCircles.clear();
}
void addBBoxes(const BBoxes3& boxes, const K::GnuplotColor& c) {

View File

@@ -187,7 +187,7 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
std::string currDir = std::filesystem::current_path().string();
Floorplan::IndoorMap* map = Floorplan::Reader::readFromFile(setup.map);
Offline::FileReader fr(setup.training[walkIdx], setup.NanoSecondTimestamps);
Offline::FileReader fr(setup.training[walkIdx], setup.HasNanoSecondTimestamps);
// ground truth
std::vector<int> gtPath = setup.gtPath;
@@ -334,6 +334,8 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
errorStats.ftm.add(distErrorFtm);
// draw wifi ranges
plot.clearDistanceCircles();
for (size_t i = 0; i < obs.ftm.size(); i++)
{
WiFiMeasurement wifi2 = obs.ftm[i];
@@ -349,7 +351,7 @@ static CombinedStats<float> run(Settings::DataSetup setup, int walkIdx, std::str
default: color = K::GnuplotColor::fromRGB(255, 0, 0); break;
}
plot.addCircle(1000 + i, apPos.xy(), wifi2.getFtmDist(), color);
plot.addDistanceCircle(apPos.xy(), wifi2.getFtmDist(), color);
}
obs.wifi.clear();