This is winged_edge.h in view mode; [Download] [Up]
#ifndef _winged_edge_ #define _winged_edge_ #ifndef _proj_matrix_ #define _proj_matrix_ typedef double proj_matrix[4][4]; typedef double point[4]; #endif typedef struct WEvertex { double x[4]; /* coordinates (x[3] == 1) */ double dist; /* distance from slicing plane (used locally) */ int ideal; /* is this an ideal vertex (used locally) */ struct WEvertex *next; } WEvertex; typedef struct WEedge { struct WEvertex *v0, /* tail */ *v1; /* tip */ struct WEedge *e0L, /* back left */ *e0R, /* back right */ *e1L, /* front left */ *e1R; /* front right */ struct WEface *fL, /* left face */ *fR; /* right face */ struct WEedge *next; } WEedge; typedef struct WEface { int order; int fill_tone; struct WEedge *some_edge; proj_matrix group_element; struct WEface *inverse; struct WEface *next; /* general use */ struct WEface *prv; /* used for clean and dirty lists */ struct WEface *nxt; } WEface; typedef struct { int num_vertices, num_edges, num_faces; WEvertex *vertex_list; WEedge *edge_list; WEface *face_list; WEface dirty0, /* dummy faces to serve as start and */ dirty1, /* finish of doubly linked lists */ clean0, clean1, pending0, pending1; } WEpolyhedron; #endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.