Workspace 6.21.5
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
MeshElementsInterface Class Referenceabstract

An interface to the elements stored behind a MeshModelInterface.

#include <Mesh/DataStructures/MeshModelInterface/meshelementsinterface.h>

Inheritance diagram for MeshElementsInterface:
[legend]

Classes

class  const_iterator
 A const iterator for elements. More...
 
class  iterator
 A non-const iterator for elements. More...
 

Public Types

enum  ContiguousDataAccessType { DirectBufferAccess , CopiedBufferAccess }
 The type of access that a particular implementation provides to contiguous data. More...
 
using int_type = MeshModelInterface::int_type
 
using ItemHandleListType = ElementHandleList
 
using ItemHandleType = ElementHandle
 
using size_type = MeshModelInterface::size_type
 
using StateHandleListType = ElementStateHandleList
 
using StateHandleType = ElementStateHandle
 

Public Member Functions

ElementHandle add (const NodeHandle &node0, const NodeHandle &node1)
 
ElementHandle add (const NodeHandle &node0, const NodeHandle &node1, const NodeHandle &node2)
 
ElementHandle add (const NodeHandle &node0, const NodeHandle &node1, const NodeHandle &node2, const NodeHandle &node3)
 
ElementHandle add (const NodeHandle &node0, const NodeHandle &node1, const NodeHandle &node2, const NodeHandle &node3, const NodeHandle &node4, const NodeHandle &node5, const NodeHandle &node6, const NodeHandle &node7)
 
virtual ElementHandle add (const NodeHandleList &nodes)=0
 
const ElementStateHandleaddState (const QString &name, const DataExecution::DataObject &defaultValue)
 
template<typename T >
const ElementStateHandleaddState (const QString &name, const T &defaultValue)
 
iterator begin ()
 
const_iterator begin () const
 
virtual bool canAddState (const DataExecution::DataObject &defaultValue)
 
virtual bool canRemoveState (const ElementStateHandle &state)
 
virtual void clear ()=0
 
virtual bool digestContiguousFloatStateData (const ElementStateHandle &state, std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const double *data)> digestFunc) const
 
virtual bool digestContiguousIntegerStateData (const ElementStateHandle &state, std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const int_type *data)> digestFunc) const
 
virtual bool digestContiguousNodeIndexData (std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const ItemHandle::size_type *data)> digestFunc) const
 
virtual bool digestContiguousUInt16StateData (const ElementStateHandle &state, std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const quint16 *data)> digestFunc) const
 
virtual bool digestContiguousUInt8StateData (const ElementStateHandle &state, std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const quint8 *data)> digestFunc) const
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
bool ensureAllStatesSupported (const ElementStateHandleList &states)
 
virtual iterator erase (const iterator &position)=0
 
ElementStateHandleList getAllStateHandles () const
 
virtual ContiguousDataAccessType getContiguousDataAccessType () const
 
const ElementType::TypegetElementType () const
 
virtual NodeHandle getNode (const ElementHandle &element, size_type index) const =0
 
virtual int getNodeIndex (const ElementHandle &element, const NodeHandle &node) const
 
virtual bool getNodes (const ElementHandle &element, NodeHandleList &nodes) const =0
 
bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, DataExecution::DataObject &result)
 
bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, DataExecution::DataObject &result) const
 
virtual bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, double &result) const
 
virtual bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, int_type &result) const
 
virtual bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, quint16 &result) const
 
virtual bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, quint8 &result) const
 
virtual bool getState (const ElementHandle &elementHandle, const ElementStateHandle &state, Vector3d &result) const
 
const ElementStateHandlegetStateHandle (const QString &name) const
 
bool hasState (const QString &name) const
 
virtual bool isAttached (const ElementHandle &element, const NodeHandle &node) const
 
virtual bool isStateTypeSupported (const DataExecution::DataFactory &dataFactory) const =0
 
virtual bool isValid () const
 
virtual bool load (MeshSerializer &serializer)
 
virtual void remove (const ElementHandle &elementHandle)=0
 
bool removeAllStates ()
 
bool removeState (const ElementStateHandle &state)
 
