Slicer  5.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkSlicerCropVolumeLogic.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: 3D Slicer
9  Module: $RCSfile: vtkSlicerCropVolumeLogic.h,v $
10  Date: $Date: 2006/01/08 04:48:05 $
11  Version: $Revision: 1.45 $
12 
13 =========================================================================auto=*/
14 
15 // .NAME vtkSlicerCropVolumeLogic - slicer logic class for volumes manipulation
16 // .SECTION Description
17 // This class manages the logic associated with reading, saving,
18 // and changing propertied of the volumes
19 
20 
21 #ifndef __vtkSlicerCropVolumeLogic_h
22 #define __vtkSlicerCropVolumeLogic_h
23 
24 // Slicer includes
25 #include "vtkSlicerModuleLogic.h"
28 class vtkMRMLVolumeNode;
30 // vtk includes
31 class vtkMatrix4x4;
32 // CropVolumes includes
33 #include "vtkSlicerCropVolumeModuleLogicExport.h"
35 
36 
65 class VTK_SLICER_CROPVOLUME_MODULE_LOGIC_EXPORT vtkSlicerCropVolumeLogic
66  : public vtkSlicerModuleLogic
67 {
68 public:
69 
70  static vtkSlicerCropVolumeLogic *New();
72  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
76 
79  static int CropVoxelBased(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume,
80  vtkMRMLVolumeNode* outputNode, bool limitToInputExtent=true, double fillValue=0.0);
81 
84  static bool GetVoxelBasedCropOutputExtent(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume,
85  int outputExtent[6], bool limitToInputExtent=false);
86 
88  int CropInterpolated(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume, vtkMRMLVolumeNode* outputNode,
89  bool isotropicResampling, double spacingScale, int interpolationMode, double fillValue);
90 
92  static bool GetInterpolatedCropOutputGeometry(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume,
93  bool isotropicResampling, double spacingScale, int outputExtent[6], double outputSpacing[3]);
94 
97  static bool FitROIToInputVolume(vtkMRMLCropVolumeParametersNode* parametersNode);
98 
99  static void SnapROIToVoxelGrid(vtkMRMLCropVolumeParametersNode* parametersNode);
100 
101  static bool IsROIAlignedWithInputVolume(vtkMRMLCropVolumeParametersNode* parametersNode);
102 
103  void RegisterNodes() override;
104 
105 protected:
107  ~vtkSlicerCropVolumeLogic() override;
108 
109 private:
111  void operator=(const vtkSlicerCropVolumeLogic&) = delete;
112 
113  class vtkInternal;
114  vtkInternal* Internal;
115 };
116 
117 #endif
118 
void PrintSelf(ostream &os, vtkIndent indent) override
static vtkSlicerModuleLogic * New()
The Usual vtk class functions.
Logic for running CLI.
MRML node for representing a volume (image stack).
Crop a volume to the specified region of interest.