Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
qSlicerReformatModuleWidget.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines