ftp.nice.ch/pub/next/graphics/3d/geomview.1.4.1.s.tar.gz#/Geomview/src/lib/gprim/discgrp/winged_edge.h

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.