#define PTS_NODE struct pts_node
#define SEG_NODE struct seg_node
#define BND_NODE struct bnd_node
#define GEO_NODE struct geo_node
#define FOR_ALL_BOUNDARIES(g) for((g)=geo_list; (g) != NULL; (g) = (g)->next)
#define FOR_ALL_POINTS(g) for((g) = pts_list; (g) != NULL; (g) = (g)->next)
#define FOR_ALL_SEGMENTS(geo, s) for((s) = (geo)->bnd_list; (s) != NULL; (s) = (s)->next)
PTS_NODE
{
PTS_NODE *next;
PTS_NODE *prev;
int n;
int x;
int y;
int id;
float physicalX;
float physicalY;
};
SEG_NODE
{
SEG_NODE *next;
SEG_NODE *prev;
int n;
PTS_NODE *pts1;
PTS_NODE *pts2;
int id;
};
BND_NODE
{
BND_NODE *next;
BND_NODE *prev;
SEG_NODE *seg;
};
GEO_NODE
{
GEO_NODE *next;
GEO_NODE *prev;
BND_NODE *bnd_list;
int type;
};
PTS_NODE *pts_list ;
PTS_NODE *pts;
SEG_NODE *seg_list ;
SEG_NODE *seg;
BND_NODE *bnd_list ;
BND_NODE *bnd;
GEO_NODE *geo_list ;
GEO_NODE *geo;
PTS_NODE *add_pnt(float x, float y);
PTS_NODE *get_pts_pointer(int id);
void mv_pnt(float x, float y, float xnew, float ynew);
void add_seg(PTS_NODE *pts1, PTS_NODE *pts2, GEO_NODE *bnd);
void add_seg2(int seg_id, GEO_NODE *bnd);
GEO_NODE *new_bnd();
void rm_bnd(GEO_NODE *this);
int number_of_boundaries();
int number_of_points();
int number_of_segments(GEO_NODE *g);
syntax highlighted by Code2HTML, v. 0.9.1