1#ifndef STAGE_PROVIDERS_H_
2#define STAGE_PROVIDERS_H_
33 return std::make_unique<LOSTCalibrationAlgorithm>();
44 return std::make_unique<SimpleEdgeDetectionAlgorithm>(options.SEDAThreshold,
45 options.SEDABorderLen,
57 if (options.distanceAlgo ==
SDDA) {
58 return std::make_unique<SphericalDistanceDeterminationAlgorithm>(options.radius,
59 Camera(options.focalLength,
62 options.image.height));
63 }
else if (options.distanceAlgo ==
ISDDA) {
64 return std::make_unique<IterativeSphericalDistanceDeterminationAlgorithm>(options.radius,
65 Camera(options.focalLength,
68 options.image.height),
69 options.ISDDAMinIters,
70 options.ISDDADistRatio,
71 options.ISDDADiscimRatio,
73 options.ISDDARadLossOrd);
75 LOG_ERROR(
"Unrecognized distance algorithm: " << options.distanceAlgo);
76 throw std::runtime_error(
"Unrecognized distance algorithm: " + options.distanceAlgo);
89 if (options.calibrationData.header.version !=
emptyDFVer) {
90 LOG_INFO(
"Using DataFile for calibration information");
91 return std::make_unique<LOSTVectorGenerationAlgorithm>(options.calibrationData.relative_attitude,
92 referenceOrientation);
95 if (options.refAsOrientation) {
96 LOG_INFO(
"Using provided reference orientation for calibration information");
97 return std::make_unique<LOSTVectorGenerationAlgorithm>(referenceOrientation);
99 return std::make_unique<LOSTVectorGenerationAlgorithm>(relativeOrientation, referenceOrientation);
Definition options.hpp:81
Definition options.hpp:89
A Camera is a mutable object that represents a Camera.
Definition camera.hpp:17
A Quaternion is a mutable object that represents a Quaternion.
Definition attitude-utils.hpp:192
#define LOG_ERROR(msg)
Definition logging.hpp:117
#define LOG_INFO(msg)
Definition logging.hpp:115
Definition calibrate.cpp:7
std::unique_ptr< EdgeDetectionAlgorithm > ProvideEdgeDetectionAlgorithm(DistanceOptions &&options)
Provides an EdgeDetectionAlgorithm.
Definition stage-providers.hpp:43
std::unique_ptr< CalibrationAlgorithm > ProvideCalibrationAlgorithm(CalibrationOptions &&options)
Provides a CalibrationAlgorithm.
Definition stage-providers.hpp:32
std::unique_ptr< DistanceDeterminationAlgorithm > ProvideDistanceDeterminationAlgorithm(DistanceOptions &&options)
Provides a DistanceDeterminationAlgorithm.
Definition stage-providers.hpp:56
std::unique_ptr< VectorGenerationAlgorithm > ProvideVectorGenerationAlgorithm(DistanceOptions &&options)
Provides a VectorGenerationAlgorithm.
Definition stage-providers.hpp:87
Quaternion SphericalToQuaternion(decimal ra, decimal dec, decimal roll)
Converts Euler Angles into a quaternion.
Definition attitude-utils.cpp:182
#define ISDDA
Definition options.hpp:45
#define emptyDFVer
Version for an empty/null Data File.
Definition options.hpp:29
#define SDDA
Definition options.hpp:44