13 #ifndef mitkIOVolumeSplitReason_h
14 #define mitkIOVolumeSplitReason_h
17 #include <nlohmann/json.hpp>
29 using Pointer = std::shared_ptr<IOVolumeSplitReason>;
40 SliceDistanceInconsistency,
50 void AddReason(ReasonType type,
const std::string& detail =
"");
51 void RemoveReason(ReasonType type);
53 bool HasReasons()
const;
54 bool HasReason(ReasonType type)
const;
55 std::string GetReasonDetails(ReasonType type)
const;
63 Pointer ExtendReason(ConstPointer otherReason)
const;
68 static std::string TypeToString(ReasonType reasonType);
71 Pointer Clone()
const;
79 template<
typename BasicJsonType>
82 static_assert(std::is_enum<IOVolumeSplitReason::ReasonType>::value,
83 "IOVolumeSplitReason::ReasonType"
88 template<
typename BasicJsonType>
91 static_assert(std::is_enum<IOVolumeSplitReason::ReasonType>::value,
92 "IOVolumeSplitReason::ReasonType"