ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/mgf2rad.c
(Generate patch)

Comparing ray/src/cv/mgf2rad.c (file contents):
Revision 2.7 by greg, Fri Jul 8 16:10:09 1994 UTC vs.
Revision 2.10 by greg, Thu Jul 21 17:23:43 1994 UTC

# Line 17 | Line 17 | static char SCCSid[] = "$SunId$ LBL";
17  
18   #define putv(v)         printf("%18.12g %18.12g %18.12g\n",(v)[0],(v)[1],(v)[2])
19  
20 + #define invert          (xf_context != NULL && xf_context->rev)
21 +
22   double  glowdist = FHUGE;               /* glow test distance */
23  
24 < double  emult = 1.;                     /* emmitter multiplier */
24 > double  emult = 1.;                     /* emitter multiplier */
25  
26   int     r_comment(), r_cone(), r_cyl(), r_face(), r_ies(), r_ring(), r_sph();
27   char    *material(), *object(), *addarg();
# Line 61 | Line 63 | char   *argv[];
63                  printf(" %s", argv[i]);
64                  switch (argv[i][1]) {
65                  case 'g':                       /* glow distance (meters) */
66 <                        if (argv[i][2] || badarg(argc-i, argv+i, "f"))
66 >                        if (argv[i][2] || badarg(argc-i-1, argv+i+1, "f"))
67                                  goto userr;
68                          glowdist = atof(argv[++i]);
69                          printf(" %s", argv[i]);
70                          break;
71                  case 'e':                       /* emitter multiplier */
72 <                        if (argv[i][2] || badarg(argc-i, argv+i, "f"))
72 >                        if (argv[i][2] || badarg(argc-i-1, argv+i+1, "f"))
73                                  goto userr;
74                          emult = atof(argv[++i]);
75                          printf(" %s", argv[i]);
# Line 293 | Line 295 | char   **av;
295          printf("\n%s polygon %sf%d\n", mat, object(), ++nfaces);
296          printf("0\n0\n%d\n", 3*(ac-1));
297          for (i = 1; i < ac; i++) {
298 <                if ((cv = c_getvert(av[i])) == NULL)
298 >                if ((cv = c_getvert(av[invert ? ac-i : i])) == NULL)
299                          return(MG_EUNDEF);
300                  xf_xfmpoint(v, cv->p);
301                  putv(v);
# Line 367 | Line 369 | char   *mat, *vn1, *vn2, *vn3;
369          FVECT   n1, n2, n3;
370          register int    i;
371                          /* the following is repeat code, so assume it's OK */
370        cv1 = c_getvert(vn1);
372          cv2 = c_getvert(vn2);
373 <        cv3 = c_getvert(vn3);
373 >        if (invert) {
374 >                cv3 = c_getvert(vn1);
375 >                cv1 = c_getvert(vn3);
376 >        } else {
377 >                cv1 = c_getvert(vn1);
378 >                cv3 = c_getvert(vn3);
379 >        }
380          xf_xfmpoint(v1, cv1->p);
381          xf_xfmpoint(v2, cv2->p);
382          xf_xfmpoint(v3, cv3->p);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines