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
00026
00027
00028 #ifndef UTIL_H_
00029 #define UTIL_H_
00030
00031
00032 #include <android/log.h>
00033 #include <rtabmap/utilite/UEventsHandler.h>
00034 #include <rtabmap/utilite/ULogger.h>
00035 #include <tango-gl/util.h>
00036
00037 class LogHandler : public UEventsHandler
00038 {
00039 public:
00040 LogHandler()
00041 {
00042 registerToEventsManager();
00043 }
00044 protected:
00045 virtual void handleEvent(UEvent * event)
00046 {
00047 if(event->getClassName().compare("ULogEvent") == 0)
00048 {
00049 ULogEvent * logEvent = (ULogEvent*)event;
00050 if(logEvent->getCode() == ULogger::kDebug)
00051 {
00052 LOGD(logEvent->getMsg().c_str());
00053 }
00054 else if(logEvent->getCode() == ULogger::kInfo)
00055 {
00056 LOGI(logEvent->getMsg().c_str());
00057 }
00058 else if(logEvent->getCode() == ULogger::kWarning)
00059 {
00060 LOGW(logEvent->getMsg().c_str());
00061 }
00062 else if(logEvent->getCode() >= ULogger::kError)
00063 {
00064 LOGE(logEvent->getMsg().c_str());
00065 }
00066
00067 }
00068 }
00069 };
00070
00071 static const rtabmap::Transform opengl_world_T_tango_world(
00072 1.0f, 0.0f, 0.0f, 0.0f,
00073 0.0f, 0.0f, 1.0f, 0.0f,
00074 0.0f, -1.0f, 0.0f, 0.0f);
00075
00076 static const rtabmap::Transform depth_camera_T_opengl_camera(
00077 1.0f, 0.0f, 0.0f, 0.0f,
00078 0.0f, -1.0f, 0.0f, 0.0f,
00079 0.0f, 0.0f, -1.0f, 0.0f);
00080
00081 static const rtabmap::Transform opengl_world_T_rtabmap_world(
00082 0.0f, -1.0f, 0.0f, 0.0f,
00083 0.0f, 0.0f, 1.0f, 0.0f,
00084 -1.0f, 0.0f, 0.0f, 0.0f);
00085
00086 static const rtabmap::Transform rtabmap_world_T_opengl_world(
00087 0.0f, 0.0f, -1.0f, 0.0f,
00088 -1.0f, 0.0f, 0.0f, 0.0f,
00089 0.0f, 1.0f, 0.0f, 0.0f);
00090
00091 inline glm::mat4 glmFromTransform(const rtabmap::Transform & transform)
00092 {
00093 glm::mat4 mat(1.0f);
00094
00095 mat[0][0] = transform(0,0);
00096 mat[1][0] = transform(0,1);
00097 mat[2][0] = transform(0,2);
00098 mat[0][1] = transform(1,0);
00099 mat[1][1] = transform(1,1);
00100 mat[2][1] = transform(1,2);
00101 mat[0][2] = transform(2,0);
00102 mat[1][2] = transform(2,1);
00103 mat[2][2] = transform(2,2);
00104
00105 mat[3][0] = transform(0,3);
00106 mat[3][1] = transform(1,3);
00107 mat[3][2] = transform(2,3);
00108 return mat;
00109 }
00110
00111 inline rtabmap::Transform glmToTransform(const glm::mat4 & mat)
00112 {
00113 rtabmap::Transform transform;
00114
00115 transform(0,0) = mat[0][0];
00116 transform(0,1) = mat[1][0];
00117 transform(0,2) = mat[2][0];
00118 transform(1,0) = mat[0][1];
00119 transform(1,1) = mat[1][1];
00120 transform(1,2) = mat[2][1];
00121 transform(2,0) = mat[0][2];
00122 transform(2,1) = mat[1][2];
00123 transform(2,2) = mat[2][2];
00124
00125 transform(0,3) = mat[3][0];
00126 transform(1,3) = mat[3][1];
00127 transform(2,3) = mat[3][2];
00128
00129 return transform;
00130 }
00131
00132 #endif