bool removeState (const QString &name)
 
bool renameState (const QString &from, const QString &to)
 
virtual void reserve (size_type n)
 
virtual bool save (MeshSerializer &serializer, const NodeHandleIndexHash &nodeIds) const
 
virtual bool setNode (const ElementHandle &element, const NodeHandle &node, size_type index)=0
 
virtual bool setNodes (const ElementHandle &element, const NodeHandleList &nodes)=0
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, const DataExecution::DataObject &value)=0
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, const Vector3d &value)
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, double value)
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, int_type value)
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, quint16 value)
 
virtual bool setState (const ElementHandle &elementHandle, const ElementStateHandle &state, quint8 value)
 
virtual size_type size () const =0
 

Static Public Member Functions

static MeshElementsInterfacegetNullMeshElementsInterface ()
 

Protected Member Functions

 MeshElementsInterface (const ElementType::Type &type)
 
 MeshElementsInterface (const MeshElementsInterface &)
 
virtual ~MeshElementsInterface ()
 
virtual ElementStateHandleaddStateToImplementation (const QString &name, const DataExecution::DataObject &defaultValue)=0
 
virtual ElementHandle advance (const ElementHandle &elementHandle, size_type n) const =0
 
virtual ElementHandle beginHandle () const
 
iterator createIterator (const ElementHandle &handle) const
 
virtual ElementHandle endHandle () const
 
virtual bool getStateImpl (const ElementHandle &elementHandle, const ElementStateHandle &state, DataExecution::DataObject &result) const =0
 
virtual bool getStateImpl (const ElementHandle &elementHandle, const ElementStateHandle &state, DataExecution::DataObject &result)=0
 
MeshElementsInterfaceoperator= (const MeshElementsInterface &)
 
bool registerExistingState (MeshModelInterface::size_type index, const QString &name, const DataExecution::DataObject &defaultValue)
 
virtual bool removeStateFromImplementation (const ElementStateHandle &state)=0
 
virtual bool stateBeingRenamed (const ElementStateHandle &state, const QString &to)
 

Member Typedef Documentation

◆ int_type

◆ ItemHandleListType

using ItemHandleListType = ElementHandleList

◆ ItemHandleType

MeshNodesInterface and MeshElementsInterface both define these to simplify templates that operate on both in a similar way.

◆ size_type

◆ StateHandleListType

using StateHandleListType = ElementStateHandleList

◆ StateHandleType

Member Enumeration Documentation

◆ ContiguousDataAccessType

Not all interfaces support direct access to contiguously stored data, either because their data storage uses alternative in-memory container types, or because it stores data out-of-memory.

Enumerator
DirectBufferAccess 
CopiedBufferAccess 

Constructor & Destructor Documentation

◆ MeshElementsInterface() [1/2]

MeshElementsInterface ( const ElementType::Type type)
protected

◆ MeshElementsInterface() [2/2]

MeshElementsInterface ( const MeshElementsInterface other)
protected

◆ ~MeshElementsInterface()

~MeshElementsInterface ( )
protectedvirtual

Member Function Documentation

◆ add() [1/5]

ElementHandle add ( const NodeHandle node0,
const NodeHandle node1 
)
inline

◆ add() [2/5]

ElementHandle add ( const NodeHandle node0,
const NodeHandle node1,
const NodeHandle node2 
)
inline

◆ add() [3/5]

ElementHandle add ( const NodeHandle node0,
const NodeHandle node1,
const NodeHandle node2,
const NodeHandle node3 
)
inline

◆ add() [4/5]

ElementHandle add ( const NodeHandle node0,
const NodeHandle node1,
const NodeHandle node2,
const NodeHandle node3,
const NodeHandle node4,
const NodeHandle node5,
const NodeHandle node6,
const NodeHandle node7 
)
inline

◆ add() [5/5]

virtual ElementHandle add ( const NodeHandleList &  nodes)
pure virtual

◆ addState() [1/2]

const ElementStateHandle & addState ( const QString &  name,
const DataExecution::DataObject defaultValue 
)
Parameters
nameThe name of the state being added.
defaultValueA default value that must support copy construction.

