/* ============= MakePatches ============= */ void MakePatches (void) { int i, j, k; dface_t *f; int fn; winding_t *w; dmodel_t *mod; vec3_t origin; entity_t *ent; char *s; ParseEntities (); qprintf ("%i faces\n", numfaces); for (i=0 ; i<nummodels ; i++) { mod = dmodels+i; ent = EntityForModel (i); VectorCopy (vec3_origin, origin); // bmodels with origin brushes need to be offset into their // in-use position if ( *(s = ValueForKey(ent,"origin")) ) { double v1, v2, v3; if ( sscanf (s, "%lf %lf %lf", &v1, &v2, &v3) == 3 ) { origin[0] = v1; origin[1] = v2; origin[2] = v3; } } for (j=0 ; j<mod->numfaces ; j++) { fn = mod->firstface + j; face_entity[fn] = ent; VectorCopy (origin, face_offset[fn]); f = dfaces+fn; w = WindingFromFace (f); for (k=0 ; k<w->numpoints ; k++) { VectorAdd (w->p[k], origin, w->p[k]); } MakePatchForFace (fn, w); } } qprintf ("%i square feet [%.2f square inches]\n", (int)(totalarea/144), totalarea ); }
/* ============= MakePatches ============= */ void MakePatches( void ){ int i, j, k; dface_t *f; int fn; winding_t *w; dmodel_t *mod; vec3_t origin; entity_t *ent; Sys_FPrintf( SYS_VRB, "%i faces\n", numfaces ); for ( i = 0 ; i < nummodels ; i++ ) { mod = &dmodels[i]; ent = EntityForModel( i ); // bmodels with origin brushes need to be offset into their // in-use position GetVectorForKey( ent, "origin", origin ); //VectorCopy (vec3_origin, origin); for ( j = 0 ; j < mod->numfaces ; j++ ) { fn = mod->firstface + j; face_entity[fn] = ent; VectorCopy( origin, face_offset[fn] ); f = &dfaces[fn]; w = WindingFromFace( f ); for ( k = 0 ; k < w->numpoints ; k++ ) { VectorAdd( w->p[k], origin, w->p[k] ); } MakePatchForFace( fn, w ); } } Sys_FPrintf( SYS_VRB, "%i sqaure feet\n", (int)( totalarea / 64 ) ); }