00001
00006
00007
00008
#ifndef A48_H
00009
#define A48_H
00010
00011
#include <cstdio>
00012
#include <iostream>
00013
#include <set>
00014
#include <map>
00015
#include <iterator>
00016
#include "heap.h"
00017
00028
namespace A48 {
00029
00030
class Mesh;
00031
class Surface;
00032
class Face;
00033
class Edge;
00034
class Hedge;
00035
class Vertex;
00036
00037
class Markable;
00038
class Error;
00039
00040
00045
typedef std::set<Face*> FaceContainer;
00046
00047
00052
typedef FaceContainer::iterator FaceIter;
00053
00054
00059
typedef std::set<Edge*> EdgeContainer;
00060
00061
00066
typedef EdgeContainer::iterator EdgeIter;
00067
00068
00073
typedef std::set<Vertex*> VertexContainer;
00074
00075
00080
typedef VertexContainer::iterator VertexIter;
00081
00082
00087
typedef std::pair<int,int> Ipair;
00088
00089
00094
typedef std::map<const Ipair, A48::Hedge*> HedgeMap;
00095
00096
00105 class Markable {
00106 bool mark_;
00107
00108
public:
00109
00111 Markable(
void) :
mark_(false) {};
00112
00115 void set_mark(
bool m) {
mark_ = m; };
00116
00119 bool is_marked(
void)
const {
return mark_; };
00120 };
00121
00122
00127 class Error {
00128
public:
00130 Error(
char *s=
""){
00131 std::cerr<<
"A48 error: "<<s<<std::endl; exit(0);
00132 }
00133 };
00134
00135 }
00136
00137
#include "face.h"
00138
#include "edge.h"
00139
#include "vertex.h"
00140
#include "mesh.h"
00141
00143
00144
#endif