If an element state for elementType already exists with name or defaultValue is not clone-able the add will fail.

Returns
The newly added state or an invalid state if it could not be added.

◆ addState() [2/2]

const ElementStateHandle & addState ( const QString &  name,
const T &  defaultValue 
)
Parameters
nameThe name of the state being added.
defaultValueA default value that must be clone-able.

If an element state already exists with name or defaultValue is not clone-able the add will fail.

Returns
The newly added state or an invalid state if it could not be added.

NOTE: It is highly recommended that integer states are added using addState<MeshModelInterface::int_type>() to ensure consistencies across CPU architecture and OSs. double and Vector3d are also preferred as native types

◆ addStateToImplementation()

virtual ElementStateHandle * addStateToImplementation ( const QString &  name,
const DataExecution::DataObject defaultValue 
)
protectedpure virtual
Parameters
nameName of the state
defaultValueA default value for this state

Derived classes must implement this method, returning the handle they will use to refer to this state. name and defaultValue are only passed to the derived class in case it also wants to do something with these parameters. The base class already stores these so most implementations will probably ignore them and simply worry about the handle.

Returns
An new ElementStateHandle with the index the implementation has associated with this state and the dataFactory of defaultValue.getDataFactory(). The caller will take ownership of this newed object. The indices assigned to states by the derived class do not have to be unique across all states or even all states for a particular a\ elementType but must be unquie amongst all states of a given DataFactory of a given ElementType::Type. Hence the dataFactory and ElementType together form the unique ID. If the state could not be added a NULL pointer should be returned.
See also
isStateTypeSupported

Implemented in Hdf5MeshElementsInterface, FilteredMeshElementsInterface, LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, and StreamlinedMeshElementsInterface< T >.

◆ advance()

virtual ElementHandle advance ( const ElementHandle elementHandle,
size_type  n 
) const
protectedpure virtual

◆ begin() [1/2]

◆ begin() [2/2]

MeshElementsInterface::const_iterator begin ( ) const
inline

◆ beginHandle()

ElementHandle beginHandle ( ) const
inlineprotectedvirtual

◆ canAddState()

bool canAddState ( const DataExecution::DataObject defaultValue)
virtual
Returns
True if allowed to add state, false otherwise.

◆ canRemoveState()

bool canRemoveState ( const ElementStateHandle state)
virtual
Returns
True if allowed to remove state, false otherwise.

◆ clear()

virtual void clear ( )
pure virtual

◆ createIterator()

MeshElementsInterface::iterator createIterator ( const ElementHandle handle) const
protected

◆ digestContiguousFloatStateData()

bool digestContiguousFloatStateData ( const ElementStateHandle state,
std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const double *data)>  digestFunc 
) const
virtual

◆ digestContiguousIntegerStateData()

bool digestContiguousIntegerStateData ( const ElementStateHandle state,
std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const int_type *data)>  digestFunc 
) const
virtual

◆ digestContiguousNodeIndexData()

bool digestContiguousNodeIndexData ( std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const ItemHandle::size_type *data)>  digestFunc) const
virtual
Parameters
digestFunc
Returns

◆ digestContiguousUInt16StateData()

bool digestContiguousUInt16StateData ( const ElementStateHandle state,
std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const quint16 *data)>  digestFunc 
) const
virtual

◆ digestContiguousUInt8StateData()

bool digestContiguousUInt8StateData ( const ElementStateHandle state,
std::function< bool(size_type numElems, size_type nodesPerElem, size_type stride, const quint8 *data)>  digestFunc 
) const
virtual

◆ empty()

bool empty ( ) const
inline

Default implmentation simply checks size(), derived classes should override if something more efficient is possible.

◆ end() [1/2]

◆ end() [2/2]

◆ endHandle()

ElementHandle endHandle ( ) const
inlineprotectedvirtual

◆ ensureAllStatesSupported()

bool ensureAllStatesSupported ( const ElementStateHandleList &  states)
Returns
true if all supplied states now exist on the interface

◆ erase()

virtual iterator erase ( const iterator position)
pure virtual

◆ getAllStateHandles()

ElementStateHandleList getAllStateHandles ( ) const

