00001 #ifndef IMESHWRITER_H_GUARD
00002 #define IMESHWRITER_H_GUARD
00003
00013 #include "../Common.h"
00014 #include <string>
00015
00016 class hHybridMesh;
00017
00018 namespace MeshWrite
00019 {
00020
00021 class IMeshWriter
00022 {
00023 public:
00024 IMeshWriter(void) : writeSequence(NULL) {};
00025 virtual ~IMeshWriter(void){};
00026
00027 virtual bool doWrite(const hHybridMesh * mesh) = 0;
00028
00029 static const char V_COUNT = 'v', VERTICES = 'V',
00030 E_COUNT = 'e', EDGES = 'E',
00031 F_COUNT ='f', FACES ='F',
00032 EL_COUNT = 'l', ELEMENTS = 'L',
00033 AUX='a', END = 0;
00034
00037 char * writeSequence;
00038
00043 virtual bool Init() = 0;
00044 virtual bool Init(const std::string & name) = 0;
00045
00048 virtual void Free() = 0;
00049
00052 virtual void WriteVerticesCount(const int noVerts) = 0;
00053
00056 virtual void WriteVertex(const double coords[],const uTind type) = 0 ;
00057
00060 virtual void WriteEdgesCount(const int noEdges) = 0;
00061
00064 virtual void WriteEdge(const uTind verts[], const uTind type) = 0 ;
00065
00068 virtual void WriteFacesCount(const int noFaces) = 0;
00069
00072 virtual void WriteFace(const uTind edges[],const uTind type,const int8_t bc, const uTind neigh[]) = 0 ;
00073
00076 virtual void WriteElementCount(const int noElems) = 0;
00077
00081 virtual void WriteElement(const uTind faces[], const uTind neighbours[],const uTind type, const uTind father, const int8_t ref, const int8_t material) = 0;
00082
00083
00084
00085 };
00086
00087 }
00088
00089 #endif
00090