13 #ifndef mitkIPropertyDeserialization_h
14 #define mitkIPropertyDeserialization_h
20 #include <itkSmartPointer.h>
23 #include <type_traits>
44 virtual BaseProperty::Pointer
CreateInstance(
const std::string& className) = 0;
53 template <
typename T,
typename = std::enable_if_t<std::is_base_of_v<BaseProperty, T>>>
56 this->InternalRegisterProperty(T::New());
Abstract base class for properties.
Interface of property deserialization service.
virtual ~IPropertyDeserialization()
virtual BaseProperty::Pointer CreateInstance(const std::string &className)=0
Create a new instance of a registered property type by class name.
virtual void InternalRegisterProperty(const BaseProperty *property)=0
Internal method to register a property instance for deserialization.
void RegisterProperty()
Register a custom property type for deserialization.
Provides the MITK_DECLARE_SERVICE_INTERFACE macro for registering C++ interfaces with both the CppMic...
#define MITK_DECLARE_SERVICE_INTERFACE(IFace, IId)
Declare a C++ interface for use with CppMicroServices (Qt not available).
Find image slices visible on a given plane.