00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __SIMIAN_SLICER_BASE_DOT_H
00023 #define __SIMIAN_SLICER_BASE_DOT_H
00024
00025 #include <qpopupmenu.h>
00026 #include <qmainwindow.h>
00027 #include <qcanvas.h>
00028 #include <qlayout.h>
00029 #include <simBase/simBase.h>
00030 #include "SlicerWidget.h"
00031 #include "SlicerInfo.h"
00032 #include <volume/Volume.h>
00033 #include <vector>
00034
00035
00036 class SlicerBase :
00037 public QMainWindow,
00038 public SimBase
00039 {
00040 Q_OBJECT
00041 public:
00042
00043 SlicerBase(QWidget *parent=0, const char *name=0, WFlags wf=0);
00044
00045
00046
00047 SlicerBase(int views, QWidget *parent=0, const char *name=0, WFlags wf=0);
00048
00049 virtual ~SlicerBase();
00050
00051 enum FILTERS {
00052 NEAREST,
00053 BILIN,
00054 BICUBE,
00055 BSPLINE
00056 };
00057
00058
00059 public slots:
00060 virtual void setVolume(VolumeSP vol);
00061 virtual void setNrro(NrroSP n);
00062
00063 protected slots:
00064 void saveImage();
00065 void openNrrd();
00066 void insertNrrd();
00067 void setProbePos(int xp, int yp, int zp);
00068
00069
00070 void setNearest() {filterChanged(NEAREST);}
00071 void setBiLin() {filterChanged(BILIN);}
00072 void setBiCube() {filterChanged(BICUBE);}
00073 void setBSpline() {filterChanged(BSPLINE);}
00074
00075 signals:
00076 void volumeChanged(VolumeSP vol);
00077 void probePosChanged(int xp, int yp, int zp);
00078
00079
00080 void filterChanged(int filt);
00081
00082 protected:
00083
00084 virtual void confMenu();
00085 virtual void confSliceView();
00086
00087 virtual void keyPressEvent(QKeyEvent *key);
00088
00089
00090
00091 QWidget *_qcentral;
00092
00093
00094
00095 VolumeSP _vol;
00096
00097 SlicerInfo *_sliceInfo;
00098 };
00099
00100
00101 #endif
00102
00103