Slicer 5.9
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
30// vtk includes
31class vtkMatrix4x4;
32// CropVolumes includes
33#include "vtkSlicerCropVolumeModuleLogicExport.h"
35
36
64class VTK_SLICER_CROPVOLUME_MODULE_LOGIC_EXPORT vtkSlicerCropVolumeLogic
66{
67public:
68
71 void PrintSelf(ostream& os, vtkIndent indent) override;
72
75
79 vtkMRMLVolumeNode* outputNode, bool limitToInputExtent=true, double fillValue=0.0);
80
84 int outputExtent[6], bool limitToInputExtent=false);
85
88 bool isotropicResampling, double spacingScale, int interpolationMode, double fillValue);
89
92 bool isotropicResampling, double spacingScale, int outputExtent[6], double outputSpacing[3]);
93
97
99
101
102 void RegisterNodes() override;
103
104protected:
107
108private:
110 void operator=(const vtkSlicerCropVolumeLogic&) = delete;
111
112 class vtkInternal;
113 vtkInternal* Internal;
114};
115
116#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)