ML Reference
ml::MatrixField Class Reference

Field to encapsulate a 4x4 matrix, same as Matrix4Field for backward compatibility. More...

#include <mlFields.h>

Inheritance diagram for ml::MatrixField:
ml::Field ml::Matrix4Field

Public Member Functions

 MatrixField ()=default
 Implements the runtime type system interface for this class. More...
 
 MatrixField (const std::string &name)
 Constructor; creates a field with a name to manage a 4x4 matrix. More...
 
void setStringValue (const std::string &stringValue) override
 Sets the field value to stringValue="a11 a12 ... a44". More...
 
void setMatrixValue (const Matrix4 &matrixValue)
 Sets the value of the field to matrixValue. More...
 
void setMatrix4Value (const Matrix4 &matrixValue)
 Sets the value of the field to matrixValue; same as setMatrixValue for symmetry to other fields. More...
 
void updateMatrix4Value (const Matrix4 &matrixValue)
 Sets the value of the field to matrixValue, but only touches the field if the new value is different from the old value. More...
 
std::string getStringValue () const override
 Returns the value of the field as a string value. More...
 
const Matrix4getMatrixValue () const
 Returns the value of the field. More...
 
const Matrix4getMatrix4Value () const
 Returns the value of the field; same as getMatrixValue for symmetry to other fields. More...
 
void setValue (const Matrix4 &matrixValue)
 Same as setMatrix4Value(). More...
 
void updateValue (const Matrix4 &matrixValue)
 Same as updateMatrix4Value(). More...
 
const Matrix4getValue () const
 Same as getMatrix4Value(). More...
 
- Public Member Functions inherited from ml::Field
 Field (const std::string &name=std::string())
 Constructor: Creates a field with name. More...
 
virtual ~Field ()
 Destructor: Destroys a field and removes all connection to fields and sensors. More...
 
FieldContainergetFieldContainer () const
 Returns the field container of the field (which may be NULL). More...
 
const std::string & getName () const
 Returns the name of field. More...
 
void setName (const std::string &name)
 Sets the name of field. Should be called only once after or while construction. More...
 
std::string getFullName () const
 Returns 'fieldContainerType(instanceName).fieldName' if field container is available, otherwise only the field name is returned. More...
 
bool isOutputOnly () const
 Returns whether this field is marked as a pure output field. More...
 
void setOutputOnly (bool outputOnly=true)
 Marks this field as a pure output field that is only changed by its module. More...
 
virtual MLint isValidValue ()
 Returns true (=1) if the field's value is valid; otherwise, false (=0) is returned. More...
 
void copyCStringValue (char *valueBuffer, MLint bufferSize)
 Copies the value of the field (as character string) into the specified buffer valueBuffer. More...
 
MLint getCStringValueSize ()
 Returns the length of the character string of the string value of the field. More...
 
void attachFieldSensor (FieldSensor *sensor)
 Attaches a field sensor sensor of this class instance in both directions. More...
 
void detachFieldSensor (FieldSensor *sensor)
 Detaches the field sensor sensor of this class instance in both directions. More...
 
void detachFieldSensors ()
 Detaches all field sensors of this class instance in both directions. More...
 
void attachField (OutputConnectorField *targetField)
 This calls attachField(targetField, false). More...
 
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. More...
 
void detachField (Field *targetField)
 Disconnects connections between the target field targetField and this instance. More...
 
void detachSourceFields ()
 Disconnects all source fields of this instance in both directions. More...
 
void detachDestinationFields ()
 Disconnects all target fields of this instance in both directions. More...
 
void detachAllFields ()
 Disconnects all source and target fields of this instance in both directions. More...
 
size_t getNumDestinationFields ()
 Returns the number of destination fields that could receive notifications or value sets. More...
 
FieldgetDestinationField (size_t index)
 Returns the destination field at index. Returns NULL if index is out of range. More...
 
size_t getNumSourceFields ()
 Returns the number of source fields that could send notifications or value sets. More...
 
FieldgetSourceField (size_t index)
 Returns the source field at index. Returns NULL if index is out of range. More...
 
virtual void touch (FieldSensor::Strength strength=FieldSensor::CHANGED)
 Notifies all connected fields and field sensors. More...
 
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. More...
 
