override print methods and update wrapper
parent
14314071ff
commit
4d6eef2c2f
|
@ -74,13 +74,14 @@ public:
|
|||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
// equals
|
||||
/// equals
|
||||
virtual bool equals(const DiscreteFactor& lf, double tol = 1e-9) const = 0;
|
||||
|
||||
// print
|
||||
virtual void print(const std::string& s = "DiscreteFactor\n",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const {
|
||||
Factor::print(s, formatter);
|
||||
/// print
|
||||
virtual void print(
|
||||
const std::string& s = "DiscreteFactor\n",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/** Test whether the factor is empty */
|
||||
|
|
|
@ -129,8 +129,9 @@ public:
|
|||
double operator()(const DiscreteFactor::Values & values) const;
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "DiscreteFactorGraph",
|
||||
const KeyFormatter& formatter =DefaultKeyFormatter) const;
|
||||
void print(
|
||||
const std::string& s = "DiscreteFactorGraph",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override;
|
||||
|
||||
/** Solve the factor graph by performing variable elimination in COLAMD order using
|
||||
* the dense elimination function specified in \c function,
|
||||
|
|
|
@ -144,7 +144,7 @@ public:
|
|||
bool equals(const PinholeBase &camera, double tol = 1e-9) const;
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "PinholeBase") const;
|
||||
virtual void print(const std::string& s = "PinholeBase") const;
|
||||
|
||||
/// @}
|
||||
/// @name Standard Interface
|
||||
|
@ -324,6 +324,11 @@ public:
|
|||
/// Return canonical coordinate
|
||||
Vector localCoordinates(const CalibratedCamera& T2) const;
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "CalibratedCamera") const override {
|
||||
PinholeBase::print(s);
|
||||
}
|
||||
|
||||
/// @deprecated
|
||||
inline size_t dim() const {
|
||||
return dimension;
|
||||
|
|
|
@ -148,7 +148,7 @@ public:
|
|||
}
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "PinholeCamera") const {
|
||||
void print(const std::string& s = "PinholeCamera") const override {
|
||||
Base::print(s);
|
||||
K_.print(s + ".calibration");
|
||||
}
|
||||
|
|
|
@ -340,7 +340,7 @@ public:
|
|||
}
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "PinholePose") const {
|
||||
void print(const std::string& s = "PinholePose") const override {
|
||||
Base::print(s);
|
||||
if (!K_)
|
||||
std::cout << "s No calibration given" << std::endl;
|
||||
|
|
|
@ -986,7 +986,7 @@ class CalibratedCamera {
|
|||
static gtsam::CalibratedCamera Level(const gtsam::Pose2& pose2, double height);
|
||||
|
||||
// Testable
|
||||
void print(string s = "") const;
|
||||
void print(string s = "CalibratedCamera") const;
|
||||
bool equals(const gtsam::CalibratedCamera& camera, double tol) const;
|
||||
|
||||
// Manifold
|
||||
|
@ -1163,8 +1163,9 @@ virtual class SymbolicFactor {
|
|||
|
||||
// From Factor
|
||||
size_t size() const;
|
||||
void print(string s = "", const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
void print(string s = "SymbolicFactor",
|
||||
const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
bool equals(const gtsam::SymbolicFactor& other, double tol) const;
|
||||
gtsam::KeyVector keys();
|
||||
};
|
||||
|
@ -1177,8 +1178,9 @@ virtual class SymbolicFactorGraph {
|
|||
|
||||
// From FactorGraph
|
||||
void push_back(gtsam::SymbolicFactor* factor);
|
||||
void print(string s = "", const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
void print(string s = "SymbolicFactorGraph",
|
||||
const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
bool equals(const gtsam::SymbolicFactorGraph& rhs, double tol) const;
|
||||
size_t size() const;
|
||||
bool exists(size_t idx) const;
|
||||
|
@ -1242,8 +1244,9 @@ class SymbolicBayesNet {
|
|||
SymbolicBayesNet();
|
||||
SymbolicBayesNet(const gtsam::SymbolicBayesNet& other);
|
||||
// Testable
|
||||
void print(string s = "", const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
void print(string s = "SymbolicBayesNet",
|
||||
const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
bool equals(const gtsam::SymbolicBayesNet& other, double tol) const;
|
||||
|
||||
// Standard interface
|
||||
|
@ -2097,8 +2100,9 @@ class NonlinearFactorGraph {
|
|||
NonlinearFactorGraph(const gtsam::NonlinearFactorGraph& graph);
|
||||
|
||||
// FactorGraph
|
||||
void print(string s = "", const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
void print(string s = "NonlinearFactorGraph: ",
|
||||
const gtsam::KeyFormatter& keyFormatter =
|
||||
gtsam::DefaultKeyFormatter) const;
|
||||
bool equals(const gtsam::NonlinearFactorGraph& fg, double tol) const;
|
||||
size_t size() const;
|
||||
bool empty() const;
|
||||
|
|
|
@ -26,30 +26,30 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
/* ************************************************************************* */
|
||||
template<class CONDITIONAL>
|
||||
void BayesNet<CONDITIONAL>::print(const std::string& s, const KeyFormatter& formatter) const
|
||||
{
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
template<class CONDITIONAL>
|
||||
void BayesNet<CONDITIONAL>::saveGraph(const std::string &s, const KeyFormatter& keyFormatter) const
|
||||
{
|
||||
std::ofstream of(s.c_str());
|
||||
of << "digraph G{\n";
|
||||
|
||||
for (auto conditional: boost::adaptors::reverse(*this)) {
|
||||
typename CONDITIONAL::Frontals frontals = conditional->frontals();
|
||||
Key me = frontals.front();
|
||||
typename CONDITIONAL::Parents parents = conditional->parents();
|
||||
for(Key p: parents)
|
||||
of << keyFormatter(p) << "->" << keyFormatter(me) << std::endl;
|
||||
}
|
||||
|
||||
of << "}";
|
||||
of.close();
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
template <class CONDITIONAL>
|
||||
void BayesNet<CONDITIONAL>::print(
|
||||
const std::string& s, const KeyFormatter& formatter) const {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
template <class CONDITIONAL>
|
||||
void BayesNet<CONDITIONAL>::saveGraph(const std::string& s,
|
||||
const KeyFormatter& keyFormatter) const {
|
||||
std::ofstream of(s.c_str());
|
||||
of << "digraph G{\n";
|
||||
|
||||
for (auto conditional : boost::adaptors::reverse(*this)) {
|
||||
typename CONDITIONAL::Frontals frontals = conditional->frontals();
|
||||
Key me = frontals.front();
|
||||
typename CONDITIONAL::Parents parents = conditional->parents();
|
||||
for (Key p : parents)
|
||||
of << keyFormatter(p) << "->" << keyFormatter(me) << std::endl;
|
||||
}
|
||||
|
||||
of << "}";
|
||||
of.close();
|
||||
}
|
||||
|
||||
} // namespace gtsam
|
||||
|
|
|
@ -57,16 +57,18 @@ namespace gtsam {
|
|||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
/** print out graph */
|
||||
void print(const std::string& s = "BayesNet",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
/** print out graph */
|
||||
void print(
|
||||
const std::string& s = "BayesNet",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override;
|
||||
|
||||
/// @}
|
||||
/// @}
|
||||
|
||||
/// @name Standard Interface
|
||||
/// @{
|
||||
/// @name Standard Interface
|
||||
/// @{
|
||||
|
||||
void saveGraph(const std::string &s, const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
void saveGraph(const std::string& s,
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@ namespace gtsam {
|
|||
|
||||
/* ************************************************************************* */
|
||||
void Factor::printKeys(const std::string& s, const KeyFormatter& formatter) const {
|
||||
std::cout << s << " ";
|
||||
for(Key key: keys_) std::cout << " " << formatter(key);
|
||||
std::cout << (s.empty() ? "" : s + " ");
|
||||
for (Key key : keys_) std::cout << " " << formatter(key);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,10 +135,14 @@ typedef FastSet<FactorIndex> FactorIndexSet;
|
|||
/// @{
|
||||
|
||||
/// print
|
||||
void print(const std::string& s = "Factor", const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
virtual void print(
|
||||
const std::string& s = "Factor",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
|
||||
/// print only keys
|
||||
void printKeys(const std::string& s = "Factor", const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
virtual void printKeys(
|
||||
const std::string& s = "Factor",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
|
||||
protected:
|
||||
/// check equality
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace gtsam {
|
|||
template <class FACTOR>
|
||||
void FactorGraph<FACTOR>::print(const std::string& s,
|
||||
const KeyFormatter& formatter) const {
|
||||
std::cout << s << std::endl;
|
||||
std::cout << (s.empty() ? "" : s + " ") << std::endl;
|
||||
std::cout << "size: " << size() << std::endl;
|
||||
for (size_t i = 0; i < factors_.size(); i++) {
|
||||
std::stringstream ss;
|
||||
|
|
|
@ -285,9 +285,9 @@ class FactorGraph {
|
|||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
/** print out graph */
|
||||
void print(const std::string& s = "FactorGraph",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
/// print out graph
|
||||
virtual void print(const std::string& s = "FactorGraph",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const;
|
||||
|
||||
/** Check equality */
|
||||
bool equals(const This& fg, double tol = 1e-9) const;
|
||||
|
|
|
@ -177,6 +177,13 @@ namespace gtsam {
|
|||
*/
|
||||
VectorValues backSubstituteTranspose(const VectorValues& gx) const;
|
||||
|
||||
/// print graph
|
||||
virtual void print(
|
||||
const std::string& s = "",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Save the GaussianBayesNet as an image. Requires `dot` to be
|
||||
* installed.
|
||||
|
|
|
@ -54,8 +54,11 @@ namespace gtsam {
|
|||
virtual ~GaussianFactor() {}
|
||||
|
||||
// Implementing Testable interface
|
||||
virtual void print(const std::string& s = "",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const = 0;
|
||||
|
||||
/// print
|
||||
virtual void print(
|
||||
const std::string& s = "",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override = 0;
|
||||
|
||||
/** Equals for testable */
|
||||
virtual bool equals(const GaussianFactor& lf, double tol = 1e-9) const = 0;
|
||||
|
|
|
@ -42,7 +42,8 @@ Vector AttitudeFactor::attitudeError(const Rot3& nRb,
|
|||
//***************************************************************************
|
||||
void Rot3AttitudeFactor::print(const string& s,
|
||||
const KeyFormatter& keyFormatter) const {
|
||||
cout << s << "Rot3AttitudeFactor on " << keyFormatter(this->key()) << "\n";
|
||||
cout << (s.empty() ? "" : s + " ") << "Rot3AttitudeFactor on "
|
||||
<< keyFormatter(this->key()) << "\n";
|
||||
nZ_.print(" measured direction in nav frame: ");
|
||||
bRef_.print(" reference direction in body frame: ");
|
||||
this->noiseModel_->print(" noise model: ");
|
||||
|
|
|
@ -114,8 +114,8 @@ public:
|
|||
}
|
||||
|
||||
/** print */
|
||||
void print(const std::string& s, const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
void print(const std::string& s = "", const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
|
||||
/** equals */
|
||||
bool equals(const NonlinearFactor& expected, double tol = 1e-9) const override;
|
||||
|
@ -188,8 +188,8 @@ public:
|
|||
}
|
||||
|
||||
/** print */
|
||||
void print(const std::string& s, const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
void print(const std::string& s = "", const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
|
||||
/** equals */
|
||||
bool equals(const NonlinearFactor& expected, double tol = 1e-9) const override;
|
||||
|
|
|
@ -24,7 +24,8 @@ namespace gtsam {
|
|||
|
||||
//***************************************************************************
|
||||
void GPSFactor::print(const string& s, const KeyFormatter& keyFormatter) const {
|
||||
cout << s << "GPSFactor on " << keyFormatter(key()) << "\n";
|
||||
cout << (s.empty() ? "" : s + " ") << "GPSFactor on " << keyFormatter(key())
|
||||
<< "\n";
|
||||
cout << " GPS measurement: " << nT_ << "\n";
|
||||
noiseModel_->print(" noise model: ");
|
||||
}
|
||||
|
|
|
@ -71,8 +71,8 @@ public:
|
|||
}
|
||||
|
||||
/// print
|
||||
void print(const std::string& s, const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
void print(const std::string& s = "", const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
|
||||
/// equals
|
||||
bool equals(const NonlinearFactor& expected, double tol = 1e-9) const override;
|
||||
|
@ -143,8 +143,8 @@ public:
|
|||
}
|
||||
|
||||
/// print
|
||||
void print(const std::string& s, const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
void print(const std::string& s = "", const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const override;
|
||||
|
||||
/// equals
|
||||
bool equals(const NonlinearFactor& expected, double tol = 1e-9) const override;
|
||||
|
|
|
@ -70,8 +70,9 @@ public:
|
|||
/// @{
|
||||
|
||||
/** print */
|
||||
virtual void print(const std::string& s = "",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
virtual void print(
|
||||
const std::string& s = "",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const override;
|
||||
|
||||
/** Check if two factors are equal */
|
||||
virtual bool equals(const NonlinearFactor& f, double tol = 1e-9) const;
|
||||
|
|
|
@ -99,8 +99,9 @@ namespace gtsam {
|
|||
NonlinearFactorGraph(const FactorGraph<DERIVEDFACTOR>& graph) : Base(graph) {}
|
||||
|
||||
/** print */
|
||||
void print(const std::string& str = "NonlinearFactorGraph: ",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
void print(
|
||||
const std::string& str = "NonlinearFactorGraph: ",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const override;
|
||||
|
||||
/** print errors along with factors*/
|
||||
void printErrors(const Values& values, const std::string& str = "NonlinearFactorGraph: ",
|
||||
|
|
|
@ -64,8 +64,8 @@ private:
|
|||
/// @name Testable
|
||||
/// @{
|
||||
|
||||
void print(const std::string &s,
|
||||
const KeyFormatter &keyFormatter = DefaultKeyFormatter) const {
|
||||
void print(const std::string &s, const KeyFormatter &keyFormatter =
|
||||
DefaultKeyFormatter) const override {
|
||||
std::cout << s << "BinaryMeasurement(" << keyFormatter(this->key1()) << ","
|
||||
<< keyFormatter(this->key2()) << ")\n";
|
||||
traits<T>::Print(measured_, " measured: ");
|
||||
|
|
|
@ -63,6 +63,13 @@ namespace gtsam {
|
|||
/** Check equality */
|
||||
GTSAM_EXPORT bool equals(const This& bn, double tol = 1e-9) const;
|
||||
|
||||
/// print
|
||||
GTSAM_EXPORT void print(
|
||||
const std::string& s = "SymbolicBayesNet",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @name Standard Interface
|
||||
|
|
|
@ -20,18 +20,17 @@
|
|||
|
||||
namespace gtsam {
|
||||
|
||||
using namespace std;
|
||||
|
||||
/* ************************************************************************* */
|
||||
void SymbolicConditional::print(const std::string& str, const KeyFormatter& keyFormatter) const
|
||||
{
|
||||
BaseConditional::print(str, keyFormatter);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
bool SymbolicConditional::equals(const This& c, double tol) const
|
||||
{
|
||||
return BaseFactor::equals(c) && BaseConditional::equals(c);
|
||||
}
|
||||
using namespace std;
|
||||
|
||||
/* ************************************************************************* */
|
||||
void SymbolicConditional::print(const std::string& str,
|
||||
const KeyFormatter& keyFormatter) const {
|
||||
BaseConditional::print(str, keyFormatter);
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
bool SymbolicConditional::equals(const This& c, double tol) const {
|
||||
return BaseFactor::equals(c) && BaseConditional::equals(c);
|
||||
}
|
||||
|
||||
} // namespace gtsam
|
||||
|
|
|
@ -105,7 +105,9 @@ namespace gtsam {
|
|||
/// @name Testable
|
||||
|
||||
/** Print with optional formatter */
|
||||
virtual void print(const std::string& str = "", const KeyFormatter& keyFormatter = DefaultKeyFormatter) const;
|
||||
virtual void print(
|
||||
const std::string& str = "",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const override;
|
||||
|
||||
/** Check equality */
|
||||
bool equals(const This& c, double tol = 1e-9) const;
|
||||
|
|
|
@ -92,6 +92,20 @@ namespace gtsam {
|
|||
|
||||
bool equals(const This& other, double tol = 1e-9) const;
|
||||
|
||||
/// print
|
||||
void print(
|
||||
const std::string& s = "SymbolicFactor",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/// print only keys
|
||||
void printKeys(
|
||||
const std::string& s = "SymbolicFactor",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::printKeys(s, formatter);
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @name Advanced Constructors
|
||||
|
|
|
@ -88,6 +88,13 @@ namespace gtsam {
|
|||
|
||||
bool equals(const This& fg, double tol = 1e-9) const;
|
||||
|
||||
/// print
|
||||
void print(
|
||||
const std::string& s = "SymbolicFactorGraph",
|
||||
const KeyFormatter& formatter = DefaultKeyFormatter) const override {
|
||||
Base::print(s, formatter);
|
||||
}
|
||||
|
||||
/// @}
|
||||
|
||||
/// @name Standard Interface
|
||||
|
|
|
@ -37,8 +37,9 @@ public:
|
|||
typedef boost::shared_ptr<InequalityFactorGraph> shared_ptr;
|
||||
|
||||
/** print */
|
||||
void print(const std::string& str, const KeyFormatter& keyFormatter =
|
||||
DefaultKeyFormatter) const {
|
||||
void print(
|
||||
const std::string& str = "",
|
||||
const KeyFormatter& keyFormatter = DefaultKeyFormatter) const override {
|
||||
Base::print(str, keyFormatter);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue