## gamut/viewgam

### Summary

Convert one or more gamuts into a X3DOM 3D visualization file. This allows visual comparison of several gamut surfaces.
Also allows creating the intersection (overlap) between two gamuts. This is useful in measuring and visualizing the coverage of one gamut of another.
See 3D Viewing Format for switching to VRML or X3D output format.

### Usage

viewgam { [-c color] [-t trans] [-w|s] infile.gam } ... outfile.x3d.html
For each input gamut file:
-c color Color to make gamut, r = red, g = green, b = blue
c = cyan, m = magenta, y = yellow, w = white
n = natural color
-t trans Set transparency from 0.0 (opaque) to 1.0 (invisible)
-w Show as a wireframe
-s Show as a solid surface
infile.gam Name of infile.gam file
-n Don't add Lab axes
-i Compute and print intersecting volume of first 2 gamuts
-I isect.gam Same as -i, but save intersection gamut to isect.gam
-o Print & plot points on first gamut that are outside second gamut
outfile Base name of output outfile.x3d.html file

### Usage Details and Discussion

viewgam creates a X3DOM file that allows the viewing and comparing of multiple gamut files by representing them as solid surfaces, wireframes, etc. It takes as input a list of gamut files, each file preceded by any options that are to apply to the display of that particular gamut.
The options that can be specified for each input gamut are:
-c color allows the color of the surface or wireframe to be specified. Any of a number of predefined colors (red, green, blue, cyan, magenta, yellow, white) can be used, as well as allowing the color to reflect the natural color of that point in the colorspace.
-t trans allows the transparency of the surface to be specified. A value of 0.2 might be a good place to start. Using transparency generally leads to a slower display than the default opaque surface treatment, but can make it possible to see within a solid gamut surface.
-w forces the gamut surface to be rendered as a wireframe.
-s forces the gamut surface to be rendered as a solid surface.
By default, the first gamut is treated as a solid with natural coloring, with the second and subsequent gamuts being wireframes with colors of white, red, cyan, yellow, green and blue, with decreasing visibility.
The -n flag turns off display of the default L*a*b* axes in the output.
The -i flag computes the intersecting volume of the first two gamuts (in cubic color units, usually L*a*b*), as well as the volumes of the two gamuts and the percentage the intersection is of the two gamuts. This is a useful measure of the coverage one gamut has of another. If -I is used, then as well as printing the volume, the intersecting gamut will be saved to the isect.gam file.
The -o flag checks points on the surface of the first gamut, and prints them out if they are outside the second gamut. The delta E outside the second gamut is printed first in square brackets. It also creates a visualization file outfile_oog.x3d.html of the portion of the first gamut that is outside the second.
The final argument is the base name of the X3DOM file to save the resulting composite 3D visualization file to. If the name given doesn't have an extension, one will be automatically added.