bool areNotificationsEnabled ()
 Returns whether the notification mechanism for this field (e.g., when field values are set) is enabled (see enableNotifications(bool) ). More...
 

Protected Member Functions

void setValueFromField (const Field &field) override
 Reimplementation from Field that copies the field value more efficiently. More...
 
- 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. More...
 
void detachSourceField (Field *field)
 Removes a source field from this instance. If not found, then this call does nothing. More...
 
void detachFieldInternal (Field *field)
 Only removes the given field from the destination list. More...
 

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. More...
 
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. More...
 
static MLintenableNotificationsCounterState ()
 Provides read/write access to the current counter state (see enableNotificationsGlobally(bool) ). More...
 
- Protected Attributes inherited from ml::Field
std::string _name
 The name of this field. More...
 
std::vector< FieldSensor * > _sensors
 List of field sensors. More...
 
std::vector< Field * > _destinationFields
 List of (target) fields that shall be set to the value of this field or that shall be notified only if this field is changed or notified. More...
 
std::vector< Field * > _sourceFields
 List of (source) fields that will notify this field or that will copy their value to this field. More...
 
FieldContainer_fieldContainer
 The owning field container. More...
 
Flags _flags
 
- Static Protected Attributes inherited from ml::Field
static MLint _enableNotifications
 Flag that disables the notification process of field (-sensors) globally. More...
 

Detailed Description

Field to encapsulate a 4x4 matrix, same as Matrix4Field for backward compatibility.

Definition at line 1500 of file mlFields.h.

Constructor & Destructor Documentation

◆ MatrixField() [1/2]

ml::MatrixField::MatrixField ( )
default

Implements the runtime type system interface for this class.

Default constructor, do not use it.

◆ MatrixField() [2/2]

ml::MatrixField::MatrixField ( const std::string &  name)
explicit

Constructor; creates a field with a name to manage a 4x4 matrix.

Default value is the unit matrix.

Member Function Documentation

◆ getMatrix4Value()

const Matrix4& ml::MatrixField::getMatrix4Value ( ) const

Returns the value of the field; same as getMatrixValue for symmetry to other fields.

◆ getMatrixValue()

const Matrix4& ml::MatrixField::getMatrixValue ( ) const

Returns the value of the field.

◆ getStringValue()

std::string ml::MatrixField::getStringValue ( ) const
overridevirtual

Returns the value of the field as a string value.

setStringValue must be able to reinterpret this returned string correctly.

Implements ml::Field.

◆ getValue()

const Matrix4& ml::MatrixField::getValue ( ) const
inline

Same as getMatrix4Value().

Definition at line 1550 of file mlFields.h.

◆ setMatrix4Value()

void ml::MatrixField::setMatrix4Value ( const Matrix4 matrixValue)

Sets the value of the field to matrixValue; same as setMatrixValue for symmetry to other fields.

◆ setMatrixValue()

void ml::MatrixField::setMatrixValue ( const Matrix4 matrixValue)

Sets the value of the field to matrixValue.

◆ setStringValue()

void ml::MatrixField::setStringValue ( const std::string &  stringValue)
overridevirtual

Sets the field value to stringValue="a11 a12 ... a44".

If less than 16 valid numbers can be scanned in string, then all components are set to 0.

Implements ml::Field.

◆ setValue()

void ml::MatrixField::setValue ( const Matrix4 matrixValue)
inline

Same as setMatrix4Value().

Definition at line 1544 of file mlFields.h.

◆ setValueFromField()

void ml::MatrixField::setValueFromField ( const Field field)
overrideprotectedvirtual

Reimplementation from Field that copies the field value more efficiently.

Reimplemented from ml::Field.

◆ updateMatrix4Value()

void ml::MatrixField::updateMatrix4Value ( const Matrix4 matrixValue)

Sets the value of the field to matrixValue, but only touches the field if the new value is different from the old value.

Note that values must be identical to avoid touching the field!

◆ updateValue()

void ml::MatrixField::updateValue ( const Matrix4 matrixValue)
inline

Same as updateMatrix4Value().

Definition at line 1547 of file mlFields.h.


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