city scape - version 3, upgrade from "3D bar chart" in AVS5. 3D block diagram, with averaged statistics on side shadow panels, and annotation. A transparent theshold sheet is superimposed on city. Blocks can be picked for interogation of cell number, turning the top of the cell white. Parts may be turned on or off for clarity. Two scalar fields can be displayed, one contolling height, the other color, with two independent side stacked side bar statistics. Arbitrary user defined text strings may be placed on the axes.

Name

     city scape - version 3, upgrade from "3D bar chart" in AVS5.
                  3D block diagram, with averaged statistics
                  on side shadow panels, and annotation. A transparent
                  theshold sheet is superimposed on city. Blocks can
                  be picked for interogation of cell number, turning
                  the top of the cell white.
                  Parts may be turned on or off for clarity.
                  Two scalar fields can be displayed, one contolling
                  height, the other color, with two independent side
                  stacked side bar statistics. Arbitrary user defined
                  text strings may be placed on the axes.

Author

Ian Curington, Advanced Visual Systems, Esher, UK

Summary

     Name	   city_scape

Type

  mapper

Inputs

   field 2D scalar float uniform (primary)
         	   field 2D scalar float uniform (secondary, optional)
		   colormap 
		   struct upstream geom

Outputs

   geometry
                   X-index ( from mouse pick )
                   Y-index

Parameters

   Name		   Type		  Default	 Min	   Max
		   Z scale	   float	  1.0		 none	   none
                   width           float          .6             0.        1.
                   offset          float          .1             0.        1.
                   threshold       float          1.             none      none
                   tic scale       float          1.             none      none
                   h-label inc     int
                   v-label inc     int
                   draw_city       boolean
                   draw_sidebars   boolean
                   draw_ticmarks   boolean
                   draw_labels     boolean
                   draw_threshold  boolean
                   x_axis_text     string        $NULL
                   y_axis_text     string        $NULL

Description

     This is version 3, an upgrade from previous versions at the IAC,
     and an upgrade from "3D bar chart" in AVS5.
     This module provides 3D block diagram, with averaged statistics
     on side shadow panels, and annotation. A transparent
     theshold sheet is superimposed on city. Blocks can
     be picked for interogation of cell number.
     The picked cell is shown by a white top on the block.
     Various parts of the display may be turned on or off for clarity.
     Two scalar fields can be displayed, one contolling
     height, the other color, with two independent side
     stacked side bar statistics. User defined text may be placed at
     the tic marks on each side, or shown with numerical index values.
     The city scape module converts a two-dimensional floating point
     field into group of 3D blocks, represented as a GEOM-format mesh.
     Each element of the field is mapped to a "building".
     The height of each block above each point is proportional to the scalar
     value of the field. This is my attempt at "Business Graphics",
     for a multi-dimensional telecommunications statistics data
     application, except in interactive 3D.
     Side panels show the Min, Max and Average along each row and column
     in the 2D data.
     A threshold transparent sheet can be moved through the city to
     highlight specific values, where only values above the threshold
     will stick up beyond the sheet.
     Line tic marks and text labels show the row and column numbers,
     and the vertical scale
     The labels can be less frequent than tics, so they don't bunch up,
     using the increment controls, independent for horizontal and
     vertical.
     User supplied text can be placed here, with a single string
     using the first character as the label delimiter.
     Picking with the left mouse button on any part a city "block"
     will select that cell. The cell's top panel should turn
     white, a special object without normals, so no lighting will
     be applied. The X-Y index of this cell is then sent to
     the output integer ports for use by other modules.
     The blocks don't have bottoms, so you can look inside!
     This module does no normalization of the Z-height, while the
     x-y plane is approx 0.0 to 1.0 on each side.
     Use the dials to get your data range under control.
     The dials are unbounded to allow any data range.
     but will be over-sensitive for small numbers.
     Try flying over the city in perspective.
     The geometry generation makes both shaded and wireframe versions of
     the city, so the geometry viewer can select either one or
     both in the form of "outline gouraud" rendering mode.
INPUTS
     Data Field (required; field 2D scalar uniform float)
     The input data must be a 2D field with a scalar data value at
     each element.
     Colormap 
     Colors each block building in the city a specific color,
     according to the data value at that point.
PARAMETERS
     Z scale    height scale for whole city
     width      relative width of each block, or narrowness of streets
     offset     how far away the average shadow planes are from city
     threshold  height of threshold sheet in city
     tic scale  vertical scale tic mark pitch control
     x_axis_text, y_axis_text:
       If no string is supplied, then the x and y axis tic mark labels
       will get numerical annotation, "1 2 3 4 ...". If either of these
       strings is set, then the FIRST character is assumed to be
       a delimiter character, and is not shown. The remaining string
       is scanned for text segments bounded by the delimiter character
       and placed on successive tic marks, and the tic label spacing.
       For example, a string of "#Jan#Feb#Mar" will create three labels,
       "Jan", "Feb", and "Mar".
OUTPUTS
     Geometry
	  The output is	an AVS geometry.
     X-index
          Integer port containing index of picked cell
     Y-index
          Integer port containing index of picked cell

Example

     see the network supplied in this directory.