3#include <NDEVR/IOFactory.h>
4#include <NDEVR/Model.h>
5#include <NDEVR/Buffer.h>
6#include <NDEVR/Vector.h>
15 class HARDWARE_API CalibrationData :
public Model
33 CalibrationData(
const Model& model);
43 Vector<3, fltp08> correct(Vertex<3, fltp08> vec);
50 void addCalibrationPoint(
const Vector<3, fltp08>& point, fltp08 hm = 1.0, fltp08 epsilon = 0.001);
64 void setCalibrationType(CalibrationType calibration_type);
69 CalibrationType calibrationType()
const;
74 void calculate(fltp08 hm = 1.0);
79 void magCalculate(fltp08 hm = 1.0);
84 void accCalculate(fltp08 hm = 1.0);
89 void removeOutliers(fltp08 rejection);
95 void writeToFile(File calibration_file,
bool is_active);
101 void readFromFile(File calibration_file,
bool is_active);
106 void setVertices(
const Buffer<Vector<3, fltp08>>& vertices);
111 void setB(
const Vector<3, fltp08>& B);
116 void setA(
const Vector<9, fltp08>& A);
121 Vector<3, fltp08> B()
const;
126 Vector<9, fltp08> A()
const;
131 Matrix <fltp08> calibrationMatrix()
const;
136 Buffer<Vector<3, fltp08>> data()
const;
146 fltp08 meanVectorLength()
const;
151 Model calibratedModel()
const;
156 Model uncalibratedModel()
const;
161 Model referenceModel()
const;
166 void addReferencePoint(
const Vertex<3, fltp08>& reference_point);
171 bool hasSufficientData()
const;
176 fltp04 calibrationPercent()
const;
186 static constexpr StringView TypeName() {
return "calibration_data"; }
193 static Matrix<fltp08> CalibrationMatrix(
const Vector<9, fltp08>& A,
const Vector<3, fltp08>& B);
200 void updateAndApplyCalibrationMatrix(
const Vector<9, fltp08>& A,
const Vector<3, fltp08>& B);
209 void createReferenceModel();
A core class that represents a node on model hierarchy.
The primary namespace for the NDEVR SDK.
float fltp04
Defines an alias representing a 4 byte floating-point number Bit layout is as follows: -Sign: 1 bit a...
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
double fltp08
Defines an alias representing an 8 byte floating-point number.