ftp.nice.ch/pub/next/graphics/3d/geomview.1.4.1.s.tar.gz#/Geomview/src/bin/geomview/common/pickfunc.h

This is pickfunc.h in view mode; [Download] [Up]

#define PICKFUNC(name, maxfaceverts, maxpathlen, body)		\
LObject *name(Lake *lake, LList *args)				\
{								\
  char *coordsys = NULL, *id = NULL;				\
  HPoint3 point;  int pn = 4;					\
  HPoint3 vertex; int vn = 4;					\
  HPoint3 edge[2]; int en = 8;					\
  HPoint3 face[maxfaceverts]; int fn = maxfaceverts*4;		\
  int ppath[maxpathlen]; int ppn = maxpathlen;			\
  int vi;							\
  int ei[2]; int ein = 2;					\
  int fi;							\
								\
  LDECLARE(("pick", LBEGIN,					\
	    LSTRING,			&coordsys,		\
	    LSTRING,			&id,			\
	    LHOLD, LARRAY, LFLOAT,	&point, &pn,		\
	    LHOLD, LARRAY, LFLOAT,	&vertex, &vn,		\
	    LHOLD, LARRAY, LFLOAT,	edge, &en,		\
	    LHOLD, LARRAY, LFLOAT,	face, &fn,		\
	    LHOLD, LARRAY, LINT,	ppath, &ppn,		\
	    LINT,			&vi,			\
	    LHOLD, LARRAY, LINT,	ei, &ein,		\
	    LINT,			&fi,			\
	    LEND));						\
								\
  if (1) { body };						\
  return Lt;							\
}

/*
  Note: the "if (1)" business above is to prevent a warning
  about the following statement ("return Lt") not being reached
  if the body itself returns.
*/

/* Note: Don't use DEFPICKFUNC any more.  Use the newer PICKFUNC
 * instead.  DEFPICKFUNC is provided for backward compatibility.
 */
#define DEFPICKFUNC(helpstr,					\
		    coordsys,					\
		    id,						\
		    point, pn,					\
		    vertex, vn,					\
		    edge, en,					\
		    face, fn, maxfaceverts,			\
		    ppath, ppn, maxpathlen,			\
		    vi,						\
		    ei, ein,					\
		    fi,						\
		    body)					\
LDEFINE(pick, LVOID, helpstr)					\
{								\
  char *coordsys = NULL, *id = NULL;				\
  HPoint3 point;  int pn = 4;					\
  HPoint3 vertex; int vn = 4;					\
  HPoint3 edge[2]; int en = 8;					\
  HPoint3 face[maxfaceverts]; int fn = maxfaceverts*4;		\
  int ppath[maxpathlen]; int ppn = maxpathlen;			\
  int vi;							\
  int ei[2]; int ein = 2;					\
  int fi;							\
								\
  LDECLARE(("pick", LBEGIN,					\
	    LSTRING,			&coordsys,		\
	    LSTRING,			&id,			\
	    LHOLD, LARRAY, LFLOAT,	&point, &pn,		\
	    LHOLD, LARRAY, LFLOAT,	&vertex, &vn,		\
	    LHOLD, LARRAY, LFLOAT,	edge, &en,		\
	    LHOLD, LARRAY, LFLOAT,	face, &fn,		\
	    LHOLD, LARRAY, LINT,	ppath, &ppn,		\
	    LINT,			&vi,			\
	    LHOLD, LARRAY, LINT,	ei, &ein,		\
	    LINT,			&fi,			\
	    LEND));						\
								\
  if (1) { body };						\
  return Lt;							\
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.