GemaMesh
The GeMA Mesh Plugin
Loading...
Searching...
No Matches
UibhmSurfaceQuery< Geometry > Class Template Reference

The UibhmQuery especialization for surface meshes. More...

#include <uibhmQuery.h>

Inheritance diagram for UibhmSurfaceQuery< Geometry >:
Collaboration diagram for UibhmSurfaceQuery< Geometry >:

Classes

struct  TraverseContext
 The context used by borderTraverseXxx() More...
 

Public Member Functions

 UibhmSurfaceQuery (UibhmTopology< Geometry > *topology)
 Constructor.
 
virtual void nodeAdjacentNodes (int nodeIndex, QueryOptions options, QVector< int > &list) const
 
virtual void nodeAdjacentCells (int nodeIndex, QVector< GmCell * > &list) const
 
virtual void nodeAdjacentCells (int nodeIndex, QVector< const GmCell * > &list) const
 
virtual void edgeAdjacentCells (const GmCell *cell, int edgeIndex, QVector< GmCell * > &list) const
 
virtual void edgeAdjacentCells (const GmCell *cell, int edgeIndex, QVector< const GmCell * > &list) const
 
virtual void edgeAdjacentCells (int node1, int node2, QVector< GmCell * > &list) const
 
virtual void edgeAdjacentCells (int node1, int node2, QVector< const GmCell * > &list) const
 
virtual GmCellfirstBorderCurveEdge (int borderCurveIndex, int *edgeIndex) const
 
virtual GmCellnextBorderCurveEdge (const GmCell *cell, int edgeIndex, int *nextEdgeIndex) const
 
virtual void * borderTraverseStart (int borderId) const
 
virtual GmCellborderTraverseNext (void *context, int *nextSideIndex) const
 
virtual void borderTraverseEnd (void *context) const
 
- Public Member Functions inherited from UibhmQuery< Geometry >
 UibhmQuery (UibhmTopology< Geometry > *topology)
 Constructor.
 
virtual bool hasElementsWithoutTopology () const
 
virtual GmCelladjacentCell (const GmCell *cell, int sideIndex, int *adjSideIndex=NULL) const
 
virtual bool isBorderNode (int nodeIndex) const
 
virtual int numBorders () const
 
virtual int borderIndex (const GmCell *cell, int sideIndex) const
 
virtual void printParameters (const GmLogCategory &logger, GmLogLevel level) const
 
virtual void print (const GmLogCategory &logger, GmLogLevel level) const
 
virtual size_t printMemoryStatistics (const GmLogCategory &logger, GmLogLevel level) const
 
virtual size_t usedMemory () const
 
- Public Member Functions inherited from GmCellMeshTopology

Private Member Functions

template<class VertexF , class QuadF >
void heStar (int node, VertexF vf, QuadF qf, bool addBorder) const
 Helper function used to traverse the set of outgoing half-edges from the given node, calling vf(he, incoming) for each one. The called function can then process the half-edge accordingly (adding its start node or cell to a result list, for example).
 

Additional Inherited Members

- Public Types inherited from UibhmQuery< Geometry >
using Topology = UibhmTopology<Geometry>
 
using HalfSide = typename Topology::HalfSide
 
- Public Types inherited from GmCellMeshTopology
enum  QueryOptions
 
- Public Attributes inherited from GmCellMeshTopology
 QSTAR
 
- Protected Attributes inherited from UibhmQuery< Geometry >
UibhmTopology< Geometry > * _t
 

Detailed Description

template<class Geometry>
class UibhmSurfaceQuery< Geometry >

The UibhmQuery especialization for surface meshes.

Member Function Documentation

◆ borderTraverseEnd()

template<class Geometry >
void UibhmSurfaceQuery< Geometry >::borderTraverseEnd ( void * context) const
virtual

Implements GmCellMeshTopology.

◆ borderTraverseNext()

template<class Geometry >
GmCell * UibhmSurfaceQuery< Geometry >::borderTraverseNext ( void * context,
int * nextSideIndex ) const
virtual

Implements GmCellMeshTopology.

◆ borderTraverseStart()

template<class Geometry >
void * UibhmSurfaceQuery< Geometry >::borderTraverseStart ( int borderId) const
virtual

Implements GmCellMeshTopology.

◆ edgeAdjacentCells() [1/4]

template<class Geometry >
virtual void UibhmSurfaceQuery< Geometry >::edgeAdjacentCells ( const GmCell * cell,
int edgeIndex,
QVector< const GmCell * > & list ) const
inlinevirtual

Implements GmCellMeshTopology.

◆ edgeAdjacentCells() [2/4]

template<class Geometry >
void UibhmSurfaceQuery< Geometry >::edgeAdjacentCells ( const GmCell * cell,
int edgeIndex,
QVector< GmCell * > & list ) const
virtual

Implements GmCellMeshTopology.

◆ edgeAdjacentCells() [3/4]

template<class Geometry >
virtual void UibhmSurfaceQuery< Geometry >::edgeAdjacentCells ( int node1,
int node2,
QVector< const GmCell * > & list ) const
inlinevirtual

Implements GmCellMeshTopology.

◆ edgeAdjacentCells() [4/4]

template<class Geometry >
void UibhmSurfaceQuery< Geometry >::edgeAdjacentCells ( int node1,
int node2,
QVector< GmCell * > & list ) const
virtual

Implements GmCellMeshTopology.

◆ firstBorderCurveEdge()

template<class Geometry >
GmCell * UibhmSurfaceQuery< Geometry >::firstBorderCurveEdge ( int borderCurveIndex,
int * edgeIndex ) const
virtual

Implements GmCellMeshTopology.

◆ heStar()

template<class Geometry >
template<class VertexF , class QuadF >
void UibhmSurfaceQuery< Geometry >::heStar ( int node,
VertexF vf,
QuadF qf,
bool addBorder ) const
private

Helper function used to traverse the set of outgoing half-edges from the given node, calling vf(he, incoming) for each one. The called function can then process the half-edge accordingly (adding its start node or cell to a result list, for example).

The addBorder flag states that if the traversal loop ends in a border, that incoming half-edge should also be processed through vf(). In that case, the incoming flag in th call to vf() will be set to true.

For nodes that only belong to strange elements, returns without any further processing. For other nodes (quadratic), calls qf(he, mid) once. Keep in mind that this can be a mid surface node and in this case he will store the element id only and the mid flag in the call to qf() will be set to true. It also handles special additional dof nodes for interface elements.

◆ nextBorderCurveEdge()

template<class Geometry >
GmCell * UibhmSurfaceQuery< Geometry >::nextBorderCurveEdge ( const GmCell * cell,
int edgeIndex,
int * nextEdgeIndex ) const
virtual

Implements GmCellMeshTopology.

◆ nodeAdjacentCells() [1/2]

template<class Geometry >
virtual void UibhmSurfaceQuery< Geometry >::nodeAdjacentCells ( int nodeIndex,
QVector< const GmCell * > & list ) const
inlinevirtual

Implements GmCellMeshTopology.

◆ nodeAdjacentCells() [2/2]

template<class Geometry >
void UibhmSurfaceQuery< Geometry >::nodeAdjacentCells ( int nodeIndex,
QVector< GmCell * > & list ) const
virtual

Implements GmCellMeshTopology.

◆ nodeAdjacentNodes()

template<class Geometry >
void UibhmSurfaceQuery< Geometry >::nodeAdjacentNodes ( int nodeIndex,
QueryOptions options,
QVector< int > & list ) const
virtual

Implements GmCellMeshTopology.


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