21#ifndef __vtkSlicerVolumesLogic_h
22#define __vtkSlicerVolumesLogic_h
39#include "vtkSlicerVolumesModuleLogicExport.h"
57 vtkSmartPointer<vtkMRMLVolumeNode>
Node;
60 vtkSmartPointer<vtkMRMLScene>
Scene;
71 void PrintSelf(ostream& os, vtkIndent indent)
override;
251 bool cloneImageData=
true);
256 bool cloneImageData =
true);
262 vtkMatrix4x4 *FSRegistrationMatrix,
263 vtkMatrix4x4 *ResultsMatrix);
322 void * callData)
override;
326 const char * filename,
327 vtkStringArray *fileList,
331 int labelmap,
const char* filename);
339 const char* filename,
const char* volname,
int loadingOptions,
340 vtkStringArray *fileList);
Abstract class that contains graphical display properties for displayable nodes.
MRML node for representing a label map volume.
MRML node for representing a volume display attributes.
MRML node for representing a volume (image stack).
A set of MRML Nodes that supports serialization and undo/redo.
A superclass for other storage nodes.
MRML node for representing a volume display attributes.
MRML node for representing a volume (image stack).
vtkMRMLScalarVolumeNode * CloneVolume(vtkMRMLVolumeNode *volumeNode, const char *name)
double CompareVolumeGeometryEpsilon
void SetCompareVolumeGeometryEpsilon(double epsilon)
void SetAndObserveColorToDisplayNode(vtkMRMLDisplayNode *displayNode, int labelmap, const char *filename)
NodeSetFactoryRegistry VolumeRegistry
std::vector< VolumeDisplayPreset > VolumeDisplayPresets
vtkMRMLLabelMapVolumeNode * CreateAndAddLabelVolume(vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name)
Create a label map volume to match the given volumeNode and add it to the scene.
std::string CompareVolumeGeometry(vtkMRMLScalarVolumeNode *volumeNode1, vtkMRMLScalarVolumeNode *volumeNode2)
vtkSlicerVolumesLogic(const vtkSlicerVolumesLogic &)
static vtkMRMLScalarVolumeNode * ResampleVolumeToReferenceVolume(vtkMRMLVolumeNode *inputVolumeNode, vtkMRMLVolumeNode *referenceVolumeNode)
bool ApplyVolumeDisplayPreset(vtkMRMLVolumeDisplayNode *displayNode, std::string presetId)
void ProcessMRMLNodesEvents(vtkObject *caller, unsigned long event, void *callData) override
void ComputeTkRegVox2RASMatrix(vtkMRMLVolumeNode *VNode, vtkMatrix4x4 *M)
Convenience method to compute a volume's Vox2RAS-tkreg Matrix.
vtkMRMLLabelMapVolumeNode * FillLabelVolumeFromTemplate(vtkMRMLScene *scene, vtkMRMLLabelMapVolumeNode *labelNode, vtkMRMLVolumeNode *templateNode)
void RegisterArchetypeVolumeNodeSetFactory(ArchetypeVolumeNodeSetFactory factory)
static vtkMRMLScalarVolumeNode * CloneVolumeWithoutImageData(vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name)
std::string GetAppliedVolumeDisplayPresetId(vtkMRMLVolumeDisplayNode *displayNode)
std::list< ArchetypeVolumeNodeSetFactory > NodeSetFactoryRegistry
static void ClearVolumeImageData(vtkMRMLVolumeNode *volumeNode)
Clear the image data of a volume node to contain all zeros.
vtkMRMLVolumeNode * AddArchetypeVolume(const char *filename, const char *volname)
void operator=(const vtkSlicerVolumesLogic &)
vtkMRMLVolumeNode * AddArchetypeVolume(const char *filename, const char *volname, int loadingOptions, vtkStringArray *fileList)
void GetVolumeCenteredOrigin(vtkMRMLVolumeNode *volumeNode, double *origin)
void TranslateFreeSurferRegistrationMatrixIntoSlicerRASToRASMatrix(vtkMRMLVolumeNode *V1Node, vtkMRMLVolumeNode *V2Node, vtkMatrix4x4 *FSRegistrationMatrix, vtkMatrix4x4 *ResultsMatrix)
void PreRegisterArchetypeVolumeNodeSetFactory(ArchetypeVolumeNodeSetFactory factory)
vtkMRMLLabelMapVolumeNode * CreateLabelVolumeFromVolume(vtkMRMLScene *scene, vtkMRMLLabelMapVolumeNode *outputVolume, vtkMRMLVolumeNode *inputVolume)
static vtkMRMLVolumeNode * CloneVolumeGeneric(vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name, bool cloneImageData=true)
Create a deep copy of a volumeNode and add it to the scene.
void InitializeDefaultVolumeDisplayPresets()
Read default volume display presets from configuration file.
std::vector< std::string > GetVolumeDisplayPresetIDs()
Method to get a vector to currently defined window level preset IDs.
int CompareVolumeGeometryPrecision
LoadingOptions
Loading options, bitfield.
~vtkSlicerVolumesLogic() override
vtkSlicerVolumesLogic Self
vtkMRMLScalarVolumeNode * CreateScalarVolumeFromVolume(vtkMRMLScene *scene, vtkMRMLScalarVolumeNode *outputVolume, vtkMRMLVolumeNode *inputVolume)
vtkMRMLLabelMapVolumeNode * CreateLabelVolume(vtkMRMLVolumeNode *volumeNode, const char *name)
vtkMRMLLabelMapVolumeNode * FillLabelVolumeFromTemplate(vtkMRMLLabelMapVolumeNode *labelNode, vtkMRMLVolumeNode *templateNode)
static vtkMRMLScalarVolumeNode * CloneVolume(vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name, bool cloneImageData=true)
vtkMRMLVolumeNode * AddArchetypeVolume(const NodeSetFactoryRegistry &volumeRegistry, const char *filename, const char *volname, int loadingOptions, vtkStringArray *fileList)
static vtkSlicerVolumesLogic * New()
int IsFreeSurferVolume(const char *filename)
vtkMRMLLabelMapVolumeNode * CreateAndAddLabelVolume(vtkMRMLVolumeNode *volumeNode, const char *name)
vtkMRMLScalarVolumeNode * AddArchetypeScalarVolume(const char *filename, const char *volname, int loadingOptions, vtkStringArray *fileList)
void PrintSelf(ostream &os, vtkIndent indent) override
void CenterVolume(vtkMRMLVolumeNode *volumeNode)
std::string CheckForLabelVolumeValidity(vtkMRMLScalarVolumeNode *volumeNode, vtkMRMLLabelMapVolumeNode *labelNode)
ArchetypeVolumeNodeSet(* ArchetypeVolumeNodeSetFactory)(std::string &volumeName, vtkMRMLScene *scene, int options)
int SaveArchetypeVolume(const char *filename, vtkMRMLVolumeNode *volumeNode)
Write volume's image data to a specified file.
vtkMRMLLabelMapVolumeNode * CreateLabelVolume(vtkMRMLScene *scene, vtkMRMLVolumeNode *volumeNode, const char *name)
void InitializeStorageNode(vtkMRMLStorageNode *storageNode, const char *filename, vtkStringArray *fileList, vtkMRMLScene *mrmlScene=nullptr)
VolumeDisplayPreset GetVolumeDisplayPreset(const std::string &presetId)
vtkMRMLVolumeNode * AddArchetypeVolume(const char *filename, const char *volname, int loadingOptions)
ArchetypeVolumeNodeSet(const ArchetypeVolumeNodeSet &set)
vtkSmartPointer< vtkMRMLVolumeNode > Node
vtkSmartPointer< vtkMRMLVolumeDisplayNode > DisplayNode
ArchetypeVolumeNodeSet(vtkMRMLScene *scene)
vtkSmartPointer< vtkMRMLScene > Scene
vtkSmartPointer< vtkMRMLStorageNode > StorageNode