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

Comparing ray/src/cv/mgflib/mgfdoc.tr (file contents):
Revision 1.1 by greg, Fri May 12 14:26:12 1995 UTC vs.
Revision 1.7 by greg, Wed Sep 20 10:07:10 1995 UTC

# Line 431 | Line 431 | Since the arguments are concise and self-explanatory,
431   sufficient.
432   The following transformation flags and
433   parameters are defined:
434 < .TS I
434 > .TS
435 > center;
436   l l.
437   -t dx dy dz     translate objects along the given vector
438   -rx degrees     rotate objects about the X-axis
# Line 546 | Line 547 | Detailed MGF Example
547   The following example of a simple room with a single door
548   and six file cabinets shows MGF in action, with copious comments to
549   help explain what's going on.
550 + .LP
551   .DS
552   # "ceiling_tile" is a diffuse white surface with 75% reflectance:
553   # Create new named material context and clear it
# Line 744 | Line 746 | o door
746          o
747   o
748  
747        i cubfurn.inc -mx -t 405 133.5 0
748 o
749
749   # Six file cabinets (36" wide each)
750   # ("filecab.inc" was given as an earlier example in Section 1.2)
751   o filecab.x
# Line 772 | Line 771 | There are currently 28 entities in the MGF specificati
771   For ease of reference we have broken these into five categories:
772   .IP 1.
773   General
774 < .TS I
774 > .TS
775   lw(.75i) lw(1.75i) lw(3i).
776   #       [anything ...]  a comment
777   o       [name]  begin/end object context
# Line 782 | Line 781 | ies    pathname [-m f][xform]  include IES luminaire (with
781   .TE
782   .IP 2.
783   Color
784 < .TS I
784 > .TS
785   lw(.75i) lw(1.75i) lw(3i).
786   c       [id [= [template]]]     get/set color context
787   cxy     x y     set CIE (x,y) chromaticity for current color
# Line 1267 | Line 1266 | corresponds to the measurement at
1266   Values in between are separated by
1267   .I "(l_max-l_min)/(N-1)"
1268   nanometers.
1269 < All values must be non-negative, and the spectrum outside of the
1269 > All values should be non-negative unless defining a component for
1270 > complementary color mixing, and the spectrum outside of the
1271   specified range is assumed to be zero.
1272   (The visible range is 380 to 780 nm.)\0
1273   The actual units and scale of the measurements do not matter,
# Line 2226 | Line 2226 | o stylus
2226                  p 0 0 .005
2227          v vend =
2228                  p 0 0 .05
2229 <        cyl vtip1 .0015
2229 >        cyl vtip1 .0015 vend
2230          sph vend .0015
2231          cone vtip0 0 vtip1 .0015
2232   o
# Line 2388 | Line 2388 | ring - create a circular ring with inner and outer rad
2388   .SH
2389   SYNOPSIS
2390   .LP
2391 < .B cyl
2391 > .B ring
2392   .I "vc rmin rmax"
2393   .SH
2394   DESCRIPTION
# Line 2695 | Line 2695 | Greg Ward
2695   SEE ALSO
2696   .LP
2697   ies2rad(1), mgf2meta(1), obj2rad(1), oconv(1), rad2mgf(1), xform(1)
2698 < .ds RH
2699 < RAD2MGF
2698 > .ds RH RAD2MGF
2699   .bp
2700   .SH
2701   NAME
# Line 2985 | Line 2984 | char   **av;
2984  
2985          if (ac < 4)                     /* check # arguments */
2986                  return(MG_EARGC);
2987 <        printf("face\n");               /* begin face output */
2987 >        printf("face\\\\n");            /* begin face output */
2988          for (i = 1; i < ac; i++) {
2989                  if ((vp = c_getvert(av[i])) == NULL)    /* vertex from name */
2990                          return(MG_EUNDEF);
2991                  xf_xfmpoint(vert, vp->p);                       /* apply transform */
2992 <                printf("%15.9f %15.9f %15.9f\n",
2992 >                printf("%15.9f %15.9f %15.9f\\\\n",
2993                          vert[0], vert[1], vert[2]);                     /* output vertex */
2994          }
2995 <        printf(";\\n");                 /* end of face output */
2995 >        printf(";\\\\n");                       /* end of face output */
2996          return(MG_OK);                  /* normal exit */
2997   }
2998  
# Line 3122 | Line 3121 | following:
3121   #define MG_E_CMIX               4               /* cmix */
3122   #define MG_E_CSPEC              5               /* cspec        */
3123   #define MG_E_CXY                6               /* cxy          */
3124 < #define MG_E_CYL                7               /* cyl  */
3124 > #define MG_E_CYL                7               /* cyl          */
3125   #define MG_E_ED         8               /* ed           */
3126   #define MG_E_FACE               9               /* f            */
3127   #define MG_E_INCLUDE    10              /* i            */
3128   #define MG_E_IES                11              /* ies          */
3129 < #define MG_E_IR         12              /* ir           */
3129 > #define MG_E_IR                 12              /* ir           */
3130   #define MG_E_MATERIAL   13              /* m            */
3131   #define MG_E_NORMAL     14              /* n            */
3132   #define MG_E_OBJECT     15              /* o            */
# Line 3267 | Line 3266 | and return one of the non-zero values from "parser.h"
3266   #define MG_EUNK         1               /* unknown entity */
3267   #define MG_EARGC                2               /* wrong number of arguments */
3268   #define MG_ETYPE                3               /* argument type error */
3269 < #define MG_EILL         4               /* illegal argument value */
3269 > #define MG_EILL                         4               /* illegal argument value */
3270   #define MG_EUNDEF               5               /* undefined reference */
3271   #define MG_ENOFILE              6               /* cannot open input file */
3272   #define MG_EINCL                7               /* error in included file */
# Line 3289 | Line 3288 | listed above in the native country's language.
3288   .SH
3289   SEE ALSO
3290   .LP
3291 < mg_fgetpos, mg_handle, mg_init
3291 > mg_fgetpos, mg_handle, mg_init, mg_open
3292   .ds RH MG_OPEN
3293   .bp
3294   .SH
# Line 4275 | Line 4274 | mg_init, mg_load, obj_handler, xf_xfmpoint
4274   .SH
4275   NAME
4276   .LP
4277 < xf_xfmpoint xf_xfmvect, xf_rotvect, xf_scale - apply current
4277 > xf_xfmpoint, xf_xfmvect, xf_rotvect, xf_scale - apply current
4278   transformation
4279   .SH
4280   SYNOPSIS
# Line 4304 | Line 4303 | to the point
4303   .I pold,
4304   scaling, rotating and moving it to its proper location, which is put in
4305   .I pnew.
4306 < (The two arguments may point to the same vector.)\0
4306 > (As for
4307 > .I xf_xfmvect
4308 > and
4309 > .I xf_rotvect,
4310 > the two arguments may point to the same vector.)\0
4311   .LP
4312   The
4313   .I xf_xfmvect
# Line 4312 | Line 4315 | routine applies the current transformation to the vect
4315   .I vold,
4316   scaling and rotating it to its proper location, which is put in
4317   .I vnew.
4315 (The two arguments may point to the same vector.)\0
4318   The only difference between
4319   .I xf_xfmpoint
4320   and
# Line 4325 | Line 4327 | routine rotates the vector
4327   .I nold
4328   using the current transformation, and stores the result in
4329   .I nnew.
4328 (The two arguments may point to the same vector.)\0
4330   No translation or scaling is applied, which is the appropriate
4331   action for surface normal vectors for example.
4332   .LP
# Line 4486 | Line 4487 | and adopt the following code to convert between CIE an
4487   #define  CIE_y_w                0.3333
4488   #endif
4489  
4490 < #define CIE_D           (       CIE_x_r*(CIE_y_g - CIE_y_b) + \\\\
4491 <                                CIE_x_g*(CIE_y_b - CIE_y_r) + \\\\
4490 > #define CIE_D           (       CIE_x_r*(CIE_y_g - CIE_y_b) + \\
4491 >                                CIE_x_g*(CIE_y_b - CIE_y_r) + \\
4492                                  CIE_x_b*(CIE_y_r - CIE_y_g)     )
4493 < #define CIE_C_rD        ( (1./CIE_y_w) * \\\\
4494 <                                ( CIE_x_w*(CIE_y_g - CIE_y_b) - \\\\
4495 <                                  CIE_y_w*(CIE_x_g - CIE_x_b) + \\\\
4493 > #define CIE_C_rD        ( (1./CIE_y_w) * \\
4494 >                                ( CIE_x_w*(CIE_y_g - CIE_y_b) - \\
4495 >                                  CIE_y_w*(CIE_x_g - CIE_x_b) + \\
4496                                    CIE_x_g*CIE_y_b - CIE_x_b*CIE_y_g     ) )
4497 < #define CIE_C_gD        ( (1./CIE_y_w) * \\\\
4498 <                                ( CIE_x_w*(CIE_y_b - CIE_y_r) - \\\\
4499 <                                  CIE_y_w*(CIE_x_b - CIE_x_r) - \\\\
4497 > #define CIE_C_gD        ( (1./CIE_y_w) * \\
4498 >                                ( CIE_x_w*(CIE_y_b - CIE_y_r) - \\
4499 >                                  CIE_y_w*(CIE_x_b - CIE_x_r) - \\
4500                                    CIE_x_r*CIE_y_b + CIE_x_b*CIE_y_r     ) )
4501 < #define CIE_C_bD        ( (1./CIE_y_w) * \\\\
4502 <                                ( CIE_x_w*(CIE_y_r - CIE_y_g) - \\\\
4503 <                                  CIE_y_w*(CIE_x_r - CIE_x_g) + \\\\
4501 > #define CIE_C_bD        ( (1./CIE_y_w) * \\
4502 >                                ( CIE_x_w*(CIE_y_r - CIE_y_g) - \\
4503 >                                  CIE_y_w*(CIE_x_r - CIE_x_g) + \\
4504                                    CIE_x_r*CIE_y_g - CIE_x_g*CIE_y_r     ) )
4505  
4506   #define CIE_rf          (CIE_y_r*CIE_C_rD/CIE_D)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines