List of cells interface. More...
#include <MeshVizXLM/mesh/topology/MiTopology.h>
Public Member Functions | |
virtual | ~MiTopology () |
virtual size_t | getTimeStamp () const =0 |
virtual bool | hasDeadCells () const |
Protected Member Functions | |
virtual std::ostream & | toStream (std::ostream &s) const |
Friends | |
std::ostream & | operator<< (std::ostream &s, const MiTopology &topo) |
A generic abstract interface for a mesh topology.
The implementation of all the methods of this class must be thread-safe because it might be called concurrently by multiple threads. If the implementation can't be thread-safe, MeshViz XLM must be forced to use only 1 thread. It can be done by calling MiMeshViz::init(1) or MoMeshViz::init(1) or setting the parallel argument to false for each extractor instantiation. For instance by calling MiSkinExtractUnstructured::getNewInstance(&mesh, false);
virtual MiTopology::~MiTopology | ( | ) | [inline, virtual] |
virtual size_t MiTopology::getTimeStamp | ( | ) | const [pure virtual] |
Returns for this topology a unique time stamp across all topologies in the application.
When the content of the topology changes, the time stamp must increase. The time stamp allows extractors to identify this topology and to be aware of any changes to it.
virtual bool MiTopology::hasDeadCells | ( | ) | const [inline, virtual] |
Returns true if the topology contains dead cells.
When false, the cells traversal can be optimized by not testing the isDead() method of each individual cells. The default implementation returns always false.
virtual std::ostream& MiTopology::toStream | ( | std::ostream & | s | ) | const [inline, protected, virtual] |
Performs an output operation on a stream which is returned afterward. This method is protected since only called by the output operator <<. This method is not pure virtual and output by default the geometry and topology of a mesh. Whenever a different output is needed, this method can be implemented in the subclass to get a different output format. No std::ostream& operator << needs to be defined in any subclass. This allows you to benefit from the virtual inheritance when using the output operator on an abstract class.
Reimplemented in MiLineTopologyExplicitI, MiSurfaceTopologyExplicitI, MiTopologyIj, and MiTopologyIjk.
std::ostream& operator<< | ( | std::ostream & | s, | |
const MiTopology & | topo | |||
) | [friend] |
Outputs the mesh to a stream using the toStream protected method implemented in all derived classes.