static errcode GetPolyCylinder(parsehandle * ph, SceneHandle scene) { apiflt rad; apivector * temp; void * tex; float a; int numpts, i; errcode rc; rc = GetString(ph, "POINTS"); fscanf(ph->ifp, "%d", &numpts); temp = (apivector *) malloc(numpts * sizeof(apivector)); for (i=0; i<numpts; i++) { rc |= GetVector(ph, &temp[i]); } rc |= GetString(ph, "RAD"); fscanf(ph->ifp, "%f", &a); rad=a; rc |= GetTexture(ph, scene, &tex); rt_polycylinder(scene, tex, temp, numpts, rad); free(temp); return rc; }
static errcode GetPolyCylinder(FILE * dfile) { apiflt rad; vector * temp; void * tex; float a; int numpts, i; errcode rc; rc = GetString(dfile, "POINTS"); fscanf(dfile, "%d", &numpts); temp = (vector *) malloc(numpts * sizeof(vector)); for (i=0; i<numpts; i++) { rc |= GetVector(dfile, &temp[i]); } rc |= GetString(dfile, "RAD"); fscanf(dfile, "%f", &a); rad=a; rc |= GetTexture(dfile, &tex); rt_polycylinder(tex, temp, numpts, rad); free(temp); return rc; }