changed, in vmi importer, return type from bool to int and added human readable error messages
This commit is contained in:
parent
3850a66151
commit
6f2aa86c56
|
@ -431,6 +431,34 @@ namespace io {
|
||||||
typedef typename OpenMeshType::VertexIterator VertexIterator;
|
typedef typename OpenMeshType::VertexIterator VertexIterator;
|
||||||
typedef typename OpenMeshType::VertexType VertexType;
|
typedef typename OpenMeshType::VertexType VertexType;
|
||||||
|
|
||||||
|
enum VMIErrorCodes {
|
||||||
|
NO_ERROR=0,
|
||||||
|
INCOMPATIBLE_VERTEX_TYPE,
|
||||||
|
INCOMPATIBLE_FACE_TYPE,
|
||||||
|
FAILED_OPEN
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Standard call for knowing the meaning of an error code
|
||||||
|
* \param message_code The code returned by <CODE>Open</CODE>
|
||||||
|
* \return The string describing the error code
|
||||||
|
*/
|
||||||
|
static const char* ErrorMsg(int message_code)
|
||||||
|
{
|
||||||
|
static const char* error_msg[] =
|
||||||
|
{
|
||||||
|
"No errors",
|
||||||
|
"The file has a incompatible vertex signature",
|
||||||
|
"The file has a incompatible Face signature",
|
||||||
|
"General failure of the file opening"
|
||||||
|
};
|
||||||
|
|
||||||
|
if(message_code>4 || message_code<0)
|
||||||
|
return "Unknown error";
|
||||||
|
else
|
||||||
|
return error_msg[message_code];
|
||||||
|
};
|
||||||
|
|
||||||
static bool GetHeader(std::vector<std::string>& fnameV, std::vector<std::string>& fnameF, unsigned int & vertSize, unsigned int &faceSize){
|
static bool GetHeader(std::vector<std::string>& fnameV, std::vector<std::string>& fnameF, unsigned int & vertSize, unsigned int &faceSize){
|
||||||
std::string name;
|
std::string name;
|
||||||
unsigned int nameFsize,nameVsize,i;
|
unsigned int nameFsize,nameVsize,i;
|
||||||
|
@ -466,13 +494,14 @@ namespace io {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static bool Open(OpenMeshType &m, const char * filename, int &/*mask*/, CallBackPos *cb=0){
|
static int Open(OpenMeshType &m, const char * filename, int &/*mask*/, CallBackPos *cb=0){
|
||||||
|
|
||||||
typedef typename OpenMeshType::VertexType VertexType;
|
typedef typename OpenMeshType::VertexType VertexType;
|
||||||
typedef typename OpenMeshType::FaceType FaceType;
|
typedef typename OpenMeshType::FaceType FaceType;
|
||||||
typename OpenMeshType::FaceIterator fi;
|
typename OpenMeshType::FaceIterator fi;
|
||||||
typename OpenMeshType::VertexIterator vi;
|
typename OpenMeshType::VertexIterator vi;
|
||||||
F() = fopen(filename,"rb");
|
F() = fopen(filename,"rb");
|
||||||
|
if(!F()) return FAILED_OPEN;
|
||||||
std::vector<std::string> nameF,nameV,fnameF,fnameV;
|
std::vector<std::string> nameF,nameV,fnameF,fnameV;
|
||||||
unsigned int vertSize,faceSize;
|
unsigned int vertSize,faceSize;
|
||||||
|
|
||||||
|
@ -484,8 +513,8 @@ namespace io {
|
||||||
OpenMeshType::VertexType::Name(nameV);
|
OpenMeshType::VertexType::Name(nameV);
|
||||||
|
|
||||||
/* check if the type is the very same, otherwise return */
|
/* check if the type is the very same, otherwise return */
|
||||||
if(fnameV != nameV) return false;
|
if(fnameV != nameV) return INCOMPATIBLE_VERTEX_TYPE;
|
||||||
if(fnameF != nameF) return false;
|
if(fnameF != nameF) return INCOMPATIBLE_FACE_TYPE;
|
||||||
|
|
||||||
int offsetV,offsetF;
|
int offsetV,offsetF;
|
||||||
|
|
||||||
|
@ -598,7 +627,7 @@ namespace io {
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(F());
|
fclose(F());
|
||||||
return true;
|
return NO_ERROR; // zero is the standard (!) code of success
|
||||||
}
|
}
|
||||||
|
|
||||||
}; // end class
|
}; // end class
|
||||||
|
|
Loading…
Reference in New Issue