Medical Imaging Interaction Toolkit  2023.12.00
Medical Imaging Interaction Toolkit
mitkBooleanOperation.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 mitkBooleanOperation_h
14 #define mitkBooleanOperation_h
15 
17 #include <mitkLabelSetImage.h>
18 
19 namespace mitk
20 {
27  {
28  public:
29  enum Type
30  {
34  Union
35  };
36 
37  /* \brief Construct a boolean operation.
38  *
39  * Throws an mitk::Exception when segmentations are somehow invalid.
40  *
41  * \param[in] type The type of the boolean operation.
42  * \param[in] segmentationA The first operand of the boolean operation.
43  * \param[in] segmentationB The second operand of the boolean operation.
44  * \param[in] The time point at which the operation will be executed.
45  */
46  BooleanOperation(Type type, Image::Pointer segmentationA, Image::Pointer segmentationB, TimePointType time = 0.);
48 
49  /* \brief Execute boolean operation and return resulting segmentation.
50  *
51  * \return The resulting segmentation.
52  */
53  LabelSetImage::Pointer GetResult() const;
54 
55  private:
57  BooleanOperation &operator=(const BooleanOperation &);
58 
59  LabelSetImage::Pointer GetDifference() const;
60  LabelSetImage::Pointer GetIntersection() const;
61  LabelSetImage::Pointer GetUnion() const;
62 
63  void ValidateSegmentation(Image::Pointer segmentation) const;
64  void ValidateSegmentations() const;
65 
66  Type m_Type;
67  Image::Pointer m_SegmentationA;
68  Image::Pointer m_SegmentationB;
69  TimePointType m_TimePoint;
70  };
71 }
72 
73 #endif
mitk::BooleanOperation::None
@ None
Definition: mitkBooleanOperation.h:31
mitk::BooleanOperation
Executes a boolean operation on two different segmentations.
Definition: mitkBooleanOperation.h:26
mitk::BooleanOperation::Type
Type
Definition: mitkBooleanOperation.h:29
itk::SmartPointer< Self >
mitk::BooleanOperation::Intersection
@ Intersection
Definition: mitkBooleanOperation.h:33
mitk
Find image slices visible on a given plane.
Definition: RenderingTests.dox:1
MITKSEGMENTATION_EXPORT
#define MITKSEGMENTATION_EXPORT
Definition: MitkSegmentationExports.h:15
mitk::TimePointType
mitk::ScalarType TimePointType
Definition: mitkTimeGeometry.h:26
MitkSegmentationExports.h
mitk::BooleanOperation::Difference
@ Difference
Definition: mitkBooleanOperation.h:32
mitkLabelSetImage.h