8#ifndef TRANSFORMS_EXPRESSION_KEYS_H
9#define TRANSFORMS_EXPRESSION_KEYS_H
12#define REGULAR_COUT std::cout << YELLOW_START << "GMSF-TransformExpressionKeys" << COLOR_END
32template <
class GTSAM_DYNAMIC_STATE_TYPE>
48 bool removedTransformFlag =
51 if (removedTransformFlag) {
61 throw std::runtime_error(
"Key not found in map.");
64 return removedTransformFlag;
81 switch (variableTypeEnum) {
109 throw std::logic_error(
"Variable Type not found.");
127 framePairRef = keyFramePairMapIterator->second;
139 keyframePositionRef = keyFramePositionMapIterator->second;
149 template <
char SYMBOL_CHAR>
151 const std::string& frame2,
const double timeK,
152 const gtsam::Pose3& approximateTransformationBeforeOptimization,
158 approximateTransformationBeforeOptimization, variableType);
166 initialGuessRef = it->second;
173 template <
char SYMBOL_CHAR>
175 const std::string& frame2,
const double timeK,
176 const gtsam::Pose3& approximateTransformationBeforeOptimization,
187 if (timeK > factorGraphStateKey.
getTime()) {
194 returnStateKey = factorGraphStateKey;
212 std::cout <<
"Removing initial guess for frame pair: " << frame1 <<
", " << frame2 << std::endl;
217 template <
char SYMBOL_CHAR>
219 const std::string& frame1,
const std::string& frame2,
const double timeK,
220 const gtsam::Pose3& approximateTransformationBeforeOptimization,
const DynamicVariableType& variableType) {
224 static_assert(symbolIndex >= 0,
"Symbol not found in admissible symbols.");
231 REGULAR_COUT <<
GREEN_START <<
" New key " << gtsam::Symbol(gtsamKey) <<
" created for frame pair " << frame1 <<
" and " << frame2
236 DynamicFactorGraphStateKey factorGraphStateKey(gtsamKey, timeK, 0, approximateTransformationBeforeOptimization, variableType, frame1,
250 return factorGraphStateKey;
void setApproximateTransformationBeforeOptimization(const gtsam::Pose3 &approximateTransformationBeforeOptimization)
void setTimeStamp(const double time)
Members.
void deactivateVariable()
const gtsam::Key key() const
const DynamicVariableTypeEnum & getVariableTypeEnum() const
bool isVariableActive() const
constexpr int getSymbolIndex()
constexpr auto makeValuedArray(T value) -> std::array< T, N >
constexpr char ADMISSIBLE_DYNAMIC_SYMBOL_CHARS[4]
constexpr void checkSymbol()
const Eigen::Vector3d & getReferenceFrameKeyframePosition() const
const DynamicVariableTypeEnum & getVariableTypeEnum() const