This is ptlPolylist.c in view mode; [Download] [Up]
#include "ooglutil.h" #include "geom.h" #include "polylistP.h" #include "pointlistP.h" void *polylist_PointList_get(int sel, Geom *geom, va_list args); void *polylist_PointList_fillin(int sel, Geom *geom, va_list args); void *polylist_PointList_set(int sel, Geom *geom, va_list args); void *polylist_PointList_length(int sel, Geom *geom, va_list args); #define MAX_METHODS 4 static SpecFunc methods[] = { "PointList_get", polylist_PointList_get, "PointList_fillin", polylist_PointList_fillin, "PointList_set", polylist_PointList_set, "PointList_length", polylist_PointList_length }; static char msg[] = "ptlPolylist.c"; ptlPolylist_init() { pointlist_initspec(methods, MAX_METHODS, GeomClassLookup("polylist")); } void *polylist_PointList_get(int sel, Geom *geom, va_list args) { PolyList *p = (PolyList *)geom; HPoint3 *plist; float **t; plist = OOGLNewNE(HPoint3, p->n_verts, msg); t = va_arg(args, float **); return GeomCall(GeomMethodSel("PointList_fillin"), geom, t, 0, plist); } void *polylist_PointList_fillin(int sel, Geom *geom, va_list args) { int i; PolyList *p = (PolyList *)geom; float **t; HPoint3 *plist; t = va_arg(args, float **); va_arg(args, int); plist = va_arg(args, HPoint3 *); for (i = 0; i < p->n_verts; i++) HPt3Transform(t, &p->vl[i].pt, &plist[i]); return((void *)plist); } void *polylist_PointList_set(int sel, Geom *geom, va_list args) { int i; PolyList *p = (PolyList *)geom; HPoint3 *plist; va_arg(args, int); plist = va_arg(args, HPoint3 *); for (i = 0; i < p->n_verts; i++) HPt3Copy(&plist[i], &p->vl[i].pt); return((void *)p); } void *polylist_PointList_length(int sel, Geom *geom, va_list args) { PolyList *p = (PolyList *)geom; return((void *)p->n_verts); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.