|
Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
00001 /*============================================================================== 00002 00003 Program: 3D Slicer 00004 00005 Copyright (c) Kitware Inc. 00006 00007 See COPYRIGHT.txt 00008 or http://www.slicer.org/copyright/copyright.txt for details. 00009 00010 Unless required by applicable law or agreed to in writing, software 00011 distributed under the License is distributed on an "AS IS" BASIS, 00012 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 See the License for the specific language governing permissions and 00014 limitations under the License. 00015 00016 This file was originally developed by Michael Jeulin-Lagarrigue, Kitware Inc. 00017 and was partially funded by NIH grant 3P41RR013218-12S1 00018 00019 ==============================================================================*/ 00020 00021 #ifndef __qSlicerReformatModuleWidget_h 00022 #define __qSlicerReformatModuleWidget_h 00023 00024 // SlicerQt includes 00025 #include "qSlicerAbstractModuleWidget.h" 00026 00027 #include "qSlicerReformatModuleExport.h" 00028 00029 class qSlicerReformatModuleWidgetPrivate; 00030 class vtkMRMLNode; 00031 00033 class Q_SLICER_QTMODULES_REFORMAT_EXPORT 00034 qSlicerReformatModuleWidget : public qSlicerAbstractModuleWidget 00035 { 00036 Q_OBJECT 00037 00038 public: 00039 typedef qSlicerAbstractModuleWidget Superclass; 00040 qSlicerReformatModuleWidget(QWidget *parent=0); 00041 virtual ~qSlicerReformatModuleWidget(); 00042 00043 enum OriginReferenceType {ONPLANE, INVOLUME}; 00044 enum AxesReferenceType {axisX=0, axisY, axisZ}; 00045 00047 void setSliceNormal(double x, double y, double z); 00048 00049 protected: 00050 virtual void setup(); 00051 00052 public slots: 00055 void setWorldPosition(double* newWorldPosition); 00056 00059 void setSliceOffsetValue(double offset); 00060 00062 void centerSliceNode(); 00063 00068 void setSliceNormal(double* normal); 00069 00071 void setNormalToCamera(); 00072 00074 void setNormalToAxisX(); 00075 00077 void setNormalToAxisY(); 00078 00080 void setNormalToAxisZ(); 00081 00082 protected slots: 00084 void onMRMLSliceNodeModified(vtkObject* caller); 00085 00087 void onTrackSliceOffsetValueChanged(double offset); 00088 00089 void onNodeSelected(vtkMRMLNode* node); 00090 void onSliceVisibilityChanged(bool visible); 00091 void onReformatWidgetVisibilityChanged(bool visible); 00092 void onLockReformatWidgetToCamera(bool lock); 00093 00094 void onOriginCoordinateReferenceButtonPressed(int reference); 00095 00096 void onSliceNormalToAxisChanged(AxesReferenceType axis); 00097 void onSliceOrientationChanged(const QString& orientation); 00098 void onSliderRotationChanged(double rotationX); 00099 00100 protected: 00101 QScopedPointer<qSlicerReformatModuleWidgetPrivate> d_ptr; 00102 00103 private: 00104 Q_DECLARE_PRIVATE(qSlicerReformatModuleWidget); 00105 Q_DISABLE_COPY(qSlicerReformatModuleWidget); 00106 }; 00107 00108 #endif
1.7.4