ImFusion C++ SDK 4.4.0
ImFusion::ML::AdvancedParameter< T, Parent > Class Template Reference

#include <ImFusion/ML/AdvancedParameter.h>

The AdvancedParameter class extends the Parameter class by providing some additional functionalities used in ML::Operation and ML::ImageROISampler classes, like specifying whether a parameter is required for the object to work, and automatically logging an error message in case the user doesn't provide it. More...

Inheritance diagram for ImFusion::ML::AdvancedParameter< T, Parent >:

Detailed Description

template<typename T, typename Parent>
class ImFusion::ML::AdvancedParameter< T, Parent >

The AdvancedParameter class extends the Parameter class by providing some additional functionalities used in ML::Operation and ML::ImageROISampler classes, like specifying whether a parameter is required for the object to work, and automatically logging an error message in case the user doesn't provide it.

You can also add a deprecated param name, and the class will check and cast a deprecation warning. In case of a configure error, a ParamException is raised.

Public Member Functions

template<typename U, REQUIRE_ENUM(U)>
 AdvancedParameter (const std::string &name, U &&value, Parent *parent, ParamRequired required, std::string deprecatedName="", std::function< std::string(T)> convertEnumToString=nullptr, std::function< T(const std::string &)> convertStringToEnum=nullptr, const std::vector< std::string > &enumNames={})
 Create an Enum Parameter that is directly registered to the Parent, which can be serialized as string for better UX.
template<typename U, PROHIBIT_ENUM(U)>
 AdvancedParameter (const std::string &name, U &&value, Parent *parent, ParamRequired required, std::string deprecatedName="")
 Create a Parameter that is directly registered to the Parent.
template<typename U>
AdvancedParameter< T, Parent > & operator= (U &&value)
T & value ()
 operator const T & () const
 operator T& ()
bool readParam (const std::string &pname, const Properties *properties, T &outParam)
void configure (const Properties *properties) override
 Configure this parameter/sub property by de-serializing the given Properties.
void configuration (Properties *properties) const override
 Serialize the current parameter/sub property state into the given Properties object.
const Parent * parent () const
ParamRequired required ()
void setRequired (ParamRequired required)
Public Member Functions inherited from ImFusion::Parameter< T >
template<typename U>
 Parameter (const std::string &name, U &&value)
 Creates a Parameter that will be configured under the given name and with the given initial value.
template<typename U>
 Parameter (const std::string &name, U &&value, Configurable *parent)
 Create a Parameter that is directly registered with the parent Configurable instance.
template<typename U>
 Parameter (const std::string &name, U &&value, Configurable &parent)
 Parameter (const Parameter< T > &other)
 Parameter (Parameter< T > &&other)
Parameter< T > & operator= (const Parameter< T > &other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
Parameter< T > & operator= (Parameter< T > &other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
Parameter< T > & operator= (Parameter< T > &&other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
template<typename U>
Parameter< T > & operator= (U &&value)
 Updates the Parameter's stored value, emits the signalValueChanged if needed.
template<typename U>
void setValue (U &&value)
 Updates the Parameter's stored value, emits the signalValueChanged if needed.
const T & value () const
 Returns the currently stored value.
 operator const T & () const
 Returns the currently stored value.
void setDefault (const T &defaultValue)
 Sets the default value for this parameter.
void removeDefault ()
 Removes the default value for this parameter.
std::optional< T > defaultValue () const
 Returns the default value of this parameter if specified.
void setType (Properties::ParamType type)
 Sets an optional custom ParamType.
template<typename Q = T>
std::enable_if_t< std::is_arithmetic_v< Q > > setRange (T min, T max)
 Set the min/max parameter attributes of arithmetic parameters.
template<typename Q = T>
std::enable_if_t< std::is_same_v< Q, std::optional< typename Q::value_type > > &&std::is_arithmetic_v< typename Q::value_type > > setRange (typename Q::value_type min, typename Q::value_type max)
 Set the min/max parameter attributes of optional arithmetic parameters.
void configure (const Properties *p) override
 Configure this parameter/sub property by de-serializing the given Properties.
void configuration (Properties *p) const override
 Serialize the current parameter/sub property state into the given Properties object.
Public Member Functions inherited from ImFusion::ParameterBase
 ParameterBase (const std::string &name)
const Configurable * parent () const
 Return the parent Configurable instance that this parameter is registered with.
virtual const std::stringname () const
 Returns parameter name, can only be set during construction.
void setAttribute (const std::string &key, const std::string &value)
 Add the given attribute key-value pair to the set of parameter attributes.
void removeAttribute (const std::string &key)
 Remove the attribute with the given key.
const std::map< std::string, std::string > & attributes () const
 Get the attribute map.
void setLabel (const std::string &label)
 Sets an optional label for the Parameter if displayed in the UI.
void addDeprecatedName (const std::string &deprecatedName)
 Adds an optional alternative parameter name that should be used for param lookup for during configure() in case de-serialization from m_name was not successful.
const std::vector< std::string > & deprecatedNames () const
 Returns the list of deprecated parameter names that should be used for param lookup (see addDeprecatedName()).

Additional Inherited Members

Public Attributes inherited from ImFusion::ParameterBase
Signal signalValueChanged
 Signal gets emitted when the underlying value of the Parameter/SubProperty has changed (either through setValue() or configure()).
Protected Member Functions inherited from ImFusion::ParameterBase
void setParentFromCopy (const ParameterBase &other)
 Helper function to be called from a copy/move ctor in order to correctly set the parent relation ship to the new parent Configurable.
Protected Attributes inherited from ImFusion::Parameter< T >
m_value
std::optional< T > m_defaultValue
Properties::ParamType m_type = Properties::ParamType::Unknown
Protected Attributes inherited from ImFusion::ParameterBase
Configurable * m_parent = nullptr
const std::string m_name
std::vector< std::stringm_deprecatedNames
std::map< std::string, std::stringm_attributes

Constructor & Destructor Documentation

◆ AdvancedParameter()

template<typename T, typename Parent>
template<typename U, REQUIRE_ENUM(U)>
ImFusion::ML::AdvancedParameter< T, Parent >::AdvancedParameter ( const std::string & name,
U && value,
Parent * parent,
ParamRequired required,
std::string deprecatedName = "",
std::function< std::string(T)> convertEnumToString = nullptr,
std::function< T(const std::string &)> convertStringToEnum = nullptr,
const std::vector< std::string > & enumNames = {} )
inline

Create an Enum Parameter that is directly registered to the Parent, which can be serialized as string for better UX.

Note
The enumNames shall match the number of enum fields and their definition order

Member Function Documentation

◆ configure()

template<typename T, typename Parent>
void ImFusion::ML::AdvancedParameter< T, Parent >::configure ( const Properties * p)
inlineoverridevirtual

Configure this parameter/sub property by de-serializing the given Properties.

Implements ImFusion::ParameterBase.

◆ configuration()

template<typename T, typename Parent>
void ImFusion::ML::AdvancedParameter< T, Parent >::configuration ( Properties * p) const
inlineoverridevirtual

Serialize the current parameter/sub property state into the given Properties object.

Implements ImFusion::ParameterBase.


The documentation for this class was generated from the following file:
  • ImFusion/ML/AdvancedParameter.h
Search Tab / S to search, Esc to close