Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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#ifndef __vtkSlicerCropVolumeLogic_h
21#define __vtkSlicerCropVolumeLogic_h
22
23// Slicer includes
27// vtk includes
28class vtkMatrix4x4;
29// CropVolumes includes
30#include "vtkSlicerCropVolumeModuleLogicExport.h"
32
60class VTK_SLICER_CROPVOLUME_MODULE_LOGIC_EXPORT vtkSlicerCropVolumeLogic : public vtkSlicerModuleLogic
61{
62public:
65 void PrintSelf(ostream& os, vtkIndent indent) override;
66
69
72 static int CropVoxelBased(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume, vtkMRMLVolumeNode* outputNode, bool limitToInputExtent = true, double fillValue = 0.0);
73
76 static bool GetVoxelBasedCropOutputExtent(vtkMRMLDisplayableNode* roi, vtkMRMLVolumeNode* inputVolume, int outputExtent[6], bool limitToInputExtent = false);
77
80 vtkMRMLVolumeNode* inputVolume,
81 vtkMRMLVolumeNode* outputNode,
82 bool isotropicResampling,
83 double spacingScale,
84 int interpolationMode,
85 double fillValue);
86
89 vtkMRMLVolumeNode* inputVolume,
90 bool isotropicResampling,
91 double spacingScale,
92 int outputExtent[6],
93 double outputSpacing[3]);
94
98
100
102
103 void RegisterNodes() override;
104
105protected:
108
109private:
111 void operator=(const vtkSlicerCropVolumeLogic&) = delete;
112
113 class vtkInternal;
114 vtkInternal* Internal;
115};
116
117#endif
MRML node for representing a volume (image stack).
static void SnapROIToVoxelGrid(vtkMRMLCropVolumeParametersNode *parametersNode)
static vtkSlicerCropVolumeLogic * New()
int Apply(vtkMRMLCropVolumeParametersNode *)
Crop input volume using the specified ROI node.
~vtkSlicerCropVolumeLogic() override
static bool GetInterpolatedCropOutputGeometry(vtkMRMLDisplayableNode *roi, vtkMRMLVolumeNode *inputVolume, bool isotropicResampling, double spacingScale, int outputExtent[6], double outputSpacing[3])
Computes output volume geometry for interpolated cropping (without actually cropping the image).
static bool GetVoxelBasedCropOutputExtent(vtkMRMLDisplayableNode *roi, vtkMRMLVolumeNode *inputVolume, int outputExtent[6], bool limitToInputExtent=false)
void RegisterNodes() override
void PrintSelf(ostream &os, vtkIndent indent) override
int CropInterpolated(vtkMRMLDisplayableNode *roi, vtkMRMLVolumeNode *inputVolume, vtkMRMLVolumeNode *outputNode, bool isotropicResampling, double spacingScale, int interpolationMode, double fillValue)
Perform interpolated cropping.
static bool IsROIAlignedWithInputVolume(vtkMRMLCropVolumeParametersNode *parametersNode)
static int CropVoxelBased(vtkMRMLDisplayableNode *roi, vtkMRMLVolumeNode *inputVolume, vtkMRMLVolumeNode *outputNode, bool limitToInputExtent=true, double fillValue=0.0)
static bool FitROIToInputVolume(vtkMRMLCropVolumeParametersNode *parametersNode)