MeVisLab Toolbox Reference
|
Field to encapsulate an enumerated value. More...
#include <mlFields.h>
Classes | |
struct | EnumEntry |
Defines the entry for one enum value. More... | |
Public Member Functions | |
EnumField (const std::string &name, const std::string enumerationItemNames[], size_t numEnumerationItems) | |
Implements the runtime type system interface for this class. | |
EnumField (const std::string &name, const char *const *enumerationItemNames, size_t numEnumerationItems) | |
Constructor, creates a field with a name to manage an enum value. | |
EnumField (const std::string &name, const std::vector< std::string > &enumerationItemNames) | |
Constructor, creates a field with a name to manage an enum value. | |
~EnumField () override | |
Destroys this field and releases internally allocated memory. | |
void | setStringValue (const std::string &value) override |
Sets value of the field to the enum item with given name value . | |
void | setStringValueDefaulted (const std::string &value) |
If value equals one of the enum item names, set the field to this item, otherwise set it to the first item of the enum. | |
void | setEnumValue (int enumValue) |
Sets field value to enumValue . | |
void | updateEnumValue (int enumValue) |
Sets field value to enumValue , but only touch field if the new value is different from the old value. | |
std::string | getStringValue () const override |
Returns the value of the field as string value. | |
int | getEnumValue () const |
Returns the current enum value as integer. | |
const EnumEntry & | getEnumEntryAtIndex (size_t index) const |
Returns the enum entry at given index , which allows to enumerate all existing enum entries. | |
size_t | getNumEnumerationItems () const |
Returns the number of registered enum values defined in constructor. | |
void | setValue (int enumValue) |
Same as setEnumValue(). | |
void | updateValue (int enumValue) |
Same as updateEnumValue(). | |
int | getValue () const |
Same as getEnumValue(). | |
Public Member Functions inherited from ml::Field | |
Field (const std::string &name=std::string()) | |
Constructor: Creates a field with name . | |
virtual | ~Field () |
Destructor: Destroy field and remove all connection to fields an sensors. | |
FieldContainer * | getFieldContainer () const |
Get the field container of the field (which may be NULL). | |
const std::string & | getName () const |
Returns name of field. | |
void | setName (const std::string &name) |
Sets the name of field. Should be called only once after or while construction. | |
std::string | getFullName () const |
Returns "fieldContainerType(instanceName).fieldName" (if field container is available, otherwise only field name is returned). | |
bool | isOutputOnly () const |
Returns if this field is marked as pure output field. | |
void | setOutputOnly (bool outputOnly=true) |
Mark field as a pure output field that is never read by its module. | |
virtual MLint | isValidValue () |
Returns true (=1) if the field's value is valid; otherwise false (=0) is returned. | |
void | copyCStringValue (char *valueBuffer, MLint bufferSize) |
Copies the value of the field (as character string) into the specified buffer valueBuffer . | |
MLint | getCStringValueSize () |
Returns the length of the character string of the string value of the field. | |
void | attachFieldSensor (FieldSensor *sensor) |
Attaches a field sensor sensor of this class instance in both directions. | |
void | detachFieldSensor (FieldSensor *sensor) |
Detaches the field sensor sensor of this class instance in both directions. | |
void | detachFieldSensors () |
Detaches all field sensors of this class instance in both directions. | |
void | attachField (OutputConnectorField *targetField) |
This calls attachField(targetField, false). | |
void | attachField (BaseField *targetField) |
void | attachField (SoNodeField *targetField) |
void | attachField (NotifyField *targetField) |
void | attachField (Field *targetField, bool propagateValueOnConnect) |
Connects this class instance with the target field targetField . | |
void | detachField (Field *targetField) |
Disconnects connections between target field targetField and this instance. | |
void | detachSourceFields () |
Disconnects all source fields of this instance in both directions. | |
void | detachDestinationFields () |
Disconnects all target fields of this instance in both directions. | |
void | detachAllFields () |
Disconnects all source and target fields of this instance in both directions. | |
size_t | getNumDestinationFields () |
Returns the number of destination fields which could receive notifications or value sets. | |
Field * | getDestinationField (size_t index) |
Returns destination field at index . Returns NULL if index is out of range. | |
size_t | getNumSourceFields () |
Returns the number of source fields which could send notifications or value sets. | |
Field * | getSourceField (size_t index) |
Returns the source field at index . Returns NULL if index is out of range. | |
virtual void | touch (FieldSensor::Strength strength=FieldSensor::CHANGED) |
Notifies all connected fields and field sensors. | |
void | enableNotifications (bool flag) |
Enables or disables notification of attached fields and field sensors when the field value is set or notified (by notifyAttachments() or set*Value() -methods), depending on the parameter flag . | |
bool | areNotificationsEnabled () |
Returns whether the notification mechanism for this field (e.g., when field values are set) is enabled (see enableNotifications(bool) ). | |
Protected Member Functions | |
void | _initialize (const std::string &name="", size_t numEnums=0, int *valuePtr=nullptr) |
Initializes this field. | |
void | _setEnumerationNames (const std::string enumNames[]) |
Sets the enumeration item names. | |
void | _setEnumerationNames (const char *const *enumNames) |
Sets the enumeration item names. | |
void | _setEnumerationNames (const std::vector< std::string > &enumNames) |
Sets the enumeration item names. | |
void | _setEnumerationNames (const std::vector< EnumField::EnumEntry > &enumValues, int initialValue) |
Sets the enumeration item names. | |
EnumField () | |
Protected constructor to allow derived classes. | |
Protected Member Functions inherited from ml::Field | |
void | attachSourceField (Field *field) |
Inserts a field as source field in this instance, i.e., from now on *this might receive values and/or notifications from that field. | |
void | detachSourceField (Field *field) |
Removes a source field from this instance. If not found then this call does nothing. | |
void | detachFieldInternal (Field *field) |
Only remove the given field from the destination list. | |
virtual void | setValueFromField (const Field &field) |
Sets the value of this field from the given field . | |
Protected Attributes | |
int * | _valuePtr |
Points to the variable containing the field value; we use an integer to be compatible to normal enum types. | |
int | _internalValue |
Stores the int value (if no external deprecated reference was given). | |
bool | _linearEntries |
Stores if enum entry values start at 0 and increase by 1. | |
std::vector< EnumEntry > | _entries |
Stores the possible enum values and names. | |
Protected Attributes inherited from ml::Field | |
std::string | _name |
The name of this field. | |
std::vector< FieldSensor * > | _sensors |
List of field sensors. | |
std::vector< Field * > | _destinationFields |
List of (target) fields which shall be set to the value of this field or which shall be notified only if this field is changed or notified. | |
std::vector< Field * > | _sourceFields |
List of (source) fields, which will notify this field or which will copy their value to this field. | |
FieldContainer * | _fieldContainer |
The owning field container. | |
Flags | _flags |
Additional Inherited Members | |
Static Public Member Functions inherited from ml::Field | |
static void | enableNotificationsGlobally (bool flag) |
Enables or disables globally the notification mechanism for all fields and field sensors when field values are set or notified (by notifyAttachments() or set*Value() methods), depending on the parameter flag . | |
static bool | areNotificationsEnabledGlobally () |
Returns whether the notification mechanism for all fields (e.g., when field values are set) is enabled (see enableNotificationsGlobally(bool) ) Usually it is false(=0) within all calls of Module::calc* methods to avoid that field changes within these methods recursively start the calculation process of the ML. | |
static MLint & | enableNotificationsCounterState () |
Provides read/write access to the current counter state (see enableNotificationsGlobally(bool) ). | |
Static Protected Attributes inherited from ml::Field | |
static MLint | _enableNotifications |
Flag which disables the notification process of field (sensors) globally. | |
Field to encapsulate an enumerated value.
Definition at line 194 of file mlFields.h.
ml::EnumField::EnumField | ( | const std::string & | name, |
const std::string | enumerationItemNames[], | ||
size_t | numEnumerationItems ) |
Implements the runtime type system interface for this class.
Constructor, creates a field with a name
to manage an enum value. The value range for the enum value is [0, numEnumerationItems-1
]. The value names are defined by enumerationItemNames
. The maximum number of enum entries is ML_INT32_MAX, minimum is 1; exceeding that will lead to fatal errors, even on 64 bit systems. Note that enumerationItemNames
must contain at least numEnumerationItems
string values.
ml::EnumField::EnumField | ( | const std::string & | name, |
const char *const * | enumerationItemNames, | ||
size_t | numEnumerationItems ) |
Constructor, creates a field with a name
to manage an enum value.
The value range for the enum value is [0, numEnumerationItems-1
]. The value names are defined by enumerationItemNames
. The maximum number of enum entries is ML_INT32_MAX, minimum is 1; exceeding that will lead to fatal errors, even on 64 bit systems. Note that enumerationItemNames
must contain at least numEnumerationItems
string values.
ml::EnumField::EnumField | ( | const std::string & | name, |
const std::vector< std::string > & | enumerationItemNames ) |
Constructor, creates a field with a name
to manage an enum value.
The field creates the value buffer internally. The value range for the enum value is [0, enumerationItemNames.size-1
]. The value names are defined by enumerationItemNames
. The maximum number of enum entries is ML_INT32_MAX, minimum is 1; exceeding that will lead to fatal errors, even on 64 bit systems. The default enum value is 0.
|
override |
Destroys this field and releases internally allocated memory.
|
inlineprotected |
Protected constructor to allow derived classes.
Definition at line 312 of file mlFields.h.
|
protected |
Initializes this field.
Sets the enumeration item names.
Sets the enumeration item names.
|
protected |
Sets the enumeration item names.
Sets the enumeration item names.
Returns the enum entry at given index
, which allows to enumerate all existing enum entries.
Allowed indices are [0 - getNumEnumerationItems()-1]. No bounds check is performed!
int ml::EnumField::getEnumValue | ( | ) | const |
Returns the current enum value as integer.
size_t ml::EnumField::getNumEnumerationItems | ( | ) | const |
Returns the number of registered enum values defined in constructor.
|
overridevirtual |
Returns the value of the field as string value.
setStringValue must be able to interpret this returned string correctly. On invalid enumValues the first string item is returned.
Implements ml::Field.
|
inline |
Same as getEnumValue().
Definition at line 281 of file mlFields.h.
Sets value of the field to the enum item with given name value
.
If the value
enum item is not found, the call is ignored. The comparison is done case-sensitive.
Implements ml::Field.
If value
equals one of the enum item names, set the field to this item, otherwise set it to the first item of the enum.
Sets field value to enumValue
, but only touch field if the new value is different from the old value.
|
protected |
Stores the possible enum values and names.
Definition at line 308 of file mlFields.h.
|
protected |
Stores the int value (if no external deprecated reference was given).
Definition at line 302 of file mlFields.h.
|
protected |
Stores if enum entry values start at 0 and increase by 1.
Definition at line 305 of file mlFields.h.
|
protected |
Points to the variable containing the field value; we use an integer to be compatible to normal enum types.
Definition at line 299 of file mlFields.h.