Workspace 6.21.5
Public Member Functions | List of all members
NodeStateMapper Class Reference

Node mapper returning a particular node state as its value.

#include <Mesh/DataStructures/nodestatemapper.h>

Inheritance diagram for NodeStateMapper:
[legend]

Public Member Functions

 NodeStateMapper ()
 
 NodeStateMapper (const NodeStateMapper &mapper)
 
 ~NodeStateMapper () override
 
bool canSerialize () const override
 
NodeStateMapperclone () const override
 
Application::Memento::DatacreateMementoData (const MeshModelInterface &model) const override
 
const QString & getStateName () const
 
double getValue (const NodeHandle &node, Application::Memento::Data &mementoData) const override
 
VectorMapping getVectorMapping () const
 
bool load (const DataExecution::SerializedItem &item) override
 
NodeStateMapperoperator= (const NodeStateMapper &mapper)
 
bool save (DataExecution::SerializedItem &item) const override
 
void setStateName (const QString &name)
 
void setVectorMapping (VectorMapping mapping)
 
- Public Member Functions inherited from NodeMapper
bool canSerialize () const override
 
NodeMapperclone () const override=0
 
virtual Application::Memento::DatacreateMementoData (const MeshModelInterface &model) const =0
 
virtual double getValue (const NodeHandle &node, Application::Memento::Data &mementoData) const =0
 
bool load (const DataExecution::SerializedItem &item) override
 
void logText (const QString &msg) const
 
bool save (DataExecution::SerializedItem &item) const override
 
- Public Member Functions inherited from Clonable
virtual ~Clonable ()=default
 
virtual Clonableclone () const =0
 
- Public Member Functions inherited from Serialize
virtual ~Serialize ()=default
 
virtual bool canSerialize () const =0
 
virtual bool load (const SerializedItem &item)=0
 
virtual bool save (SerializedItem &item) const =0
 

Constructor & Destructor Documentation

◆ NodeStateMapper() [1/2]

The mapper is constructed with no state name set. The vector mapping defaults to mapping the vector magnitude.

See also
setStateName()

◆ NodeStateMapper() [2/2]

NodeStateMapper ( const NodeStateMapper mapper)

◆ ~NodeStateMapper()

~NodeStateMapper ( )
override

Member Function Documentation

◆ canSerialize()

bool canSerialize ( ) const
overridevirtual
Returns
True if this object can be serialized.

For objects that can be serialized, the save and load functions will be used to do the serialization. If this function returns false, both load() and save() must also return false.

Reimplemented from NodeMapper.

◆ clone()

NodeStateMapper * clone ( ) const
overridevirtual
Returns
A clone of this object.
Note
Subclasses would normally return their own type rather than the Clonable type. The C++ language rules allow a more derived type to be returned from a virtual function and the compiler will still treat it as a valid override.

Implements NodeMapper.

◆ createMementoData()

Application::Memento::Data * createMementoData ( const MeshModelInterface model) const
overridevirtual
Parameters
modelThe model that will be used for mapping nodes to values.
Returns
A memento object which client code cannot do anything useful with except pass it around. The memento is ultimately only useful to the getValue() function. It holds internal data the mapper will use to perform the required mapping.
Note
The memento can be considered valid for as long as model is not modified and the state name of the mapper remains the same. As soon as the state name or anything in model is changed, the caller should obtain a new memento.

Implements NodeMapper.

◆ getStateName()

const QString & getStateName ( ) const
Returns
The name of the state to map to a value.
See also
setStateName()

◆ getValue()

double getValue ( const NodeHandle node,
Application::Memento::Data mementoData 
) const
overridevirtual
Parameters
nodeThe node whose state should be mapped to a value.
mementoDataThe data from the memento created by a previous call to createMementoData(). It is used internally by this function to work out what value needs to be returned.
Returns
The value of the requested state from this node. If mementoData is invalid, which can happen if the requested node state is not in the model passed to createMementoData(), then this function returns 0.

Implements NodeMapper.

◆ getVectorMapping()

VectorMapping getVectorMapping ( ) const
Returns
The way vector states should be interpreted if the named state is a vector.
See also
setVectorMapping()

◆ load()

bool load ( const DataExecution::SerializedItem item)
overridevirtual
Parameters
itemSupplies the state to be loaded into this object.

This function will load the state of this object from item. For many object types, this is most easily implemented in terms of the object's input operator (>>).

It would be reasonable for subclass implementations to assume that the data provided in item is in the same form as would have been saved from a call to save.

Returns
If the state of the object could not be loaded, the function returns false. A return value of true implies that the object state was successfully loaded. If canSerialize() returns false, this function must do nothing except return false as well.

Reimplemented from NodeMapper.

◆ operator=()

NodeStateMapper & operator= ( const NodeStateMapper mapper)

◆ save()

bool save ( DataExecution::SerializedItem item) const
overridevirtual
Parameters
itemWhere to save the state of this object.

This function will serialise the object by saving it to item. For most object types, this is most easily implemented in terms of the object's output operator (<<).

It is allowable for an object to only serialize part of itself. This would be useful if the data it represents has a set of defaults and only those values different to the defaults need to be serialized. Such an implementation then needs to be careful how it handles the complimentary load member function.

Returns
If an object could not be serialised or if the underlying object type does not support serialisation, this function should return false. A return value of true implies that the object was successfully saved to item. If canSerialize() returns false, this function must do nothing except return false as well.

Reimplemented from NodeMapper.

◆ setStateName()

void setStateName ( const QString &  name)
Parameters
nameThe name of the state to be mapped to a value. The state can be any of the supported state types. Scalar doubles and integers are both returned directly. Values for vector states are returned according to the current setting returned by getVectorMapping(). As a special case, the node ID can be requested with the state name "id".
See also
getStateName(), setVectorMapping()

◆ setVectorMapping()

void setVectorMapping ( VectorMapping  mapping)
Parameters
mappingWhen the named state is a vector, mapping defines how to interpret that vector and map it into a single value.
See also
getVectorMapping()