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
00030 #ifndef _MY_TOOLS_HXX_
00031 #define _MY_TOOLS_HXX_
00032
00033 #include <qmessagebox.h>
00034 #include <qpixmap.h>
00035 #include <QString>
00036 #include <QTextStream>
00037 #include <iostream>
00038
00039 class TiXmlElement;
00040 class transf;
00041 class matvecIO;
00042 class vec3;
00043
00044 #define SUCCESS 0
00045 #define FAILURE -1
00046 #define TERMINAL_FAILURE -2
00047
00048 void show_errors(int, char* = NULL);
00049
00050 #ifndef MAX
00051 #define MAX(A,B) ((A) > (B) ? (A) : (B))
00052 #endif
00053
00054 #ifndef MIN
00055 #define MIN(A,B) ((A) < (B) ? (A) : (B))
00056 #endif
00057
00058 #ifndef ROUND
00059 #define ROUND(A) ((A) >= 0 ? (int)((A)+.5) : -(int)(.5-(A)))
00060 #endif
00061
00062
00063
00064
00065
00066
00067 inline void printQString(QString q)
00068 {
00069 std::string str = q.toStdString();
00070 std::cerr << str << std::endl;
00071 }
00072
00073 #ifndef BATCH_PROCESSING
00074
00075 #define QTWARNING(MSG_) QMessageBox::warning(NULL,"GraspIt!",MSG_,QMessageBox::Ok, \
00076 Qt::NoButton,Qt::NoButton)
00077 #else
00078
00079
00080 #define QTWARNING(MSG_) printQString(MSG_);
00081 #endif
00082
00083
00084 #ifdef GRASPIT_RELEASE
00085 #define INLINE_RELEASE inline
00086 #else
00087 #define INLINE_RELEASE
00088 #endif
00089
00090 QPixmap load_pixmap(const QString &name);
00091
00092
00093 #define pr_error(EXPR_) \
00094 { \
00095 fprintf(stderr,">>!>> "); \
00096 fprintf(stderr,EXPR_); \
00097 fprintf(stderr,"\n"); \
00098 }
00099
00100
00101 #define pr_errArgs(EXPR_) \
00102 { \
00103 fprintf(stderr,">>!>> "); \
00104 fprintf EXPR_; \
00105 fprintf(stderr,"\n"); \
00106 }
00107
00109 int nextValidLine(QTextStream *stream, QString *line);
00110
00112 int nextCommentLine(QTextStream *stream, QString *line);
00113
00115 int findString(QTextStream *stream, QString target);
00116
00118 QString relativePath(QString absolutePath, QString relativeToDir);
00119
00121 const TiXmlElement* findXmlElement(const TiXmlElement *root, QString defStr);
00122
00124 std::list<const TiXmlElement*> findAllXmlElements(const TiXmlElement *root, QString defStr);
00125
00127 int countXmlElements(const TiXmlElement *root, QString defStr);
00128
00130 bool getDouble(const TiXmlElement *root, QString defStr, double& val);
00131
00133 bool getInt(const TiXmlElement *root, QString defStr, int& val);
00134
00136 bool getPosition(const TiXmlElement *root, vec3 &pos);
00137
00139 bool getTransform(const TiXmlElement *root,transf &totalTran);
00140 #endif