Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef RELPOSE_H
00026 #define RELPOSE_H
00027
00028
00029 #define XML_NODE_RELPOSE "RelPose"
00030 #define XML_ATTRIBUTE_LOID "loid"
00031 #define XML_ATTRIBUTE_LOIDFATHER "loidfather"
00032 #define XML_NODE_MATPOSE "Pose"
00033 #define XML_NODE_COVARIANCE "Cov"
00034
00035 #include <string>
00036
00037 #include <lo/lo.h>
00038 #include <ElemTypes.h>
00039
00040 #ifndef ID_WORLD
00041 #define ID_WORLD 1
00042 #endif
00043
00044
00045 namespace cop
00046 {
00047 class XMLTag;
00052 class RelPose : public jlo::LocatedObject
00053 {
00054 public:
00055 ~RelPose(){}
00060 RelPose(jlo::LazyLocatedObjectLoader* loader, LocatedObjectID_t, LocatedObjectID_t parentID, Matrix m, Matrix cov, std::string name = "");
00061
00063 double m_qualityMeasure;
00064 std::string m_mapstring;
00065 Matrix GetMatrix(LocatedObjectID_t id);
00066 Matrix GetCovariance(LocatedObjectID_t id);
00067
00068 double ProbabilityOfCorrespondence(RelPose* pose, bool no_rotation = true);
00069 double DistanceTo(LocatedObjectID_t id);
00070 private:
00071 RelPose(jlo::LazyLocatedObjectLoader* );
00072 RelPose(jlo::LocatedObject& pose);
00073 RelPose(RelPose* pose, Matrix m, Matrix cov);
00074 RelPose(jlo::LocatedObject* pose, Matrix m, Matrix cov);
00075
00076 public:
00077 XMLTag* SaveComplete() ;
00078
00079 XMLTag* Save() ;
00080 private:
00081 friend class RelPoseFactory;
00082 friend class RelPoseHTuple;
00083 };
00084 class MinimalCalibration;
00085 void RelPoseToRect(RelPose* pose, LocatedObjectID_t relation, MinimalCalibration* calib, int &r1, int &c1, int &r2, int &c2);
00086 }
00087 #endif // RELPOSE_H