Comment cleanup to /** style and adding global print functions

release/4.3a0
Richard Roberts 2010-01-10 22:41:23 +00:00
parent 78a579a24a
commit 1dcc864d97
8 changed files with 72 additions and 63 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<?fileVersion 4.0.0?>
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
@ -298,22 +298,6 @@
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
<buildTargets>
<target name="install" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>install</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>check</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-k</buildArguments>
@ -468,7 +452,7 @@
</target>
<target name="testBayesTree.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments/>
<buildArguments></buildArguments>
<buildTarget>testBayesTree.run</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>false</useDefaultCommand>
@ -483,7 +467,7 @@
</target>
<target name="testSymbolicFactorGraph.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments/>
<buildArguments></buildArguments>
<buildTarget>testSymbolicFactorGraph.run</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>false</useDefaultCommand>
@ -719,18 +703,10 @@
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="testPose3Config.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<target name="testLieConfig.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>testPose3Config.run</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="testPose3Graph.run" path="cpp" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>testPose3Graph.run</buildTarget>
<buildTarget>testLieConfig.run</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
@ -759,6 +735,22 @@
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="install" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>install</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="check" path="wrap" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>check</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
</buildTargets>
</storageModule>
</cconfiguration>

View File

@ -75,7 +75,7 @@ namespace gtsam {
/** Call equal on the object without tolerance (use default tolerance) */
template<class T>
inline bool equal(const T& obj1, const T& obj2) {
return obj1.equal(obj2);
return obj1.equals(obj2);
}
// Vector Group operations

View File

@ -62,18 +62,22 @@ namespace gtsam {
}
};
// Lie group functions
/** Lie group functions */
// Dimensionality of the tangent space
/** Global print calls member function */
inline void print(const Point2& p, std::string& s) { p.print(s); }
inline void print(const Point2& p) { p.print(); }
/** Dimensionality of the tangent space */
inline size_t dim(const Point2& obj) { return 2; }
// Exponential map around identity - just create a Point2 from a vector
/** Exponential map around identity - just create a Point2 from a vector */
template<> inline Point2 expmap(const Vector& dp) { return Point2(dp); }
// Log map around identity - just return the Point2 as a vector
/** Log map around identity - just return the Point2 as a vector */
inline Vector logmap(const Point2& dp) { return Vector_(2, dp.x(), dp.y()); }
// "Compose", just adds the coordinates of two points.
/** "Compose", just adds the coordinates of two points. */
inline Point2 compose(const Point2& p1, const Point2& p0) { return p0+p1; }
inline Matrix Dcompose1(const Point2& p1, const Point2& p0) {
return Matrix_(2,2,
@ -84,7 +88,7 @@ namespace gtsam {
1.0, 0.0,
0.0, 1.0); }
// "Inverse" - negates each coordinate such that compose(p,inverse(p))=Point2()
/** "Inverse" - negates each coordinate such that compose(p,inverse(p))=Point2() */
inline Point2 inverse(const Point2& p) { return Point2(-p.x(), -p.y()); }
}

View File