◆ getContiguousDataAccessType()

MeshElementsInterface::ContiguousDataAccessType getContiguousDataAccessType ( ) const
virtual

◆ getElementType()

const ElementType::Type & getElementType ( ) const

◆ getNode()

virtual NodeHandle getNode ( const ElementHandle element,
size_type  index 
) const
pure virtual

◆ getNodeIndex()

int getNodeIndex ( const ElementHandle element,
const NodeHandle node 
) const
virtual
Parameters
elementThe element handle we're requesting the node for
nodeDoes this element contain this node
Returns
The index of this node or -1 if the node is not used by this element

Reimplemented in LodMeshTrianglesInterface.

◆ getNodes()

virtual bool getNodes ( const ElementHandle element,
NodeHandleList &  nodes 
) const
pure virtual

◆ getNullMeshElementsInterface()

MeshElementsInterface & getNullMeshElementsInterface ( )
static
Returns
A concrete class that can be returned if a MeshElementsInterface of an invalid type is requested
See also
getElements

◆ getState() [1/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
DataExecution::DataObject result 
)
inline
Parameters
elementHandleThe element we're requesting the state of
stateThe state we're requesting
resultA DataObject to store the result in (must be of type state.getDataObject() unless the implementation can convert)

This method calls the pure virtual getStateImpl()

See also
getState

◆ getState() [2/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
DataExecution::DataObject result 
) const
inline
Parameters
elementHandleThe element we're requesting the state of
stateThe state we're requesting
resultA DataObject to store the result in (must be of type state.getDataObject() unless the implementation can convert)

This method calls the pure virtual getStateImpl() const and ensures that the returned data is not shared (making it logically const).

As this is a const method the data held by result is guaranteed to be owned by result and not be a shared reference to data held by the implementation. As a result of this it may be less expensive to call the non-const version of this method if possible to avoid cloning data.

◆ getState() [3/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
double &  result 
) const
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getState() [4/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
int_type result 
) const
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getState() [5/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
quint16 &  result 
) const
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getState() [6/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
quint8 &  result 
) const
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getState() [7/7]

bool getState ( const ElementHandle elementHandle,
const ElementStateHandle state,
Vector3d result 
) const
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getStateHandle()

const ElementStateHandle & getStateHandle ( const QString &  name) const

◆ getStateImpl() [1/2]

virtual bool getStateImpl ( const ElementHandle elementHandle,
const ElementStateHandle state,
DataExecution::DataObject result 
) const
protectedpure virtual
Parameters
elementHandleThe element we're requesting the state of
stateThe state we're requesting
resultA DataObject to store the result in (must be of type state.getDataObject() unless the implementation can convert)

Should be implmented as the const equivalent to getState()

This method is free to return shared data in result as it is only ever called by the public const getState method which will clone any shared data. As this is the case derived class should be able to implement the non-const getState() pure virtual as a simple call to this method as long as the only non-const thing this method does is return shared data.

See also
getState

Implemented in FilteredMeshElementsInterface, LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ getStateImpl() [2/2]

virtual bool getStateImpl ( const ElementHandle elementHandle,
const ElementStateHandle state,
DataExecution::DataObject result 
)
protectedpure virtual
Parameters
elementHandleThe element we're requesting the state of
stateThe state we're requesting
resultA DataObject to store the result in (must be of type state.getDataObject() unless the implementation can convert)
See also
getState

Implemented in FilteredMeshElementsInterface, LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ hasState()

bool hasState ( const QString &  name) const

◆ isAttached()

bool isAttached ( const ElementHandle element,
const NodeHandle node 
) const
virtual
Precondition
MeshNodesInterface::generateAttachmentInfo() must have already been called successfully for this element type on the node interface of the model this element interface belongs to.
Parameters
nodeThe node we're querying the attachment of
elementThe element interface we're querying the attachment of
See also
MeshNodesInterface::generateAttachmentInfo, MeshNodesInterface::discardAttachmentInfo, MeshNodesInterface::attachmentInfoExistsFor, MeshNodesInterface::getAttached

◆ isStateTypeSupported()

