Enumeration of C++ classes used for Geo-Referencing functionality, including mockup classes. [2-16-2010, Phil]. (I) General Support Modules: (1) Sim/CavansDefs -- enumerated types for canvas (view) definitions (II) Background Image Support (RiverWare 5.1) (2) Sim/ImageFileConfig -- Image file reference with presentation parameters. (3) QtUtils/BgImageConfigDlg -- Background Image Configuration Dialog (III) SimObj Georeferencing FUNCTIONAL MOCKUPS (4) QtUtils/GeoRefCoordEditorDlg -- SimObj Geospatial Coordinate Editor (5) QtUtils/CoordCalibDlg -- Coordinate Calibration Dialog (6) Sim/CoordProjection -- Transform between coord systems based on two reference points; basically functional! (IV) SimObj Coordinate I/O / Experimental support for Shapefiles (7) QtUtils/ShapefileImpExpDlg -- Shapefile SimObj Coord Import/Export Dlg (8) QtUtils/ConfirmCoordImportDlg -- Preview imported coords before applying. (9) Halibut/RwPointCoordFile -- RiverWare Coord Pair File / e.g. Shapefile (10) Sim/ObjCoordRec -- Named object coordinate pair record (V) Qt4 RiverWare Workspace View Classes <<< NOT DETAILED BELOW >>> SEE: http://cadswes2.colorado.edu/~philw/2009/GfxViewWS/ Misc. Definitions: QtUtils/RwGraphicsViewDefs.hpp Qt4 Graphics Scene classes: QtUtils/RwGraphicsScene QtUtils/WorkspaceGfxScene QtUtils/SimulationGfxScene Qt4 Graphics Item classes: QtUtils/RwGraphicsItem QtUtils/SimObjGfxItem QtUtils/SimpleSimObjGfxItem QtUtils/LinkGfxItem QtUtils/MarkPointGfxItem <<< PATRICK, LOOK! ... was used for development diagnostics. Qt4 Graphics View classes: QtUtils/RwGraphicsView QtUtils/WorkspaceGfxView -------------------------------------------------------------------- ====================== (1) Sim/CavansDefs.hpp (1) Sim/CavansDefs.cpp ====================== CanvasDefs :: typedef enum CanvasID CanfasDefs :: typedef enum CanvasGeometry =========================== (2) Sim/ImageFileConfig.hpp (2) Sim/ImageFileConfig.cpp =========================== // Represents an Image File Path (JPG or PNG) and Presentation Parameters. // Edited by BgImageConfigDlg ... ======================================== (3) QtUtils/BgImageConfigDlg.hpp (3) QtUtils/BgImageConfigDlg.cpp (3) QtUtils/BgImageConfigPanelWidgets.ui ======================================== Background Image Configuration Dialog (RiverWare 5.1) // class BgImageConfigPanel : public QFrame // class BgImageConfigDlg : public QDialog // // This is effectively an editor dialog for an instance of this class: // Sim/ImageFileConfig SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/BgImage/ ======================================= (4) QtUtils/GeoRefCoordEditorDlg.hpp (4) QtUtils/GeoRefCoordEditorDlg.cpp (4) QtUtils/GeoRefCoordEditorWidgets.ui ======================================= // Dialog for editing Simulation Object Georeference Coordinate Data // // class GeoRefCoordEditorPanel : public QFrame // class GeoRefCoordEditorPanel::TreeWidget : public QTreeWidget // class GeoRefCoordEditorPanel::TreeItem : public QTreeWidgetItem // class GeoRefCoordEditorDlg : public QMainWindow SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/2010feb03/ =================================== (5) QtUtils/CoordCalibDlg.hpp (5) QtUtils/CoordCalibDlg.cpp (5) QtUtils/CoordCalibDlgWidgets.ui =================================== Dialog to define a mapping between World Coordinates to Canvas Pixel Coords, based on two reference points. This supports different scales in the two dimensions, but not arbitrary image rotation. SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/2010jan24/ =========================== (6) Sim/CoordProjection.hpp (6) Sim/CoordProjection.cpp =========================== class CoordProjection; // Coordinate Projection / Transformation based on Two Reference Points // in World Coordinates and RiverWare Canvas Coordinates. // // This class maintains the information used to calibrate a single // (but arbitrary) real world coordinate system to RiverWare Canvas // Coordinates, and provides transformation functions to map coordinates // between those two systems. // // MAJOR CALIBRATION DATA: // (1) Reference Point One in Canvas and Real World Coordinates // (2) Reference Point Two in Canvas and Real World Coordinates // (3) Option to force the horizontal and vertical scales to be equal, // (4) .. If Enabled, indication of which of the four Real World // Coordinates is computed (Top, Bottom, Left or Right). // // CALLIBRATION EDITOR GUI: // The RiverWare Coordinate Calibration Dialog (CoordCalibDlg) edits // single instances of this class (CoordProjection). // // TRANSFORMATION FUNCTIONS: // bool isWellDefined() const; // QPoint canvasCoordForWorldCoord (const QPointF&); // QPointF worldCoordForCanvasCoord (const QPoint&); ================================== (7) QtUtils/ShapefileImpExpDlg.hpp (7) QtUtils/ShapefileImpExpDlg.cpp ================================== SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/ShapeFile/2010feb09/ ... imaged on the left side. // Shapefile Simulation Object Coordinate Import/Export Dialog // // CLASS // ShapefileImpExpDlg : public QDialog // // +--------------------------------------------- // | +---------------------------------------------- // | | EXPERIMENTAL FEATURE // | | Simulation Object Coordinate Shapefile I/O // | +---------------------------------------------- // | // | +---------------------------------------------- // | | Object Coordinate I/O: // | | (o) Simulation View Object Icon Positions // | | (o) Geospatial View Object Coordinates // | +---------------------------------------------- // | // | [Export (button)] // | [Import (button)] [Cancel (button)] // | // | +-- [X] Shapefile Info ------------------------ // | | // | | Object icon positions or coordinates are // | | written to or read from an ESRI Shapefile made // | | up of the three major Shapefile components: // | | // | | .shp / .shx vertex and index files: 2D points. // | | .dbf attribute file with two string fields: // | | - "RwObjName" - Simulation Object Name. // | | - "RwObjType" - Simulation Object Type. // | | // | | File selection is flexible: any of these file // | | components can be selected. For importing, // | | a .zip file containing all three components can // | | be used. Only object names are used to match // | | imported coordinates with simulation objects // | | in the workspace -- object type strings are // | | ignored. The user has the opportunity to // | | review imported coordinate values before // | | applying them to the workspace. // | | // | +---------------------------------------------- // +--------------------------------------------- ======================================== (8) QtUtils/ConfirmCoordImportDlg.hpp (8) QtUtils/ConfirmCoordImportDlg.cpp (8) QtUtils/ConfirmCoordImportWidgets.ui ======================================== SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/ShapeFile/2010feb09/ SEE: http://cadswes2.colorado.edu/~philw/2010/GeoRef/ShapeFile/2010feb07/3.html // Allow the user to preview imported object coordinates before applying. // // CLASS: // class ConfirmCoordImportDlg : public QDialog // class ConfirmCoordImportDlg::RecItem : public QTreeWidgetItem ================================ (9) Halibut/RwPointCoordFile.hpp (9) Halibut/RwPointCoordFile.cpp ================================ RiverWare Coordinate Pair File, with ESRI Shapefile support // class RwPointCoordFile // RiverWare Coordinate Pair File // // The following data is maintained for each Object Record: // (1) Object Name String // (2) Object Type String // (3) X coordinate (double) // (4) Y coordinate (double) // // The initial implementation includes ESRI ShapeFile I/O, with these // three ShapeFile file parts: // // XXX.shp - holds the actual vertices. // XXX.shx - holds index data pointing to the structures in the .shp file. // XXX.dbf - holds the attributes in xBase (dBase) format. // // The SHP file contains 2D Point Data (Shape type: SHPT_POINT). // The DBF file contains: the Object Name String and Object Type String. // // The ShapeFile interface makes use of these three files from the // Shapefile C Library V1.2 (http://shapelib.maptools.org/) // // shpopen.c: ANSI C code for access to .shp/.shx vertex files. // dbfopen.c: ANSI C code for access to .dbf attribute file. // shapefil.h: Include file for all services of dbfopen.c and shpopen.c. // // Initial Application: // RiverWare 5.3 (February 2010) Georeferencing Simulation Objects ======================== (10) Sim/ObjCoordRec.hpp (10) Sim/ObjCoordRec.cpp ======================== // Named Object Coordinate Pair Record // // CLASSES // struct ObjCoordRec; // class ObjCoordRecList : public QList // // Used initially for Shapefile I/O, but does not depend on that // application. This class be used for any I/O involving a SimObj's // Name and Coordinates. --- (end) ---