MeVisLab Toolbox Reference
ml::MultiField< DATATYPE > Class Template Reference

Field to represent a dynamic vector of DATATYPE values. More...

#include <mlMultiFields.h>

Inheritance diagram for ml::MultiField< DATATYPE >:
ml::Field

Public Member Functions

 MultiField (const std::string &name="")
void setStringValue (const std::string &value) override
void setMultiField (const std::vector< DATATYPE > &value)
 Set values of the field to value which is a std::vector.
void setMultiField (const DATATYPE values[], size_t numValues)
void getMultiField (DATATYPE values[], size_t numValues)
std::string getStringValue () const override
 Return the value as string value.
const std::vector< DATATYPE > & getMultiField () const
 Returns the vector of the field.
std::vector< DATATYPE > & getNonConstMultiField ()
 Returns the vector of the field as modifiable reference.
size_t getSize () const
 Returns number of entries in vector.
Public Member Functions inherited from ml::Field
 Field (const std::string &name=std::string())
 Constructor: Creates a field with name.
virtual ~Field ()
 Destructor: Destroys a field and removes all connection to fields and sensors.
FieldContainergetFieldContainer () const
 Returns the field container of the field (which may be NULL).
const std::string & getName () const
 Returns the 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
bool isOutputOnly () const
 Returns whether this field is marked as a pure output field.
void setOutputOnly (bool outputOnly=true)
 Marks this field as a pure output field that is only changed by its module.
virtual MLint isValidValue ()
void copyCStringValue (char *valueBuffer, MLint bufferSize)
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)
void attachField (BaseField *targetField)
void attachField (SoNodeField *targetField)
void attachField (NotifyField *targetField)
void attachField (Field *targetField, bool propagateValueOnConnect)
void detachField (Field *targetField)
 Disconnects connections between the 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 that could receive notifications or value sets.
FieldgetDestinationField (size_t index)
 Returns the destination field at index. Returns NULL if index is out of range.
size_t getNumSourceFields ()
 Returns the number of source fields that could send notifications or value sets.
FieldgetSourceField (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)
void enableNotifications (bool flag)
bool areNotificationsEnabled ()

Additional Inherited Members

static void enableNotificationsGlobally (bool flag)
static bool areNotificationsEnabledGlobally ()
static MLintenableNotificationsCounterState ()
Protected Member Functions inherited from ml::Field
void attachSourceField (Field *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 removes the given field from the destination list.
virtual void setValueFromField (const Field &field)
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
std::vector< Field * > _sourceFields
FieldContainer_fieldContainer
 The owning field container.
Flags _flags
Static Protected Attributes inherited from ml::Field
static MLint _enableNotifications
 Flag that disables the notification process of field (-sensors) globally.

Detailed Description

template<class DATATYPE>
class ml::MultiField< DATATYPE >

Field to represent a dynamic vector of DATATYPE values.

Definition at line 62 of file mlMultiFields.h.

Constructor & Destructor Documentation

◆ MultiField()

template<class DATATYPE>
ml::MultiField< DATATYPE >::MultiField ( const std::string & name = "")
inline

Empty Constructor: Create a field with name name. Internally, a std::vector is used with initial size of zero.

Definition at line 70 of file mlMultiFields.h.

References ml::Field::Field().

Member Function Documentation

◆ getMultiField() [1/2]

template<class DATATYPE>
const std::vector< DATATYPE > & ml::MultiField< DATATYPE >::getMultiField ( ) const
inline

Returns the vector of the field.

Definition at line 158 of file mlMultiFields.h.

◆ getMultiField() [2/2]

template<class DATATYPE>
void ml::MultiField< DATATYPE >::getMultiField ( DATATYPE values[],
size_t numValues )
inline

Get values from the field into values which is an array of values. numValues must indicate the number of values to be written into values. values must have enough capacity to contain at least numValues. Note: If the MultiField has less than numValues entries then only the number of MultiField entries is written into values and the rest of the values is left unchanged.

Definition at line 129 of file mlMultiFields.h.

References ML_BAD_POINTER_OR_0, and ml::printTemplateFatalError().

◆ getNonConstMultiField()

template<class DATATYPE>
std::vector< DATATYPE > & ml::MultiField< DATATYPE >::getNonConstMultiField ( )
inline

Returns the vector of the field as modifiable reference.

Definition at line 166 of file mlMultiFields.h.

◆ getSize()

template<class DATATYPE>
size_t ml::MultiField< DATATYPE >::getSize ( ) const
inline

Returns number of entries in vector.

Definition at line 174 of file mlMultiFields.h.

◆ getStringValue()

template<class DATATYPE>
std::string ml::MultiField< DATATYPE >::getStringValue ( ) const
inlineoverridevirtual

Return the value as string value.

Implements ml::Field.

Reimplemented in ml::StringLineMultiField.

Definition at line 148 of file mlMultiFields.h.

◆ setMultiField() [1/2]

template<class DATATYPE>
void ml::MultiField< DATATYPE >::setMultiField ( const DATATYPE values[],
size_t numValues )
inline

Set values of the field to values which is an array of values. numValues must indicate exactly the number of values to be set and values must contain all these values.

Definition at line 101 of file mlMultiFields.h.

References ML_BAD_POINTER_OR_0, ml::printTemplateFatalError(), and ml::Field::touch().

◆ setMultiField() [2/2]

template<class DATATYPE>
void ml::MultiField< DATATYPE >::setMultiField ( const std::vector< DATATYPE > & value)
inline

Set values of the field to value which is a std::vector.

Definition at line 90 of file mlMultiFields.h.

References ml::Field::touch().

◆ setStringValue()

template<class DATATYPE>
void ml::MultiField< DATATYPE >::setStringValue ( const std::string & value)
inlineoverridevirtual

Set value to value. The value string is parsed and it is assumed that each value is separated by 'space'. If a 'wrong' character is detected the parsing stops and only the values before this character are used.

Implements ml::Field.

Reimplemented in ml::StringLineMultiField.

Definition at line 80 of file mlMultiFields.h.

References ml::Field::touch().


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