virtual bool isStateTypeSupported ( const DataExecution::DataFactory dataFactory) const
pure virtual

◆ isValid()

bool isValid ( ) const
inlinevirtual
Returns
If this is a valid elements interface

Derived classes should not need to re-implement this method, this method should only be returning false when called on the null interface returned by get getNullMeshElementsInterface()

See also
getNullMeshElementsInterface

◆ load()

bool load ( MeshSerializer serializer)
virtual

◆ operator=()

MeshElementsInterface & operator= ( const MeshElementsInterface other)
protected

◆ registerExistingState()

bool registerExistingState ( MeshModelInterface::size_type  index,
const QString &  name,
const DataExecution::DataObject defaultValue 
)
protected
Parameters
indexThe index of the existing state
nameThe name of the existing state
defaultValueThe default value of the existing state

Can be called by derived class is they need the base class to be aware of an existing state that wasn't added by a call to addState(). An example of which is when a MeshElementsInterface is acting as a wrapper for an existing mesh data structure that already contains states.

See also
addStateToImplementation

◆ remove()

virtual void remove ( const ElementHandle elementHandle)
pure virtual

◆ removeAllStates()

bool removeAllStates ( )

◆ removeState() [1/2]

bool removeState ( const ElementStateHandle state)
Postcondition
state will be an invalid handle after this call has been made and should no longer be used by the calling code.
Returns
true if succeed in removing state, false otherwise

◆ removeState() [2/2]

bool removeState ( const QString &  name)

◆ removeStateFromImplementation()

virtual bool removeStateFromImplementation ( const ElementStateHandle state)
protectedpure virtual

◆ renameState()

bool renameState ( const QString &  from,
const QString &  to 
)

◆ reserve()

void reserve ( MeshElementsInterface::size_type  n)
inlinevirtual

Default implementation does nothing

Reimplemented in Hdf5MeshElementsInterface, and StreamlinedMeshElementsInterface< T >.

◆ save()

bool save ( MeshSerializer serializer,
const NodeHandleIndexHash nodeIds 
) const
virtual

◆ setNode()

virtual bool setNode ( const ElementHandle element,
const NodeHandle node,
size_type  index 
)
pure virtual

◆ setNodes()

virtual bool setNodes ( const ElementHandle element,
const NodeHandleList &  nodes 
)
pure virtual

◆ setState() [1/6]

virtual bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
const DataExecution::DataObject value 
)
pure virtual
Parameters
elementHandleThe element we're setting the state of
stateThe state we're setting
valueA DataObject containing the data to set (must be of type state.getDataObject() unless the implementation can convert)

Implemented in FilteredMeshElementsInterface, LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ setState() [2/6]

bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
const Vector3d value 
)
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ setState() [3/6]

bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
double  value 
)
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ setState() [4/6]

bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
int_type  value 
)
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in LodMeshTrianglesInterface, PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >, StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ setState() [5/6]

bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
quint16  value 
)
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ setState() [6/6]

bool setState ( const ElementHandle elementHandle,
const ElementStateHandle state,
quint8  value 
)
virtual

Convenience function for common type that avoids client needing to use a DataObject. This method still uses an internal TypedObject to call the implementations corresponding method unless the implementation overrides this virtual method and handles this type directly.

Reimplemented in StreamlinedMeshElementsInterface< T >, and Hdf5MeshElementsInterface.

◆ size()

virtual size_type size ( ) const
pure virtual

◆ stateBeingRenamed()

bool stateBeingRenamed ( const ElementStateHandle state,
const QString &  to 
)
inlineprotectedvirtual

Derived classes can implement this method to handle when a state is being renamed by the base class. As the state names are stored by the base class, in most cases the derived implementation wont need to do anything unless it is also storing the names.

Returns
true if the state rename can proceed or false if the derived class prohibits this name change.

Reimplemented in PrimevalMeshElementsInterfaceBase< T >, PrimevalMeshElementsInterfaceBase< Mesh::ShellElementList >, PrimevalMeshElementsInterfaceBase< Mesh::SegmentList >, and PrimevalMeshElementsInterfaceBase< Mesh::VolumeElementList >.