make None the default HybridCategory
parent
97eb6bc8b9
commit
4302ee33c9
|
|
@ -54,20 +54,28 @@ HybridFactor::HybridFactor(const KeyVector &keys)
|
|||
category_(HybridCategory::Continuous),
|
||||
continuousKeys_(keys) {}
|
||||
|
||||
/* ************************************************************************ */
|
||||
HybridCategory GetCategory(const KeyVector &continuousKeys,
|
||||
const DiscreteKeys &discreteKeys) {
|
||||
if ((continuousKeys.size() == 0) && (discreteKeys.size() != 0)) {
|
||||
return HybridCategory::Discrete;
|
||||
} else if ((continuousKeys.size() != 0) && (discreteKeys.size() == 0)) {
|
||||
return HybridCategory::Continuous;
|
||||
} else if ((continuousKeys.size() != 0) && (discreteKeys.size() != 0)) {
|
||||
return HybridCategory::Hybrid;
|
||||
} else {
|
||||
// Case where we have no keys. Should never happen.
|
||||
return HybridCategory::None;
|
||||
}
|
||||
}
|
||||
|
||||
/* ************************************************************************ */
|
||||
HybridFactor::HybridFactor(const KeyVector &continuousKeys,
|
||||
const DiscreteKeys &discreteKeys)
|
||||
: Base(CollectKeys(continuousKeys, discreteKeys)),
|
||||
category_(GetCategory(continuousKeys, discreteKeys)),
|
||||
discreteKeys_(discreteKeys),
|
||||
continuousKeys_(continuousKeys) {
|
||||
if ((continuousKeys.size() == 0) && (discreteKeys.size() != 0)) {
|
||||
category_ = HybridCategory::Discrete;
|
||||
} else if ((continuousKeys.size() != 0) && (discreteKeys.size() == 0)) {
|
||||
category_ = HybridCategory::Continuous;
|
||||
} else {
|
||||
category_ = HybridCategory::Hybrid;
|
||||
}
|
||||
}
|
||||
continuousKeys_(continuousKeys) {}
|
||||
|
||||
/* ************************************************************************ */
|
||||
HybridFactor::HybridFactor(const DiscreteKeys &discreteKeys)
|
||||
|
|
@ -98,6 +106,9 @@ void HybridFactor::print(const std::string &s,
|
|||
case HybridCategory::Hybrid:
|
||||
std::cout << "Hybrid ";
|
||||
break;
|
||||
case HybridCategory::None:
|
||||
std::cout << "None ";
|
||||
break;
|
||||
}
|
||||
|
||||
std::cout << "[";
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ DiscreteKeys CollectDiscreteKeys(const DiscreteKeys &key1,
|
|||
const DiscreteKeys &key2);
|
||||
|
||||
/// Enum to help with categorizing hybrid factors.
|
||||
enum class HybridCategory { Discrete, Continuous, Hybrid };
|
||||
enum class HybridCategory { None, Discrete, Continuous, Hybrid };
|
||||
|
||||
/**
|
||||
* Base class for *truly* hybrid probabilistic factors
|
||||
|
|
@ -57,7 +57,7 @@ enum class HybridCategory { Discrete, Continuous, Hybrid };
|
|||
class GTSAM_EXPORT HybridFactor : public Factor {
|
||||
private:
|
||||
/// Record what category of HybridFactor this is.
|
||||
HybridCategory category_;
|
||||
HybridCategory category_ = HybridCategory::None;
|
||||
|
||||
protected:
|
||||
// Set of DiscreteKeys for this factor.
|
||||
|
|
|
|||
Loading…
Reference in New Issue