ContourIV CLIENT/SERVER MODULES =============================== Emilio Camahort ecamahor@cs.utexas.edu March 3, 1999 GROUP A: MAIN PROGRAM AND BUILDING BLOCKS ========================================= CLIENT: ------- C contour.C -- contour spectrum main program it used to include inventor stuff contour.h -- global definitions for contour main program just contains a VERBOSE(No) definition C interface.[hC] -- user interface wrapper C server.[hC] -- encapsulates server functionality C group B -- user interface modules SERVER: ------- S main.C -- contourIV server main program S server.[hC] -- contourIV server routines S conplot.[hC] -- various algorithms for contouring a base (abstract) class for contour plots given mesh, performs preprocessing given value, extracts contour used to set up Inventor display (ie, create SoContour{2d}/{3d}) S conplot_p.C -- common preprocessing code for contour, 2D and 3D extracts seed cells builds segment tree S Group C -- contour computation modules S Group D -- regular grids and unstructured data classes OTHER: ------ window.[hC] -- top level user interface management/construction routines for window appearence ConWindow a class from window.[hC] topologydata.[hC] -- fan's unfinished extension to handle correlated scalar fields (multivariate fields) -- also, data representing topological information ------------------------- GROUP B: USER INTERFACE ======================= C mainWindow.[hC] -- (new) main window wrapper class C spectrumWindow.[hC] -- (new) spectrum window wrapper class C variableWindow.[hC] -- (new) variable window wrapper class C SIoXtControl.[hC] -- variable selection control interface (Inventor) C SIoXtSpectrum.[hC] -- Contour Spectrum interface (Inventor) C SoSpectrum.[hC] -- Inventor black box inside spectrum interface SoControl.[hC] UNUSED --> Black box inside variable selection control C SIoXtSpectrum -- the 1-2-dimensional Inventor contour interface C group CD -- Inventor contour data structures GROUP CD: INVENTOR CONTOUR DATA STRUCTURES ========================================== SoContour.[hC] -- new Inventor (IV) abstract class for a contour SoContour -- not used now (was base class for SoContour2d & SoContour3d) --> REMOVED!!! SoContour2d.[hC] -- IV class for a 2D contour polyline (line segmts) C SoContour3d.[hC] -- IV class for a 3D contour triangle mesh SoMesh2d.[hC] -- displays the 2D mesh with pseudocolor SoMesh2d.[hC] -- classes with GL rendering code for different types C SoMesh3d.[hC] of data meshes: Inventor wrappers for data* SoMeshReg2.[hC] C SoMeshReg3.[hC] C group M -- Inventor colormaps for pseudo-coloring GROUP M: COLORMAPS FOR PSEUDO-COLORING ====================================== C SIbColormap.[hC] -- IV color map base class for 2D pseudo-coloring C SIoSFColormap.[hC] -- IV class for a color map field C SIoColormapElement.[hC] -- IV class for a color map element C SIoColormap.[hC] -- IV class for a color map type of node ------------------------- GROUP C: CONTOUR COMPUTATION ============================ S conplot.[hC] -- various algorithms for contouring a base (abstract) class for contour plots given mesh, performs preprocessing given value, extracts contour sets up Inventor display (create SoContour{2d}/{3d}) S contour2d.[hC] -- class for a 2D isocontour polylines S contour3d.[hC] -- class for a 3D isocontour triangle meshes S conplot2d.[hC] -- conplot specific code: 2D unstructured data S conplot3d.[hC] -- conplot specific code: 3D unstructured data S conplotreg2.[hC] -- conplot specific code: 2D regular data S conplotreg3.[hC] -- conplot specific code: 3D regular data S cubes.h -- table of marching cubes and associated data S vtkMarchingCubesCases.h -- marching cubes case table for S group CE -- cell/edge manipulation (used by conplot*) S conplot_p.C -- common preprocessing code for contour (for 2D and 3D) extracts seed cells builds segment tree S group CP -- preprocessing support classes (for conplot_p.C) GROUP D: REGULAR GRIDS AND UNSTRUCTURED DATA CLASSES ==================================================== SC data.[hC] -- base class for a single timestep of scalar data -- it is a base class containing inline routines for: - construction: commonConstructor(...) - reading: readData(void) S dataslc.[hC] -- class for a 2D triangular mesh of scalar data S datavol.[hC] -- class for a 3D tetrahedral mesh of scalar data S datareg2.[hC] -- class for regular 2d grid of scalar data S datareg3.[hC] -- class for regular 3d grid of scalar data S dataset.h -- base class for a time-varying scalar data set S datasetslc.h -- class for time-varying triangular mesh of scalar data S datasetvol.h -- class for time-varying tetrahedral mesh of scalar data S datasetreg2.h -- class for time-varying regular 2d grid of scalar data S datasetreg3.h -- class for time-varying regular 3d grid of scalar data S compute.h -- signature computation functions (used by data{slc|reg2}) SC commdata.h -- client/server data communication structures -- this module defines the client/server DATA interface -- this, data.h and seedCells.h are the only modules common to both the server and the client programs GROUP CE: CELL/EDGE MANIPULATION (used by conplot*) ================================================== S cellQueue.[hC] -- queue of cell identifiers, used by conplot*.h -- queue of cells to be processed -- used in seed generation and contour propagation S cellSearch.h -- cell search data structure, ABSTRACT CLASS used by S intTree.[hC] -- interval tree data structure, used by conplot.C S segTree.[hC] -- segment tree data structure, used by conplot*.[hC] S bucketSearch.[hC]- bucket search data structure, used by conplot*.[hC] S edgeHash.[hC] -- hash to look up already computed vertices, used by conplot*.h -- apparently unused, can be removed from the distribution GROUP CP: PREPROCESSING SUPPORT CLASSES ======================================= S conplot_p.C -- common preprocessing code for contour, 2D and 3D extracts seed cells builds segment tree S range.[hC] -- class for performing range arithmetic used by many other modules SC seedCells.[hC] -- mantains a list of seed cells S rangeProp.[hC] -- does dimension-indepedent seed selection by range propagation, used by conplot_p.C S rangeSweep.[hC] -- used by conplot_p.C -- rely on group R: range data structures S regProp.[hC] -- support data structures for preprocessing S regProp2.[hC] identation indicates subclassing/dependency S respProp2.[hC] seedDir3.[hC] S seedAll.[hC] S seedChkr2.[hC] S seedChkr3.[hC] S seedDirReg3.[hC] S dirSeeds.[hC] S dirSeedsReg2.[hC] GROUP R: RANGE DATA STRUCTURES (used by rangeProp, rangeSweep) ============================================================== S basic.h -- basic definitions (there's one in oscore) squeue.[hC] -- used by many .... S queue.[hC] -- iqueue.[hC] -- used by rangeSweep.h queue.[hC] -- Fausto's general queue S ipqueue.[hC] -- used by rangeSweep.h S hash.[hC] -- a simple hash table S shelf.[hC] -- a doubly linked list S bin.[hC] -- a dynamic array representing a set (used in queues) S utilities.[hC] S range.[hC] -- range arithmetic S segTree.h -- a segment tree S squeue.h -- a 'sorted' queue (allows search for a cell) `uncompiled' files: can probably be removed from distribution =================== use oscore routines instead (but for SoControl.C) SoControl.C bin.C hash.C S ipqueue.C S iqueue.C shelf.C S utilities.C rangeProp2.[hC] UNUSED --> removed from distribution! seedDir3.C OBSOLETE --> removed from distribution!