Clean up documentation in Value.h
parent
e550f4f2ae
commit
28a6c39b85
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file Value.h
|
* @file Value.h
|
||||||
* @brief The interface class for any variable that can be optimized or used in a factor.
|
* @brief The base class for any variable that can be optimized or used in a factor.
|
||||||
* @author Richard Roberts
|
* @author Richard Roberts
|
||||||
* @date Jan 14, 2012
|
* @date Jan 14, 2012
|
||||||
*/
|
*/
|
||||||
|
@ -27,58 +27,11 @@
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the interface class for any value that may be used as a variable
|
* This is the base class for any type to be stored in Values.
|
||||||
* assignment in a factor graph, and which you must derive to create new
|
* Note: As of GTSAM 4.0, Value types should no longer derive from Value or
|
||||||
* variable types to use with gtsam. Examples of built-in classes
|
* DerivedValue. Use type traits instead.
|
||||||
* implementing this are mainly in geometry, including Rot3, Pose2, etc.
|
* See https://bitbucket.org/gtborg/gtsam/wiki/Migrating%20from%20GTSAM%203.X%20to%20GTSAM%204.0#markdown-header-custom-value-types
|
||||||
*
|
* for current usage and migration details.
|
||||||
* This interface specifies pure virtual retract_(), localCoordinates_() and
|
|
||||||
* equals_() functions that work with pointers and references to this interface
|
|
||||||
* class, i.e. the base class. These functions allow containers, such as
|
|
||||||
* Values can operate generically on Value objects, retracting or computing
|
|
||||||
* local coordinates for many Value objects of different types.
|
|
||||||
*
|
|
||||||
* Inheriting from the DerivedValue class template provides a generic implementation of
|
|
||||||
* the pure virtual functions retract_(), localCoordinates_(), and equals_(), eliminating
|
|
||||||
* the need to implement these functions in your class. Note that you must inherit from
|
|
||||||
* DerivedValue templated on the class you are defining. For example you cannot define
|
|
||||||
* the following
|
|
||||||
* \code
|
|
||||||
* class Rot3 : public DerivedValue<Point3>{ \\classdef }
|
|
||||||
* \endcode
|
|
||||||
*
|
|
||||||
* Using the above practice, here is an example of implementing a typical
|
|
||||||
* class derived from Value:
|
|
||||||
* \code
|
|
||||||
class GTSAM_EXPORT Rot3 : public DerivedValue<Rot3> {
|
|
||||||
public:
|
|
||||||
// Constructor, there is never a need to call the Value base class constructor.
|
|
||||||
Rot3() { ... }
|
|
||||||
|
|
||||||
// Print for unit tests and debugging (virtual, implements Value::print())
|
|
||||||
virtual void print(const std::string& str = "") const;
|
|
||||||
|
|
||||||
// Equals working directly with Rot3 objects (non-virtual, non-overriding!)
|
|
||||||
bool equals(const Rot3& other, double tol = 1e-9) const;
|
|
||||||
|
|
||||||
// Tangent space dimensionality (virtual, implements Value::dim())
|
|
||||||
virtual size_t dim() const {
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
// retract working directly with Rot3 objects (non-virtual, non-overriding!)
|
|
||||||
Rot3 retract(const Vector& delta) const {
|
|
||||||
// Math to implement a 3D rotation retraction e.g. exponential map
|
|
||||||
return Rot3(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
// localCoordinates working directly with Rot3 objects (non-virtual, non-overriding!)
|
|
||||||
Vector localCoordinates(const Rot3& r2) const {
|
|
||||||
// Math to implement 3D rotation localCoordinates, e.g. logarithm map
|
|
||||||
return Vector(result);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
\endcode
|
|
||||||
*/
|
*/
|
||||||
class GTSAM_EXPORT Value {
|
class GTSAM_EXPORT Value {
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue