41 return "GlobalClosure";
43 return "LocalSpaceClosure";
45 return "LocalTimeClosure";
49 return "VirtualClosure";
51 return "NeighborMerged";
73 const cv::Mat & userData) :
81 if(userData.type() == CV_8UC1)
104 if(value == 9999999.0)
125 if(value == 9999999.0)
135 UASSERT(infMatrix.cols == 6 && infMatrix.rows == 6 && infMatrix.type() == CV_64FC1);
136 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(0,0)) && infMatrix.at<
double>(0,0)>0,
uFormat(
"Linear information X should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(0,0)).c_str());
137 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(1,1)) && infMatrix.at<
double>(1,1)>0,
uFormat(
"Linear information Y should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(1,1)).c_str());
138 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(2,2)) && infMatrix.at<
double>(2,2)>0,
uFormat(
"Linear information Z should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(2,2)).c_str());
139 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(3,3)) && infMatrix.at<
double>(3,3)>0,
uFormat(
"Angular information roll should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(3,3)).c_str());
140 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(4,4)) && infMatrix.at<
double>(4,4)>0,
uFormat(
"Angular information pitch should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(4,4)).c_str());
141 UASSERT_MSG(
uIsFinite(infMatrix.at<
double>(5,5)) && infMatrix.at<
double>(5,5)>0,
uFormat(
"Angular information yaw should not be null! Value=%f (set to 1 if unknown or <=1/9999 to be ignored in some computations).", infMatrix.at<
double>(5,5)).c_str());
cv::Mat RTABMAP_EXP uncompressData(const cv::Mat &bytes)
T uMin3(const T &a, const T &b, const T &c)
Basic mathematics functions.
Some conversion functions.
const Transform & transform() const
double rotVariance(bool minimum=true) const
bool uIsFinite(const T &value)
#define UASSERT(condition)
T uMax3(const T &a, const T &b, const T &c)
void setInfMatrix(const cv::Mat &infMatrix)
#define UASSERT_MSG(condition, msg_str)
Link merge(const Link &link, Type outputType) const
const cv::Mat & infMatrix() const
double transVariance(bool minimum=true) const
cv::Mat uncompressUserDataConst() const
ULogger class and convenient macros.
std::string typeName() const
cv::Mat _userDataCompressed
std::string UTILITE_EXP uFormat(const char *fmt,...)
void uncompressUserData()