vtkSlicerVolumesLogic.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __vtkSlicerVolumesLogic_h
00022 #define __vtkSlicerVolumesLogic_h
00023
00024
00025 #include "vtkSlicerModuleLogic.h"
00026
00027
00028 #include "vtkMRML.h"
00029 #include "vtkMRMLVolumeNode.h"
00030
00031
00032 #include <stdlib.h>
00033
00034 #include "vtkSlicerVolumesModuleLogicExport.h"
00035
00036 class vtkMRMLScalarVolumeNode;
00037 class vtkMRMLScalarVolumeDisplayNode;
00038 class vtkMRMLVolumeHeaderlessStorageNode;
00039 class vtkStringArray;
00040
00041 class VTK_SLICER_VOLUMES_MODULE_LOGIC_EXPORT vtkSlicerVolumesLogic :
00042 public vtkSlicerModuleLogic
00043 {
00044 public:
00045
00046
00047 static vtkSlicerVolumesLogic *New();
00048 vtkTypeRevisionMacro(vtkSlicerVolumesLogic,vtkSlicerModuleLogic);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00051
00052
00053 vtkGetObjectMacro (ActiveVolumeNode, vtkMRMLVolumeNode);
00054 void SetActiveVolumeNode (vtkMRMLVolumeNode *ActiveVolumeNode);
00055
00056
00057
00058 vtkMRMLScalarVolumeNode* AddArchetypeScalarVolume (const char *filename, const char* volname, int loadingOptions);
00059
00060 vtkMRMLScalarVolumeNode* AddArchetypeScalarVolume (const char *filename, const char* volname)
00061 {
00062 return this->AddArchetypeScalarVolume( filename, volname, 0);
00063 };
00064
00065
00066
00067
00068
00069
00070
00071
00072 vtkMRMLVolumeNode* AddArchetypeVolume (const char* filename, const char* volname, int loadingOptions)
00073 {
00074 return (this->AddArchetypeVolume( filename, volname, loadingOptions, NULL));
00075 };
00076 vtkMRMLVolumeNode* AddArchetypeVolume (const char* filename, const char* volname, int loadingOptions, vtkStringArray *fileList);
00077 vtkMRMLVolumeNode* AddArchetypeVolume (const char *filename, const char* volname)
00078 {
00079 return this->AddArchetypeVolume( filename, volname, 0, NULL);
00080 };
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094 vtkMRMLVolumeNode* AddHeaderVolume (const char* filename, const char* volname,
00095 vtkMRMLVolumeHeaderlessStorageNode *headerStorage,
00096 int loadingOptions);
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106 int SaveArchetypeVolume (const char* filename, vtkMRMLVolumeNode *volumeNode);
00107
00108
00109
00110
00111 vtkMRMLScalarVolumeNode *CreateLabelVolume (vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name);
00112
00113
00114
00115 vtkMRMLScalarVolumeNode *CloneVolume (vtkMRMLScene *scene,
00116 vtkMRMLVolumeNode *volumeNode,
00117 const char *name);
00118
00119
00120
00121 virtual void ProcessMRMLEvents ( vtkObject * ,
00122 unsigned long ,
00123 void * );
00124
00125
00126 virtual void ProcessLogicEvents ( vtkObject * ,
00127 unsigned long ,
00128 void * );
00129
00130 using vtkSlicerLogic::ProcessLogicEvents;
00131
00132
00133
00134
00135
00136
00137 void TranslateFreeSurferRegistrationMatrixIntoSlicerRASToRASMatrix( vtkMRMLVolumeNode *V1Node,
00138 vtkMRMLVolumeNode *V2Node,
00139 vtkMatrix4x4 *FSRegistrationMatrix,
00140 vtkMatrix4x4 *ResultsMatrix);
00141
00142
00143
00144 void ComputeTkRegVox2RASMatrix ( vtkMRMLVolumeNode *VNode,
00145 vtkMatrix4x4 *M );
00146
00147 protected:
00148 vtkSlicerVolumesLogic();
00149 virtual ~vtkSlicerVolumesLogic();
00150 vtkSlicerVolumesLogic(const vtkSlicerVolumesLogic&);
00151 void operator=(const vtkSlicerVolumesLogic&);
00152
00153
00154
00155
00156
00157 int IsFreeSurferVolume (const char* filename);
00158
00159
00160
00161 vtkMRMLVolumeNode *ActiveVolumeNode;
00162 };
00163
00164 #endif
00165