MeVisLab Toolbox Reference
CSOVoxelSetList.h
Go to the documentation of this file.
1/*************************************************************************************
2**
3** Copyright 2007, MeVis Medical Solutions AG
4**
5** The user may use this file in accordance with the license agreement provided with
6** the Software or, alternatively, in accordance with the terms contained in a
7** written agreement between the user and MeVis Medical Solutions AG.
8**
9** For further information use the contact form at https://www.mevislab.de/contact
10**
11**************************************************************************************/
12
13
16
17#pragma once
18
19#include "MLCSOIncludes.h"
20
21
22ML_START_NAMESPACE
23
24
25class CSOVoxelSet;
26class CSOVoxelSetGroup;
27class CSOList;
28
30
32{
33
34public:
35
38
40 ~CSOVoxelSetList() override;
41
43 void destroy();
44
48 void setupInternalStructureAsCSOList(CSOList* csoList, PagedImage* image=nullptr);
49
53
55 int numCSOVoxelSet() const { return static_cast<int>(_csoVoxelSets.size()); }
57 CSOVoxelSet* csoVoxelSetAt(size_t index) const { return _csoVoxelSets[index]; }
62
64 void addOrReplaceCSOVoxelSetWithId(int id, const CSOVoxelSet& other);
65
68
70 int numCSOVoxelSetGroup() const { return static_cast<int>(_csoVoxelSetGroups.size()); }
72 CSOVoxelSetGroup* csoVoxelSetGroupAt(size_t index) const { return _csoVoxelSetGroups[index]; }
85 bool isInsideImage(const Vector3& position);
88 const SubImageBox& getImageBox() const { return _imageBox; }
90 void setSubImageBox(const SubImageBox& subImageBox) { _imageBox = subImageBox; }
92 Matrix4 getVoxelToWorldMatrix() const { return _voxelToWorldMatrix; }
94 void setVoxelToWorldMatrix(const Matrix4& voxelToWorldMatrix) { _voxelToWorldMatrix = voxelToWorldMatrix; }
97 void addStateToTree(TreeNode* parent) const override;
98 // Sets the current version number.
101 void readStateFromTree(TreeNode* parent) override;
102
103
104protected:
105
106 // nothing so far
107
108private:
109
110 /* MEMBER VARIABLES */
111
113 std::vector<CSOVoxelSet*> _csoVoxelSets;
115 std::vector<CSOVoxelSetGroup*> _csoVoxelSetGroups;
116
117 SubImageBox _imageBox;
118
119 Matrix4 _voxelToWorldMatrix;
120
121 /* METHODS */
122
123 void _loadVersion(TreeNode* parent, int version);
124
126};
127
129
130ML_END_NAMESPACE
#define MLCSO_EXPORT
Defines export symbols for classes, so they can be used in other DLLs.
Definition MLCSOSystem.h:23
Base()
Constructor.
CSOVoxelSetList()
Standard constructor.
void addOrReplaceCSOVoxelSetWithId(int id, const CSOVoxelSet &other)
Adds or replaces an existing CSOVoxelSet with the specified ID in this list.
CSOVoxelSet * addCSOVoxelSet()
Adds and returns a new CSOVoxelSet.
void setVoxelToWorldMatrix(const Matrix4 &voxelToWorldMatrix)
Sets the voxelToWorldMatrix.
int numCSOVoxelSetGroup() const
Returns the number of CSOVoxelSetGroups.
void setSubImageBox(const SubImageBox &subImageBox)
Sets the SubImageBox.
void setupInternalStructureAsCSOList(CSOList *csoList, PagedImage *image=nullptr)
void removeCSOVoxelSetWithId(int id)
Removes a CSOVoxelSet with a specifed ID.
CSOVoxelSetGroup * addCSOVoxelSetGroup()
Adds and returns a new CSOVoxelSetGroup.
void setupInternalStructureAsImage(const PagedImage *image)
const SubImageBox & getImageBox() const
int getMaxTimepointIndex() const
Computes and returns the maximum time point index.
int numCSOVoxelSet() const
Returns the number of CSOVoxelSets.
bool isInsideImage(const Vector3 &position)
void destroy()
Deletes internal structures.
~CSOVoxelSetList() override
Standard destructor.
MLdouble getMinVoxelValue() const
Computes and returns the minimum voxel value.
CSOVoxelSetGroup * csoVoxelSetGroupWithId(int id)
Returns the pointer to a CSOVoxelSetGroup with a specified ID. The nullptr is returned if the CSOVoxe...
MLdouble getMaxVoxelValue() const
Computes and returns the maximum voxel value.
CSOVoxelSet * csoVoxelSetWithId(int id)
Returns the pointer to a CSOVoxelSet with a specified ID. The nullptr is returned if the voxel set do...
CSOVoxelSet * csoVoxelSetAt(size_t index) const
Returns the pointer to a CSOVoxelSet at a specified index.
void readStateFromTree(TreeNode *parent) override
Implements import functionality (as used by the LoadBase module).
CSOVoxelSetGroup * csoVoxelSetGroupAt(size_t index) const
Returns the pointer to a CSOVoxelSetGroup at a specified index.
void addStateToTree(TreeNode *parent) const override
Matrix4 getVoxelToWorldMatrix() const
Returns the image matrix if a valid PagedImage was set. Otherwise, it returns the identity matrix.
#define ML_CLASS_HEADER(className)
double MLdouble
Definition mlTypeDefs.h:216
Tmat4< MLdouble > Matrix4
The standard 4x4 matrix of type double.
Definition mlMatrix4.h:713
Tvec3< MLdouble > Vector3
A vector with three components of type double.
Definition mlVector3.h:286
TSubImageBox< MLint > SubImageBox
Defines the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type...