30 class OutputConnectorField;
82 Field(
const std::string& name = std::string());
103 const std::string&
getName()
const {
return _name; }
106 void setName(
const std::string& name) { _name = name; }
305 void setFieldContainer(
FieldContainer* container) { _fieldContainer = container; }
309 Field& operator=(
const Field&) {
return *
this; }
Field to encapsulate a pointer to an ML base object.
Defines the class FieldContainer to encapsulate a vector of fields (see class Field).
Class to define and to manage field sensors.
Strength
Enumeration type describing the strength of notifications.
Base class for all fields used in the ML.
void setName(const std::string &name)
Sets the name of field. Should be called only once after or while construction.
virtual std::string getStringValue() const =0
Returns the value of the field as string value.
size_t getNumDestinationFields()
Returns the number of destination fields that could receive notifications or value sets.
Field(const std::string &name=std::string())
Constructor: Creates a field with name.
static bool areNotificationsEnabledGlobally()
Returns whether the notification mechanism for all fields (e.g., when field values are set) is enable...
void attachField(Field *targetField, bool propagateValueOnConnect)
Connects this class instance with the target field targetField.
void detachFieldSensor(FieldSensor *sensor)
Detaches the field sensor sensor of this class instance in both directions.
FieldContainer * _fieldContainer
The owning field container.
MLint getCStringValueSize()
Returns the length of the character string of the string value of the field.
void setOutputOnly(bool outputOnly=true)
Marks this field as a pure output field that is only changed by its module.
void attachField(OutputConnectorField *targetField)
This calls attachField(targetField, false).
Field * getDestinationField(size_t index)
Returns the destination field at index. Returns NULL if index is out of range.
FieldContainer * getFieldContainer() const
Returns the field container of the field (which may be NULL).
std::vector< Field * > _destinationFields
List of (target) fields that shall be set to the value of this field or that shall be notified only i...
void copyCStringValue(char *valueBuffer, MLint bufferSize)
Copies the value of the field (as character string) into the specified buffer valueBuffer.
std::vector< Field * > _sourceFields
List of (source) fields that will notify this field or that will copy their value to this field.
const std::string & getName() const
Returns the name of field.
void attachField(BaseField *targetField)
size_t getNumSourceFields()
Returns the number of source fields that could send notifications or value sets.
std::string _name
The name of this field.
virtual ~Field()
Destructor: Destroys a field and removes all connection to fields and sensors.
void detachAllFields()
Disconnects all source and target fields of this instance in both directions.
static void enableNotificationsGlobally(bool flag)
Enables or disables globally the notification mechanism for all fields and field sensors when field v...
void detachDestinationFields()
Disconnects all target fields of this instance in both directions.
virtual MLint isValidValue()
Returns true (=1) if the field's value is valid; otherwise, false (=0) is returned.
virtual void setStringValue(const std::string &value)=0
Sets the field value as string value.
void detachField(Field *targetField)
Disconnects connections between the target field targetField and this instance.
bool isOutputOnly() const
Returns whether this field is marked as a pure output field.
void detachFieldSensors()
Detaches all field sensors of this class instance in both directions.
void detachSourceField(Field *field)
Removes a source field from this instance. If not found, then this call does nothing.
virtual void touch(FieldSensor::Strength strength=FieldSensor::CHANGED)
Notifies all connected fields and field sensors.
void detachSourceFields()
Disconnects all source fields of this instance in both directions.
std::string getFullName() const
Returns 'fieldContainerType(instanceName).fieldName' if field container is available,...
Field * getSourceField(size_t index)
Returns the source field at index. Returns NULL if index is out of range.
std::vector< FieldSensor * > _sensors
List of field sensors.
static MLint & enableNotificationsCounterState()
Provides read/write access to the current counter state (see enableNotificationsGlobally(bool) ).
void attachSourceField(Field *field)
Inserts a field as source field in this instance, i.e., from now on *this might receive values and/or...
void detachFieldInternal(Field *field)
Only removes the given field from the destination list.
virtual void setValueFromField(const Field &field)
Sets the value of this field from the given field.
void attachFieldSensor(FieldSensor *sensor)
Attaches a field sensor sensor of this class instance in both directions.
void attachField(NotifyField *targetField)
bool areNotificationsEnabled()
Returns whether the notification mechanism for this field (e.g., when field values are set) is enable...
void attachField(SoNodeField *targetField)
void enableNotifications(bool flag)
Enables or disables notification of attached fields and field sensors when the field value is set or ...
static MLint _enableNotifications
Flag that disables the notification process of field (-sensors) globally.
Field without value for notifications.
Field to encapsulate a pointer to an output connector which represents a module output.
Field to encapsulate a pointer to an SoNode instance of OpenInventor.
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator '<<' for stream output of Field objects.
#define MLEXPORT
To export symbols from a DLL/shared object, we need to mark them with the MLEXPORT symbol.
#define ML_ABSTRACT_ROOT_CLASS_HEADER(className)
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...
Flags for internal usage.
unsigned int insideTouch
< Flag to suppress multiple notifications of fields, which otherwise could lead to endless loops.
unsigned int observersWereRemovedInsideTouch
< Flag that indicates that the sensor/destination fields lists contain NULL entries
unsigned int notifyAttachmentsFlag
< Flag to suppress the notification of connected fields and field sensors when field values are set.
unsigned int outputOnly
< Flag to mark this field as a pure output field (this is used by the MeVisLab IDE).