00001 /* 00002 * The information in this file is 00003 * Copyright(c) 2007 Ball Aerospace & Technologies Corporation 00004 * and is subject to the terms and conditions of the 00005 * GNU Lesser General Public License Version 2.1 00006 * The license text is available from 00007 * http://www.gnu.org/licenses/lgpl.html 00008 */ 00009 00010 #ifndef GEOREFERENCESHELL_H 00011 #define GEOREFERENCESHELL_H 00012 00013 #include "Georeference.h" 00014 #include "LocationType.h" 00015 #include "ExecutableShell.h" 00016 00017 /** 00018 * \ingroup ShellModule 00019 */ 00020 class GeoreferenceShell : public ExecutableShell, public Georeference 00021 { 00022 public: 00023 /** 00024 * Creates a georeference plug-in. 00025 * 00026 * The constructor sets the plug-in type to PlugInManagerServices::GeoreferenceType() and sets the 00027 * plug-in to allow multiple instances. 00028 * 00029 * @see getType(), areMultipleInstancesAllowed() 00030 */ 00031 GeoreferenceShell(); 00032 00033 /** 00034 * Destroys the georeference plug-in. 00035 */ 00036 ~GeoreferenceShell(); 00037 00038 /** 00039 * @copydoc Executable::getInputSpecification() 00040 * 00041 * @default The default implementation adds the following args: 00042 * <table><tr><th>Name</th> <th>Type</th></tr> 00043 * <tr><td>Raster Element</td> <td>RasterElement</td></tr> 00044 * <tr><td>Progress</td> <td>Progress</td></tr></table> 00045 */ 00046 bool getInputSpecification(PlugInArgList*& pArgList); 00047 00048 /** 00049 * @copydoc Executable::getOutputSpecification() 00050 * 00051 * @default The default implementation does not set any args in the arg 00052 * list and returns \b true. 00053 */ 00054 bool getOutputSpecification(PlugInArgList*& pArgList); 00055 00056 /** 00057 * @copydoc Georeference::pixelToGeoQuick() 00058 * 00059 * @default The default implementation calls pixelToGeo(). 00060 */ 00061 LocationType pixelToGeoQuick(LocationType pixel, bool* pAccurate = NULL) const; 00062 00063 /** 00064 * @copydoc Georeference::geoToPixelQuick() 00065 * 00066 * @default The default implementation calls geoToPixel(). 00067 */ 00068 LocationType geoToPixelQuick(LocationType geo, bool* pAccurate = NULL) const; 00069 00070 /** 00071 * @copydoc Georeference::getGui() 00072 * 00073 * @default The default implementation returns \b NULL. 00074 */ 00075 QWidget* getGui(RasterElement* pRaster); 00076 00077 /** 00078 * @copydoc Georeference::validateGuiInput() 00079 * 00080 * @default The default implementation returns \b true. 00081 */ 00082 bool validateGuiInput() const; 00083 }; 00084 00085 #endif