From 49bbe8d404b13b3b44052e351245acd78f114584 Mon Sep 17 00:00:00 2001 From: Pitchaya Boonsarngsuk Date: Mon, 2 Jan 2023 20:49:57 +0000 Subject: [PATCH] Fix error after calibration aborted Clear samples on calibration fail Allow more samples than target --- OpenVR-SpaceCalibrator/Calibration.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/OpenVR-SpaceCalibrator/Calibration.cpp b/OpenVR-SpaceCalibrator/Calibration.cpp index cac0fbb9..eca0adbd 100644 --- a/OpenVR-SpaceCalibrator/Calibration.cpp +++ b/OpenVR-SpaceCalibrator/Calibration.cpp @@ -222,8 +222,6 @@ Sample CollectSample(const CalibrationContext &ctx) } if (!ok) { - CalCtx.Log("Aborting calibration!\n"); - CalCtx.state = CalibrationState::None; return Sample(); } @@ -448,18 +446,21 @@ void CalibrationTick(double time) return; } + static std::vector samples; + auto sample = CollectSample(ctx); if (!sample.valid) { + CalCtx.Log("Aborting calibration!\n"); + CalCtx.state = CalibrationState::None; + samples.clear(); return; } - - static std::vector samples; samples.push_back(sample); CalCtx.Progress(samples.size(), CalCtx.SampleCount()); - if (samples.size() == CalCtx.SampleCount()) + if (samples.size() >= CalCtx.SampleCount()) { CalCtx.Log("\n"); if (ctx.state == CalibrationState::Rotation)