removed ambiguous Write*/Read* classes

This commit is contained in:
ganovelli 2009-10-09 13:48:52 +00:00
parent 4fa2f2a557
commit 290804071b
2 changed files with 38 additions and 40 deletions

View File

@ -60,8 +60,8 @@ namespace io {
template <int N> struct PlaceHolderType{ char A[N];}; template <int N> struct PlaceHolderType{ char A[N];};
struct WriteString { WriteString (FILE *f,const char * in) { unsigned int l = strlen(in); fwrite(&l,4,1,f); fwrite(in,1,l,f);}}; void WriteString(FILE *f,const char * in) { unsigned int l = strlen(in); fwrite(&l,4,1,f); fwrite(in,1,l,f);}
struct WriteInt { WriteInt (FILE *f,const unsigned int i) { fwrite(&i,1,4,f);} }; void WriteInt(FILE *f,const unsigned int i) { fwrite(&i,1,4,f);}
/* save Ocf Vertex Components */ /* save Ocf Vertex Components */
template <typename OpenMeshType,typename CONT> template <typename OpenMeshType,typename CONT>
@ -193,8 +193,6 @@ namespace io {
{ {
public: public:
static FILE *& F(){static FILE * f; return f;} static FILE *& F(){static FILE * f; return f;}
struct WriteString { WriteString (const char * in) { WriteString A = (F(),in);}};
struct WriteInt { WriteInt (const unsigned int i) { WriteInt A = (F(),i);} };
typedef typename SaveMeshType::FaceContainer FaceContainer; typedef typename SaveMeshType::FaceContainer FaceContainer;
typedef typename SaveMeshType::FaceIterator FaceIterator; typedef typename SaveMeshType::FaceIterator FaceIterator;
@ -221,22 +219,22 @@ namespace io {
faceSize = m.face.size(); faceSize = m.face.size();
/* write header */ /* write header */
WriteString("FACE_TYPE"); WriteString(F(),"FACE_TYPE");
WriteInt(nameF.size()); WriteInt(F(),nameF.size());
for(i=0; i < nameF.size(); ++i) WriteString(nameF[i].c_str()); for(i=0; i < nameF.size(); ++i) WriteString(F(),nameF[i].c_str());
WriteString("SIZE_VECTOR_FACES"); WriteString(F(),"SIZE_VECTOR_FACES");
WriteInt A0( faceSize ); WriteInt(F(), faceSize );
WriteString("VERTEX_TYPE"); WriteString(F(),"VERTEX_TYPE");
WriteInt(nameV.size()); WriteInt(F(),nameV.size());
for(i=0; i < nameV.size(); ++i) WriteString(nameV[i].c_str()); for(i=0; i < nameV.size(); ++i) WriteString(F(),nameV[i].c_str());
WriteString("SIZE_VECTOR_VERTS"); WriteString(F(),"SIZE_VECTOR_VERTS");
WriteInt A1(vertSize); WriteInt(F(),vertSize);
WriteString("end_header"); WriteString(F(),"end_header");
if(vertSize!=0){ if(vertSize!=0){
unsigned int offsetV = (unsigned int) &m.vert[0]; unsigned int offsetV = (unsigned int) &m.vert[0];
@ -288,17 +286,17 @@ namespace io {
unsigned int n_named_attr = 0; unsigned int n_named_attr = 0;
for(ai = m.vert_attr.begin(); ai != m.vert_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty(); for(ai = m.vert_attr.begin(); ai != m.vert_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty();
WriteString("N_PER_VERTEX_ATTRIBUTES"); WriteInt A2(n_named_attr); WriteString(F(),"N_PER_VERTEX_ATTRIBUTES"); WriteInt (F(),n_named_attr);
for(ai = m.vert_attr.begin(); ai != m.vert_attr.end(); ++ai) for(ai = m.vert_attr.begin(); ai != m.vert_attr.end(); ++ai)
if(!(*ai)._name.empty()) if(!(*ai)._name.empty())
{ {
STDBv * stdb = (STDBv *) (*ai)._handle; STDBv * stdb = (STDBv *) (*ai)._handle;
WriteString("PER_VERTEX_ATTR_NAME"); WriteString(F(),"PER_VERTEX_ATTR_NAME");
WriteString((*ai)._name.c_str() ); WriteString(F(),(*ai)._name.c_str() );
WriteString("PER_VERTEX_ATTR_SIZE"); WriteString(F(),"PER_VERTEX_ATTR_SIZE");
WriteInt(stdb->SizeOf()); WriteInt(F(),stdb->SizeOf());
fwrite(stdb->DataBegin(),m.vert.size(),stdb->SizeOf(),F()); fwrite(stdb->DataBegin(),m.vert.size(),stdb->SizeOf(),F());
} }
@ -310,19 +308,19 @@ namespace io {
unsigned int n_named_attr = 0; unsigned int n_named_attr = 0;
for(ai = m.face_attr.begin(); ai != m.face_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty(); for(ai = m.face_attr.begin(); ai != m.face_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty();
WriteString("N_PER_FACE_ATTRIBUTES"); WriteString(F(),"N_PER_FACE_ATTRIBUTES");
WriteInt A3(n_named_attr); WriteInt (F(),n_named_attr);
for(ai = m.face_attr.begin(); ai != m.face_attr.end(); ++ai) for(ai = m.face_attr.begin(); ai != m.face_attr.end(); ++ai)
if(!(*ai)._name.empty()) if(!(*ai)._name.empty())
{ {
STDBf * stdb = (STDBf *) (*ai)._handle; STDBf * stdb = (STDBf *) (*ai)._handle;
WriteString("PER_FACE_ATTR_NAME"); WriteString(F(),"PER_FACE_ATTR_NAME");
WriteString((*ai)._name.c_str()); WriteString(F(),(*ai)._name.c_str());
WriteString("PER_FACE_ATTR_SIZE"); WriteString(F(),"PER_FACE_ATTR_SIZE");
WriteInt(stdb->SizeOf()); WriteInt(F(),stdb->SizeOf());
fwrite(stdb->DataBegin(),m.face.size(),stdb->SizeOf(),F()); fwrite(stdb->DataBegin(),m.face.size(),stdb->SizeOf(),F());
} }
@ -333,17 +331,17 @@ namespace io {
typename std::set< typename SaveMeshType::PointerToAttribute>::const_iterator ai; typename std::set< typename SaveMeshType::PointerToAttribute>::const_iterator ai;
unsigned int n_named_attr = 0; unsigned int n_named_attr = 0;
for(ai = m.mesh_attr.begin(); ai != m.mesh_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty(); for(ai = m.mesh_attr.begin(); ai != m.mesh_attr.end(); ++ai) n_named_attr+=!(*ai)._name.empty();
WriteString("N_PER_MESH_ATTRIBUTES"); WriteInt A4(n_named_attr); WriteString(F(),"N_PER_MESH_ATTRIBUTES"); WriteInt(F(),n_named_attr);
for(ai = m.mesh_attr.begin(); ai != m.mesh_attr.end(); ++ai) for(ai = m.mesh_attr.begin(); ai != m.mesh_attr.end(); ++ai)
if(!(*ai)._name.empty()) if(!(*ai)._name.empty())
{ {
AttributeBase * handle = (AttributeBase *) (*ai)._handle ; AttributeBase * handle = (AttributeBase *) (*ai)._handle ;
WriteString("PER_MESH_ATTR_NAME"); WriteString(F(),"PER_MESH_ATTR_NAME");
WriteString((*ai)._name.c_str()); WriteString(F(),(*ai)._name.c_str());
WriteString("PER_MESH_ATTR_SIZE"); WriteString(F(),"PER_MESH_ATTR_SIZE");
WriteInt(handle->SizeOf()); WriteInt(F(),handle->SizeOf());
fwrite(handle->DataBegin(),1,handle->SizeOf(),F()); fwrite(handle->DataBegin(),1,handle->SizeOf(),F());
} }

View File

@ -236,15 +236,15 @@ namespace io {
struct ReadString{ ReadString(FILE * f,std::string & out){ void ReadString(FILE * f,std::string & out){
unsigned int l; fread(&l,4,1,f); unsigned int l; fread(&l,4,1,f);
char * buf = new char[l+1]; char * buf = new char[l+1];
fread(buf,1,l,f);buf[l]='\0'; fread(buf,1,l,f);buf[l]='\0';
out = std::string(buf); out = std::string(buf);
delete [] buf; delete [] buf;
} }
};
struct ReadInt{ ReadInt(FILE *f, unsigned int & i){ fread(&i,1,4,f);}}; void ReadInt(FILE *f, unsigned int & i){ fread(&i,1,4,f);}
template <typename OpenMeshType, typename CONT> template <typename OpenMeshType, typename CONT>