Uniformed return type to the style of Open. Now every export function returns 0 in case of success.
This commit is contained in:
parent
1cb45963f9
commit
390a724ff7
|
@ -25,6 +25,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.1 2005/11/12 18:34:17 cignoni
|
||||||
|
Initial Commit
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -68,14 +71,19 @@ static bool FileExtension(std::string filename, std::string extension)
|
||||||
std::string end=filename.substr(filename.length()-extension.length(),extension.length());
|
std::string end=filename.substr(filename.length()-extension.length(),extension.length());
|
||||||
return end==extension;
|
return end==extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open Mesh
|
// Open Mesh
|
||||||
static int Save(OpenMeshType &m, const char *filename, CallBackPos *cb=0)
|
static int Save(OpenMeshType &m, const char *filename, CallBackPos *cb=0)
|
||||||
|
{
|
||||||
|
return Save(m,filename,0,cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open Mesh
|
||||||
|
static int Save(OpenMeshType &m, const char *filename, const int mask, CallBackPos *cb=0)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
if(FileExtension(filename,"ply"))
|
if(FileExtension(filename,"ply"))
|
||||||
{
|
{
|
||||||
err = ExporterPLY<OpenMeshType>::Save(m,filename);
|
err = ExporterPLY<OpenMeshType>::Save(m,filename,mask);
|
||||||
LastType()=KT_PLY;
|
LastType()=KT_PLY;
|
||||||
}
|
}
|
||||||
else if(FileExtension(filename,"stl"))
|
else if(FileExtension(filename,"stl"))
|
||||||
|
|
|
@ -41,7 +41,7 @@ public:
|
||||||
/*
|
/*
|
||||||
Prima versione da rivedere e ottimizzare, ma compatibile con Autocad.
|
Prima versione da rivedere e ottimizzare, ma compatibile con Autocad.
|
||||||
*/
|
*/
|
||||||
static bool Save(SaveMeshType &m, const char * filename)
|
static int Save(SaveMeshType &m, const char * filename)
|
||||||
{
|
{
|
||||||
FILE * o = fopen(filename,"w");
|
FILE * o = fopen(filename,"w");
|
||||||
if(o==NULL) return false;
|
if(o==NULL) return false;
|
||||||
|
@ -82,11 +82,24 @@ public:
|
||||||
fprintf(o,"0\n");
|
fprintf(o,"0\n");
|
||||||
fprintf(o,"EOF\n");
|
fprintf(o,"EOF\n");
|
||||||
fclose(o);
|
fclose(o);
|
||||||
return true;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *ErrorMsg(int error)
|
||||||
|
{
|
||||||
|
static std::vector<std::string> dxf_error_msg;
|
||||||
|
if(dxf_error_msg.empty())
|
||||||
|
{
|
||||||
|
dxf_error_msg.resize(2 );
|
||||||
|
dxf_error_msg[0]="No errors";
|
||||||
|
dxf_error_msg[1]="Can't open file";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(error>1 || error<0) return "Unknown error";
|
||||||
|
else return dxf_error_msg[error].c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}; // end class
|
}; // end class
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace vcg {
|
||||||
typedef typename SaveMeshType::VertexIterator VertexIterator;
|
typedef typename SaveMeshType::VertexIterator VertexIterator;
|
||||||
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
||||||
|
|
||||||
static bool Save(SaveMeshType &m, const char * filename )
|
static int Save(SaveMeshType &m, const char * filename )
|
||||||
{
|
{
|
||||||
vcg::face::Pos<FaceType> he;
|
vcg::face::Pos<FaceType> he;
|
||||||
vcg::face::Pos<FaceType> hei;
|
vcg::face::Pos<FaceType> hei;
|
||||||
|
@ -167,6 +167,21 @@ namespace vcg {
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *ErrorMsg(int error)
|
||||||
|
{
|
||||||
|
static std::vector<std::string> off_error_msg;
|
||||||
|
if(off_error_msg.empty())
|
||||||
|
{
|
||||||
|
off_error_msg.resize(2 );
|
||||||
|
off_error_msg[0]="No errors";
|
||||||
|
off_error_msg[1]="Can't open file";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(error>1 || error<0) return "Unknown error";
|
||||||
|
else return off_error_msg[error].c_str();
|
||||||
|
}
|
||||||
|
|
||||||
}; // end class
|
}; // end class
|
||||||
} // end namespace tri
|
} // end namespace tri
|
||||||
} // end namespace io
|
} // end namespace io
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.12 2006/01/10 13:20:42 cignoni
|
||||||
|
Changed ply::PlyMask to io::Mask
|
||||||
|
|
||||||
Revision 1.11 2005/11/23 15:48:25 pietroni
|
Revision 1.11 2005/11/23 15:48:25 pietroni
|
||||||
changed shot::similarity to shot::Similarity() and shot::camera to shot::Camera()
|
changed shot::similarity to shot::Similarity() and shot::camera to shot::Camera()
|
||||||
|
|
||||||
|
@ -114,20 +117,20 @@ typedef typename SaveMeshType::FacePointer FacePointer;
|
||||||
typedef typename SaveMeshType::VertexIterator VertexIterator;
|
typedef typename SaveMeshType::VertexIterator VertexIterator;
|
||||||
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
||||||
|
|
||||||
static bool Save(SaveMeshType &m, const char * filename, bool binary=true)
|
static int Save(SaveMeshType &m, const char * filename, bool binary=true)
|
||||||
{
|
{
|
||||||
PlyInfo pi;
|
PlyInfo pi;
|
||||||
return Save(m,filename,binary,pi);
|
return Save(m,filename,binary,pi);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool Save(SaveMeshType &m, const char * filename, int savemask )
|
static int Save(SaveMeshType &m, const char * filename, int savemask )
|
||||||
{
|
{
|
||||||
PlyInfo pi;
|
PlyInfo pi;
|
||||||
pi.mask=savemask;
|
pi.mask=savemask;
|
||||||
return Save(m,filename,true,pi);
|
return Save(m,filename,true,pi);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &pi ) // V1.0
|
static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &pi ) // V1.0
|
||||||
{
|
{
|
||||||
FILE * fpout;
|
FILE * fpout;
|
||||||
int i;
|
int i;
|
||||||
|
@ -155,12 +158,12 @@ static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &
|
||||||
|
|
||||||
if( pi.mask & Mask::IOM_WEDGTEXCOORD )
|
if( pi.mask & Mask::IOM_WEDGTEXCOORD )
|
||||||
{
|
{
|
||||||
//const char * TFILE = "TextureFile";
|
const char * TFILE = "TextureFile";
|
||||||
|
|
||||||
//for(i=0;i<textures.size();++i)
|
for(i=0;i<m.textures.size();++i)
|
||||||
// fprintf(fpout,"comment %s %s\n", TFILE, (const char *)(textures[i]) );
|
fprintf(fpout,"comment %s %s\n", TFILE, (const char *)(m.textures[i].c_str()) );
|
||||||
|
|
||||||
//if(textures.size()>1 && (HasPerWedgeTexture() || HasPerVertexTexture())) multit = true;
|
if(m.textures.size()>1 && (m.HasPerWedgeTexture() || m.HasPerVertexTexture())) multit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (pi.mask & Mask::IOM_CAMERA) && m.shot.IsValid())
|
if( (pi.mask & Mask::IOM_CAMERA) && m.shot.IsValid())
|
||||||
|
@ -242,7 +245,8 @@ static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m.HasPerVertexTexture() || m.HasPerWedgeTexture() )
|
if( ( m.HasPerVertexTexture() && pi.mask & Mask::IOM_VERTTEXCOORD ) ||
|
||||||
|
( m.HasPerWedgeTexture() && pi.mask & Mask::IOM_WEDGTEXCOORD ) )
|
||||||
{
|
{
|
||||||
fprintf(fpout,
|
fprintf(fpout,
|
||||||
"property list uchar float texcoord\n"
|
"property list uchar float texcoord\n"
|
||||||
|
@ -603,6 +607,38 @@ std::vector<int> FlagV;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *ErrorMsg(int error)
|
||||||
|
{
|
||||||
|
static std::vector<std::string> ply_error_msg;
|
||||||
|
if(ply_error_msg.empty())
|
||||||
|
{
|
||||||
|
ply_error_msg.resize(PlyInfo::E_MAXPLYINFOERRORS );
|
||||||
|
ply_error_msg[ply::E_NOERROR ]="No errors";
|
||||||
|
ply_error_msg[ply::E_CANTOPEN ]="Can't open file";
|
||||||
|
ply_error_msg[ply::E_NOTHEADER ]="Header not found";
|
||||||
|
ply_error_msg[ply::E_UNESPECTEDEOF ]="Eof in header";
|
||||||
|
ply_error_msg[ply::E_NOFORMAT ]="Format not found";
|
||||||
|
ply_error_msg[ply::E_SYNTAX ]="Syntax error on header";
|
||||||
|
ply_error_msg[ply::E_PROPOUTOFELEMENT]="Property without element";
|
||||||
|
ply_error_msg[ply::E_BADTYPENAME ]="Bad type name";
|
||||||
|
ply_error_msg[ply::E_ELEMNOTFOUND ]="Element not found";
|
||||||
|
ply_error_msg[ply::E_PROPNOTFOUND ]="Property not found";
|
||||||
|
ply_error_msg[ply::E_BADTYPE ]="Bad type on addtoread";
|
||||||
|
ply_error_msg[ply::E_INCOMPATIBLETYPE]="Incompatible type";
|
||||||
|
ply_error_msg[ply::E_BADCAST ]="Bad cast";
|
||||||
|
|
||||||
|
ply_error_msg[PlyInfo::E_NO_VERTEX ]="No vertex field found";
|
||||||
|
ply_error_msg[PlyInfo::E_NO_FACE ]="No face field found";
|
||||||
|
ply_error_msg[PlyInfo::E_SHORTFILE ]="Unespected eof";
|
||||||
|
ply_error_msg[PlyInfo::E_NO_3VERTINFACE ]="Face with more than 3 vertices";
|
||||||
|
ply_error_msg[PlyInfo::E_BAD_VERT_INDEX ]="Bad vertex index in face";
|
||||||
|
ply_error_msg[PlyInfo::E_NO_6TCOORD ]="Face with no 6 texture coordinates";
|
||||||
|
ply_error_msg[PlyInfo::E_DIFFER_COLORS ]="Number of color differ from vertices";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(error>PlyInfo::E_MAXPLYINFOERRORS || error<0) return "Unknown error";
|
||||||
|
else return ply_error_msg[error].c_str();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.5 2005/12/01 00:58:56 cignoni
|
||||||
|
Added and removed typenames for gcc compiling...
|
||||||
|
|
||||||
Revision 1.4 2004/10/28 00:52:45 cignoni
|
Revision 1.4 2004/10/28 00:52:45 cignoni
|
||||||
Better Doxygen documentation
|
Better Doxygen documentation
|
||||||
|
|
||||||
|
@ -60,14 +63,14 @@ template <class SaveMeshType>
|
||||||
class ExporterSTL
|
class ExporterSTL
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static bool Save(SaveMeshType &m, const char * filename , bool binary =true, const char *objectname=0)
|
static int Save(SaveMeshType &m, const char * filename , bool binary =true, const char *objectname=0)
|
||||||
{
|
{
|
||||||
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
typedef typename SaveMeshType::FaceIterator FaceIterator;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
fp = fopen(filename,"wb");
|
fp = fopen(filename,"wb");
|
||||||
if(fp==0)
|
if(fp==0)
|
||||||
return false;
|
return 1;
|
||||||
|
|
||||||
if(binary)
|
if(binary)
|
||||||
{
|
{
|
||||||
|
@ -119,6 +122,20 @@ static bool Save(SaveMeshType &m, const char * filename , bool binary =true, con
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
static const char *ErrorMsg(int error)
|
||||||
|
{
|
||||||
|
static std::vector<std::string> stl_error_msg;
|
||||||
|
if(stl_error_msg.empty())
|
||||||
|
{
|
||||||
|
stl_error_msg.resize(2 );
|
||||||
|
stl_error_msg[0]="No errors";
|
||||||
|
stl_error_msg[1]="Can't open file";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(error>1 || error<0) return "Unknown error";
|
||||||
|
else return stl_error_msg[error].c_str();
|
||||||
|
};
|
||||||
|
|
||||||
}; // end class
|
}; // end class
|
||||||
|
|
||||||
} // end Namespace tri
|
} // end Namespace tri
|
||||||
|
|
Loading…
Reference in New Issue