# bdm::ParticularUI< T > Class Template Reference

The only UI descendant class which is not intended for direct use. It should be accessed within the UIREGISTER macro only. More...

`#include <user_info.h>`

List of all members.

## Public Member Functions
root * | new_instance () const
| A method returning a brand new instance of class T, this method is the reason why there have to be a parameterless construcotor in class T.
## Static Public Attributes
static const ParticularUI< T > & | factory
| The only instance of this class (each type T has its own instance) which is used as a factory for processing related UI.
## Static Private Member Functions
Initialization of classes
The type T has to be a root descendant class
template<class T >
static T * | build (const Setting &element, const string &name)
| The new instance of type T* is constructed and initialized with values stored in the Setting element[name].
template<class T >
static T * | build (const Setting &element, const int index)
| The new instance of type T* is constructed and initialized with values stored in the Setting element[index].
template<class T >
static T * | build (const Setting &element)
| The new instance of type T* is constructed and initialized with values stored in the Setting element.
Initialization of structures
The type T has to be int, double, string, vec, ivec or mat.
template<class T >
static void | get (T &instance, const Setting &element, const string &name)
| The existing instance of type T is initialized with values stored in the Setting element[name].
template<class T >
static void | get (T &instance, const Setting &element, const int index)
| The existing instance of type T is initialized with values stored in the Setting element[index].
template<class T >
static void | get (T &instance, const Setting &element)
| The existing instance of type T is initialized with values stored in the Setting element directly.
Initialization of arrays Array<T>
The type T has to be int, double, string, vec, ivec or mat, or pointer to any root descendant.
template<class T >
static void | get (Array< T > &array_to_load, const Setting &element, const string &name)
| The existing array of type T is initialized with values stored in the Setting element[name].
template<class T >
static void | get (Array< T > &array_to_load, const Setting &element, const int index)
| The existing array of type T is initialized with values stored in the Setting element[index].
template<class T >
static void | get (Array< T > &array_to_load, const Setting &element)
| The existing array of type T is initialized with values stored in the Setting element.
Serialization of objects and structures into a new Setting
The new child Setting can be accessed either by its name - if some name is passed as a parameter - or by its integer index. In that case, the new element is added at the very end of the current list of child Settings.
template<class T >
static void | save (const T *const instance, Setting &element, const string &name="")
| A root descendant instance is stored in the new child Setting appended to the passed element.
template<class T >
static void | save (const Array< T > &array_to_save, Setting &element, const string &name="")
| An Array<T> instance is stored in the new child Setting appended to the passed element.
static void | save (const mat &matrix, Setting &element, const string &name="")
| A matrix(of type mat) is stored in the new child Setting appended to the passed element.
static void | save (const ivec &vec, Setting &element, const string &name="")
| An integer vector (of type ivec) is stored in the new child Setting appended to the passed element.
static void | save (const vec &vector, Setting &element, const string &name="")
| A double vector (of type vec) is stored in the new child Setting appended to the passed element.
static void | save (const string &str, Setting &element, const string &name="")
| A string is stored in the new child Setting appended to the passed element.
static void | save (const int &integer, Setting &element, const string &name="")
| An integer is stored in the new child Setting appended to the passed element.
static void | save (const double &real, Setting &element, const string &name="")
| A double is stored in the new child Setting appended to the passed element.

## Detailed Description

### template<typename T>
class bdm::ParticularUI< T >

The only UI descendant class which is not intended for direct use. It should be accessed within the UIREGISTER macro only.

The documentation for this class was generated from the following file:

- user_info.h