@ -78,18 +78,20 @@ namespace gtsam {
};
/** return DOF, dimensionality of tangent space */
/** Global print calls member function */
inline void print(const Point3& p, std::string& s) { p.print(s); }
inline void print(const Point3& p) { p.print(); }
// Dimensionality of the tangent space
/** return DOF, dimensionality of tangent space */
inline size_t dim(const Point3&) { return 3; }
// Exponential map at identity - just create a Point3 from x,y,z
/** Exponential map at identity - just create a Point3 from x,y,z */
template<> inline Point3 expmap(const Vector& dp) { return Point3(dp); }
// Log map at identity - return the x,y,z of this point
/** Log map at identity - return the x,y,z of this point */
inline Vector logmap(const Point3& dp) { return Vector_(3, dp.x(), dp.y(), dp.z()); }
// "Compose" - just adds coordinates of two points
/** "Compose" - just adds coordinates of two points */
inline Point3 compose(const Point3& p1, const Point3& p0) { return p0+p1; }
inline Matrix Dcompose1(const Point3& p1, const Point3& p0) {
return Matrix_(3,3,
@ -104,11 +106,11 @@ namespace gtsam {
0.0, 0.0, 1.0);
}
// "Inverse" - negates the coordinates such that compose(p, inverse(p)) = Point3()
/** "Inverse" - negates the coordinates such that compose(p, inverse(p)) = Point3() */
inline Point3 inverse(const Point3& p) { return Point3(-p.x(), -p.y(), -p.z()); }
// Syntactic sugar for multiplying coordinates by a scalar s*p
/** Syntactic sugar for multiplying coordinates by a scalar s*p */
inline Point3 operator*(double s, const Point3& p) { return p*s;}
/** add two points, add(p,q) is same as p+q */

View File

@ -68,42 +68,42 @@ namespace gtsam {
}
}; // Pose3 class
// global print
/** global print */
inline void print(const Pose3& p, const std::string& s = "") { p.print(s);}
// Dimensionality of the tangent space
/** Dimensionality of the tangent space */
inline size_t dim(const Pose3&) { return 6; }
// Compose two poses
/** Compose two poses */
inline Pose3 compose(const Pose3& p0, const Pose3& p1) {
return Pose3(p0.rotation()*p1.rotation(),
p0.translation() + p0.rotation()*p1.translation());
}
// Find the inverse pose s.t. inverse(p)*p = Pose3()
/** Find the inverse pose s.t. inverse(p)*p = Pose3() */
inline Pose3 inverse(const Pose3& p) {
Rot3 Rt = inverse(p.rotation());
return Pose3(Rt, Rt*(-p.translation()));
}
// Exponential map at identity - create a pose with a translation and
// rotation (in canonical coordinates)
/** Exponential map at identity - create a pose with a translation and
* rotation (in canonical coordinates). */
template<> Pose3 expmap(const Vector& d);
// Log map at identity - return the translation and canonical rotation
// coordinates of a pose.
/** Log map at identity - return the translation and canonical rotation
* coordinates of a pose. */
Vector logmap(const Pose3& p);
// todo: these are the "old-style" expmap and logmap about the specified
// pose.
// Increments the offset and rotation independently given a translation and
// canonical rotation coordinates
/** todo: these are the "old-style" expmap and logmap about the specified
* pose.
* Increments the offset and rotation independently given a translation and
* canonical rotation coordinates */
template<> inline Pose3 expmap<Pose3>(const Pose3& p0, const Vector& d) {
return Pose3(expmap(p0.rotation(), sub(d, 0, 3)),
expmap(p0.translation(), sub(d, 3, 6)));
}
// Independently computes the logmap of the translation and rotation.
/** Independently computes the logmap of the translation and rotation. */
template<> inline Vector logmap<Pose3>(const Pose3& p0, const Pose3& pp) {
const Vector r(logmap(p0.rotation(), pp.rotation())),
t(logmap(p0.translation(), pp.translation()));

View File

@ -77,36 +77,40 @@ namespace gtsam {
// Lie group functions
// Dimensionality of the tangent space
/** Global print calls member function */
inline void print(const Rot2& r, std::string& s) { r.print(s); }
inline void print(const Rot2& r) { r.print(); }
/** Dimensionality of the tangent space */
inline size_t dim(const Rot2&) { return 1; }
// Expmap around identity - create a rotation from an angle
/** Expmap around identity - create a rotation from an angle */
template<> inline Rot2 expmap(const Vector& v) {
if (zero(v)) return (Rot2());
else return Rot2(v(0));
}
// Logmap around identity - return the angle of the rotation
/** Logmap around identity - return the angle of the rotation */
inline Vector logmap(const Rot2& r) {
return Vector_(1, r.theta());
}
// Compose - make a new rotation by adding angles
/** Compose - make a new rotation by adding angles */
inline Rot2 compose(const Rot2& r0, const Rot2& r1) {
return Rot2(
r0.c() * r1.c() - r0.s() * r1.s(),
r0.s() * r1.c() + r0.c() * r1.s());
}
// Syntactic sugar R1*R2 = compose(R1,R2)
/** Syntactic sugar R1*R2 = compose(R1,R2) */
inline Rot2 operator*(const Rot2& r0, const Rot2& r1) {
return compose(r0, r1);
}
// The inverse rotation - negative angle
/** The inverse rotation - negative angle */
inline Rot2 inverse(const Rot2& r) { return Rot2(r.c(), -r.s());}
// Shortcut to compose the inverse: invcompose(R0,R1) = inverse(R0)*R1
/** Shortcut to compose the inverse: invcompose(R0,R1) = inverse(R0)*R1 */
inline Rot2 invcompose(const Rot2& r0, const Rot2& r1) {
return Rot2(
r0.c() * r1.c() + r0.s() * r1.s(),

View File

@ -117,6 +117,9 @@ namespace gtsam {
}
};
/** Global print calls member function */
inline void print(const Rot3& r, std::string& s) { r.print(s); }
inline void print(const Rot3& r) { r.print(); }
/**
* Rodriguez' formula to compute an incremental rotation matrix

View File

@ -110,11 +110,15 @@ TEST(LieConfig, expmap_d)
config0.insert("v1", Vector_(3, 1.0, 2.0, 3.0));
config0.insert("v2", Vector_(3, 5.0, 6.0, 7.0));
//config0.print("config0");
CHECK(equal(config0, config0));
CHECK(config0.equals(config0));
LieConfig<Pose2> poseconfig;
poseconfig.insert("p1", Pose2(1,2,3));
poseconfig.insert("p2", Pose2(0.3, 0.4, 0.5));
//poseconfig.print("poseconfig");
CHECK(equal(config0, config0));
CHECK(config0.equals(config0));
}
/* ************************************************************************* */