GemaMesh
The GeMA Mesh Plugin
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GmpMeshBase< Mesh, CoordAcc, CoordGhostAcc, Data, CellData, Vector > Class Template Reference

Basic class for a plugin mesh. Implements the needed functions for a GmMesh interface, storing node values. More...

#include <gmpMeshBase.h>

Inheritance diagram for GmpMeshBase< Mesh, CoordAcc, CoordGhostAcc, Data, CellData, Vector >:
Inheritance graph
[legend]
Collaboration diagram for GmpMeshBase< Mesh, CoordAcc, CoordGhostAcc, Data, CellData, Vector >:
Collaboration graph
[legend]

Public Member Functions

 GmpMeshBase (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
 Constructor. Will be called by the plugin loading code.
 
virtual ~GmpMeshBase ()
 Destructor.
 
virtual const char * pluginName () const
 
virtual const char * pluginType () const
 
virtual bool hasCapability (QString capabilityName) const
 
virtual void pushProxy (lua_State *L, const GmLogCategory &logger)
 
virtual bool loadPrivateData (LuaTable &table)
 See behaviour comments on the base class. When inheriting from this class, the idea is that this function does not need to be overriden. Only cellData() and cellAllocator() should be extended.
 
virtual GmValueInfonodeCoordInfo () const
 
virtual GmValueAccessornodeCoordAccessor (Unit desiredUnit, const GmLogCategory &logger) const
 
virtual int numNodes () const
 
virtual int numGhostNodes () const
 
virtual const QMap< QString, GmNodeSet * > & nodeSets () const
 
virtual int addNodes (int numNodes)
 
virtual int addGhostNodes (int numNodes)
 
virtual void clear ()
 
virtual CellData * cellData ()
 Virtual function that should be overriden for derived classes that need to load cells.
 
virtual size_t nodeMemory () const
 
virtual size_t nodeSetsMemory () const
 

Protected Member Functions

virtual GmpMeshLoaderCellAllocator cellAllocator (bool ghostSupport, bool hSupport) const
 Virtual function that should be overriden for derived classes that need to load cells. The ghostSupport parameter defines if ghost nodes support is desired or not. The hSupport is used for specifying if support for hierarchical elements is required (meshes must have eithar "normal" elements or hierarchical elements). If set to true, ghostSupport must also be set to true.
 
virtual GmpMeshLoader< Vector > * meshLoader ()
 Returns the mesh loader used to load mesh data. This function should be replaced for using a custom mesh loader.
 
virtual int controlMapStateItemType ()
 
virtual bool addStateGeometryData (GmStateDump *state, int groupId)
 
virtual bool fillDumpControlMapData (QVariantMap *map, const GmLogCategory &logger)
 
virtual bool dumpControlMapDataLoaded (QVariantMap *map, const GmLogCategory &logger)
 

Protected Attributes

Data _nd
 The complete node data.
 

Detailed Description

template<class Mesh, class CoordAcc, class CoordGhostAcc, class Data, class CellData, template< class > class Vector>
class GmpMeshBase< Mesh, CoordAcc, CoordGhostAcc, Data, CellData, Vector >

Basic class for a plugin mesh. Implements the needed functions for a GmMesh interface, storing node values.

This class is a template as an implementation convenience. Since the base class is a type "T" that can be GmMesh, GmCellMesh or other derived interfaces, GmpMeshBase can be used to provide node storing for node only interfaces (GmMesh) or cell based interfaces (GmCellMesh).

The downside of having GmpMeshBase be a template is the need to implement all its methods in the header file, but that is minimized by the use of a loader auxiliary class.

When inheriting from this class, if a custom loader is needed to load additional mesh information, the meshLoader() virtual function can be replaced to provide a new loader derived from GmpMeshLoader.


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