Medical Imaging Interaction Toolkit  2025.08.99-f7084adb
Medical Imaging Interaction Toolkit
mitkSegGroupInsertOperation.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkSegGroupInsertOperation_h
14 #define mitkSegGroupInsertOperation_h
15 
19 
20 namespace mitk
21 {
22  class Image;
23 
29  {
30  public:
32 
33  using ModifyGroupImageMapType = std::map<MultiLabelSegmentation::GroupIndexType, Image::ConstPointer >;
34  using ModifyLabelsMapType = std::map<MultiLabelSegmentation::GroupIndexType, MultiLabelSegmentation::ConstLabelVectorType>;
35  using GroupIndexSetType = std::set<MultiLabelSegmentation::GroupIndexType>;
36  using ModifyGroupNameMapType = std::map<MultiLabelSegmentation::GroupIndexType, std::string >;
37 
40  const GroupIndexSetType& groupIDs,
41  const ModifyGroupImageMapType& groupImages = {},
42  const ModifyLabelsMapType& groupLabels = {});
43 
44  ~SegGroupInsertOperation() override = default;
45 
46  GroupIndexSetType GetGroupIDs() const;
47  GroupIndexSetType GetImageGroupIDs() const;
48  GroupIndexSetType GetLabelGroupIDs() const;
49 
51  Image::Pointer GetGroupImage(MultiLabelSegmentation::GroupIndexType groupID) const;
54  std::string GetGroupName(MultiLabelSegmentation::GroupIndexType groupID) const;
55 
56  // Explicitly delete copy operations because internally std::unique_ptr are used.
57  SegGroupInsertOperation(const SegGroupInsertOperation&) = delete;
58  SegGroupInsertOperation& operator=(const SegGroupInsertOperation&) = delete;
59 
60  static SegGroupInsertOperation* CreateFromSegmentation(MultiLabelSegmentation* segmentation,
61  const GroupIndexSetType& relevantGroupIDs,
62  bool noLabels = false, bool noGroupImages = false);
63 
64  protected:
65  using ModifyCompressedImageMapType = std::map<MultiLabelSegmentation::GroupIndexType, std::unique_ptr<CompressedImageContainer>>;
70  };
71 
72 }
73 #endif
mitk::SegGroupInsertOperation::m_Labels
ModifyLabelsMapType m_Labels
Definition: mitkSegGroupInsertOperation.h:68
mitk::SegGroupInsertOperation::m_Names
ModifyGroupNameMapType m_Names
Definition: mitkSegGroupInsertOperation.h:69
mitk::SegGroupInsertOperation::ModifyGroupNameMapType
std::map< MultiLabelSegmentation::GroupIndexType, std::string > ModifyGroupNameMapType
Definition: mitkSegGroupInsertOperation.h:36
mitkCompressedImageContainer.h
mitk::MultiLabelSegmentation::GroupIndexType
std::size_t GroupIndexType
Definition: mitkLabelSetImage.h:56
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
mitk::SegGroupInsertOperation::ModifyGroupImageMapType
std::map< MultiLabelSegmentation::GroupIndexType, Image::ConstPointer > ModifyGroupImageMapType
Definition: mitkSegGroupInsertOperation.h:33
mitk::SegGroupInsertOperation::m_Images
ModifyCompressedImageMapType m_Images
Definition: mitkSegGroupInsertOperation.h:67
mitk::MultiLabelSegmentation
MultiLabelSegmentation class for handling labels and layers in a segmentation session.
Definition: mitkLabelSetImage.h:43
mitkSegChangeOperationBase.h
MITKSEGMENTATION_EXPORT
#define MITKSEGMENTATION_EXPORT
Definition: MitkSegmentationExports.h:15
mitk::MultiLabelSegmentation::ConstLabelVectorType
ConstLabelVector ConstLabelVectorType
Definition: mitkLabelSetImage.h:58
mitk::SegGroupInsertOperation::ModifyCompressedImageMapType
std::map< MultiLabelSegmentation::GroupIndexType, std::unique_ptr< CompressedImageContainer > > ModifyCompressedImageMapType
Definition: mitkSegGroupInsertOperation.h:65
mitk::Image::Pointer
itk::SmartPointer< Self > Pointer
Definition: mitkImage.h:80
mitkClassMacro
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:36
itk::Image
class ITK_EXPORT Image
Definition: mitkGeometryClipImageFilter.h:25
mitk::SegGroupInsertOperation::m_GroupIDs
GroupIndexSetType m_GroupIDs
Definition: mitkSegGroupInsertOperation.h:66
MitkSegmentationExports.h
mitk::SegGroupInsertOperation::GroupIndexSetType
std::set< MultiLabelSegmentation::GroupIndexType > GroupIndexSetType
Definition: mitkSegGroupInsertOperation.h:35
mitk::SegGroupInsertOperation
An Operation for applying an edited slice to the a group of a MultiLabelSegmentation.
Definition: mitkSegGroupInsertOperation.h:28
mitk::SegGroupInsertOperation::ModifyLabelsMapType
std::map< MultiLabelSegmentation::GroupIndexType, MultiLabelSegmentation::ConstLabelVectorType > ModifyLabelsMapType
Definition: mitkSegGroupInsertOperation.h:34
mitk::SegChangeOperationBase
Base class for any operation based on a MultiLabelSegmentation instance.
Definition: mitkSegChangeOperationBase.h:38