MakeRegion.qo.h
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 #ifndef MAKEREGION_H
00031 #define MAKEREGION_H
00032 
00033 #include <casa/aips.h>
00034 #include <casa/Containers/Record.h>
00035 #include <display/QtViewer/QtDisplayPanel.qo.h>
00036 #include <display/DisplayDatas/DisplayData.h>
00037 
00038 #include <graphics/X11/X_enter.h>
00039 #include <QtCore>
00040 #include <QtGui>
00041 #include <QList>
00042 #include <QPushButton>
00043 #include <QComboBox>
00044 #include <graphics/X11/X_exit.h>
00045 
00046 namespace casa {
00047 
00048         class RSComposite;
00049         class WCUnion;
00050 
00051         class MakeRegion : public QWidget {
00052 
00053                 Q_OBJECT
00054 
00055         public:
00056 
00057                 MakeRegion(QtDisplayPanel* qdp);
00058                 ~MakeRegion() {}
00059 
00060         public slots:
00061 
00062                 
00063                 void drawRegion(Record mousereg, WorldCanvasHolder *wch);
00064 
00065                 
00066                 void newRegion_(String imgFilename);
00067 
00068                 
00069                 void changeAxis(String, String, String, int);
00070 
00071                 
00072                 void activate(Record);
00073 
00074                 
00075                 void wcChanged(const String,
00076                                const Vector<Double>, const Vector<Double>);
00077 
00078                 virtual void closeEvent(QCloseEvent* event);
00079 
00080         signals:
00081                 void hideRegionInImage();
00082 
00083         protected slots:
00084 
00085                 
00086                 void loadRegionFromImage();
00087 
00088                 
00089                 void saveRegionToImage();
00090 
00091                 
00092                 void deleteRegionFromImage();
00093 
00094                 
00095                 void deleteAll();
00096 
00097                 
00098                 void showHideAll();
00099 
00100                 
00101                 void showHideGroup();
00102 
00103                 
00104                 void colorAll(const QString&);
00105 
00106                 
00107                 void doIt();
00108 
00109                 
00110                 void showHelp();
00111 
00112                 
00113                 void reShape(const QString&);
00114 
00115                 void zPlaneChanged();
00116                 void pPlaneChanged();
00117         protected:
00118 
00119                 void rotateBox(int cb);
00120                 void addBox(RegionShape*);
00121                 void deleteBox(RegionShape*);
00122                 void reDraw();
00123 
00124                 void addRegionsToShape(RSComposite*& theShapes,
00125                                        const WCRegion*& wcreg);
00126 
00127                 WCUnion* unfoldCompositeRegionToSimpleUnion(const WCRegion*& wcreg);
00128                 void unfoldIntoSimpleRegionPtrs(PtrBlock<const WCRegion*>& outRegPtrs,
00129                                                 const WCRegion*& wcreg);
00130 
00131                 
00132                 RSComposite *regionToShape(
00133                     QtDisplayData* qdd, const ImageRegion* wcreg);
00134 
00135                 bool planeAllowed(String, String);
00136 
00137         private:
00138 
00139                 QtDisplayPanel* qdp_;
00140 
00141                 PtrBlock<const ImageRegion*> unionRegions_p;
00142                 DisplayData* regData;
00143 
00144                 RegionShape* activeShape;
00145 
00146                 QTimer* timer;
00147                 bool flash;
00148 
00149                 int cb;
00150                 int zIndex;
00151                 int pIndex;
00152                 String zAxis;
00153 
00154                 QGroupBox* tGroup;
00155                 QPushButton* removeAll;
00156                 QMenu *showHideMenu;
00157                 QPushButton* showHide;
00158                 QComboBox* color;
00159 
00160                 QLineEdit* chan;
00161                 QLineEdit* corr;
00162                 QLineEdit* name;
00163                 QPushButton* load;
00164                 QPushButton* save;
00165 
00166                 
00167 
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00177 
00178 
00179 
00180 
00181 
00182         };
00183 
00184 
00185 }
00186 
00187 #endif