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.