NAME Lat3DToGeom DESCRIPTION This module generates the geometry for any number of horizontal or vertical planes from a 3-D perimeter or curvilinear lattice. A list is kept (in a special format) of all the requested planes. Planes may be arbitrarily added and deleted from this list. Once all the desired planes have been specified, then they can be generated simultaneously. Lat3DToGeom has the ability to generate the planes over a selected data range with the "Range Start" and "Range End" widgets (plus optional special value removal) rather than over the entire data range as does the LatToGeom module. It can also create the geometry as points, lines, or polygons (triangles) with or without interpolated lattice cell centers. Finally, a few options are provided for automatic plane generation to aid animation. INPUTS Input -- Lattice (3-D, 1-vector, float, perimeter..curvilinear). This is the lattice from which to generate the planes. Colormap -- Lattice (1-D, 4-vector). This is the colormap for the planes. WIDGETS Lattice Info -- Text This is the dimensions of the current lattice. Typing into this widget has no effect. Dimension -- Radio Box This selects how the plane geometry is to be drawn. It can be represented as points, lines, or the standard shaded polygons. Lowering the dimension will speed up rendering for better interactive manipulation. Use Centers? -- Option Menu Setting this to "Yes" adds interpolated centers to each full 1x1 lattice cell essentially breaking them up into 4 triangles instead of the usual two. Using the centers evens out the color shading across the cell without a bias to any corner. The center points are also visible with point or line geometry. Note: Using the interpolated centers can double the geometry size. Auto Planes? -- Option Menu This controls if and how lattice planes are automatically generated. The possible choices are: No - Planes are not automatically generated; the "Generate Planes!" button must be pressed (the default setting). Exteriors - Whenever the input lattice changes, the plane list is automatically cleared out, the lattice's six exterior planes are added to the list (basically the same as the "Add Default Planes" button), and then they are generated over the specified data range. Data - Whenever the input lattice changes, all the specified planes are automatically generated over the specified data range. Ranges - Whenever the "Range Start" or "Range End" widgets change, all the specified planes are automatically generated over the new data range if "Range Type" is set to "Selected". All - This automatically clears out the plane list, the lattice's six exterior planes to the list, and generates them all whenever the "Range Start" or "Range End" widgets change or whenever the input lattice changes. It's a combination of the "Exteriors", "Ranges", and "Data" functions. This automation can be useful for animation purposes so that no buttons have to be pressed or selections made during looping. Range Type -- Option Menu This toggles between generating a plane over all the data values of the lattice ("Full") or only over the range specified by the "Range Start" and "Range End" values ("Selected"). Range Start -- Dial This is the lower bound of the range of data values to include in the planes. Range End -- Dial This is the upper bound of the range of data values to include in the planes. Lattice Planes -- Scroll List This is a list of all the planes currently entered. An example of the format is as follows: 1 60 1 36 K 1 The first two numbers indicate the start and end of the first axis of the plane. The second two numbers indicate the start and end of the second axis of the plane. Next is the axis that will be fixed for the plane. It can be I, J, or K (either uppercase or lowercase). Finally, there is the value along the fixed axis. All numbers represent grid points not actual coordinates. The specification of the planes is always in the order of I,J, and K. Therefore if K is fixed then the plane will be IxJ (60x36 in the example). If I is fixed then the plane will be JxK and if J is fixed then the plane will be IxK. These assumptions are made in order to keep the plane format as simple as possible. Add Plane -- Text This allows a new plane to be added to the "Lattice Planes" list. The entered string must be in the same format as used in the "Lattice Planes" list. Add Default Planes -- Button This adds all the exterior planes around the 3-D lattice to the "Lattice Planes" list. There are always six of them and they extend the full length of the lattice in all directions. Delete Selected Planes -- Button This deletes the planes which are highlighted in the "Lattice Planes" list. There is no "undo" capability! Generate Planes! -- Button This tells the module to start creating the geometry for all the planes specified in the "Lattice Planes" list. It will print what it's doing in the Explorer Log window. Saved List -- Text This hidden port is used to save all the entries in the "Lattice Planes" list. Nothing should ever be connected to it or unpredictable results might occur! Special Value -- Text Any triangles which contain data points that match this special value will not be created when the "Range Type" is set to "Selected". This will also prevent interpolation around special values; they are clipped out altogether. Print Progress -- Option Menu This port is used in conjunction with the "Print Progress" and "Don't Print Progress" selections in the "Options" menu. It determines whether status information is printed as to what lattice planes have been generated so far. OUTPUTS Output -- Geometry This is the geometry for all the generated planes. KNOWN PROBLEMS The geometry is not as optimized as it could be; future versions will hopefully be more efficient. There are no known bugs. SEE ALSO GenerateColormap, LatToGeom, LatToGeomNaN, MultiSlice, Render, RenderRemote - Hans Vahlenkamp (Hans.Vahlenkamp@noaa.gov) Geophysical Fluid Dynamics Laboratory / NOAA Princeton University Forrestal Campus http://www.gfdl.noaa.gov