| 40 | 
  | 
 | 
| 41 | 
  | 
int  smooth = 0;                /* apply smoothing? */ | 
| 42 | 
  | 
int  objout = 0;                /* output .OBJ format? */ | 
| 43 | 
+ | 
int  rev = 0;                   /* invert normal directions? */ | 
| 44 | 
  | 
 | 
| 45 | 
  | 
char  *modname, *surfname; | 
| 46 | 
  | 
 | 
| 110 | 
  | 
                        smooth++; | 
| 111 | 
  | 
                else if (!strcmp(argv[i], "-o")) | 
| 112 | 
  | 
                        objout++; | 
| 113 | 
+ | 
                else if (!strcmp(argv[i], "-i")) | 
| 114 | 
+ | 
                        rev = 1; | 
| 115 | 
  | 
                else | 
| 116 | 
  | 
                        goto userror; | 
| 117 | 
  | 
 | 
| 153 | 
  | 
                                                /* print header */ | 
| 154 | 
  | 
        fputs("# ", stdout); | 
| 155 | 
  | 
        printargs(argc, argv, stdout); | 
| 156 | 
< | 
        eclock = 0; | 
| 156 | 
> | 
        eclock = 1; | 
| 157 | 
  | 
                                                /* initialize */ | 
| 158 | 
  | 
        comprow(-1.0/m, row0, n); | 
| 159 | 
  | 
        comprow(0.0, row1, n); | 
| 359 | 
  | 
        int  axis; | 
| 360 | 
  | 
        FVECT  v1, v2, vc1, vc2; | 
| 361 | 
  | 
        int  ok1, ok2; | 
| 362 | 
+ | 
 | 
| 363 | 
+ | 
        if (rev) {                      /* reverse normals? */ | 
| 364 | 
+ | 
                POINT  *pt = p1; p1 = p2; p2 = pt; | 
| 365 | 
+ | 
        } | 
| 366 | 
  | 
                                        /* compute exact normals */ | 
| 367 | 
  | 
        ok1 = (p0->valid && p1->valid && p2->valid); | 
| 368 | 
  | 
        if (ok1) { | 
| 543 | 
  | 
                        fvsum(v2, r1[0].p, r1[-1].p, -1.0); | 
| 544 | 
  | 
                else | 
| 545 | 
  | 
                        fvsum(v2, r1[1].p, r1[-1].p, -1.0); | 
| 546 | 
< | 
                fcross(r1[0].n, v1, v2); | 
| 546 | 
> | 
                if (rev) | 
| 547 | 
> | 
                        fcross(r1[0].n, v2, v1); | 
| 548 | 
> | 
                else | 
| 549 | 
> | 
                        fcross(r1[0].n, v1, v2); | 
| 550 | 
  | 
                normalize(r1[0].n); | 
| 551 | 
  | 
        skip: | 
| 552 | 
  | 
                r0++; r1++; r2++; |