24#ifndef _UIBHM_QUERY_H_
25#define _UIBHM_QUERY_H_
35template <
class Geometry>
57 virtual int numBorders()
const {
return _t->_B.size(); }
71 virtual size_t usedMemory()
const {
return _t->usedMemory(); }
78template <
class Geometry>
125 template <
class VertexF,
class QuadF>
126 void heStar(
int node, VertexF vf, QuadF qf,
bool addBorder)
const;
130template <
class Geometry>
181 Q_UNUSED(borderCurveIndex); Q_UNUSED(edgeIndex);
189 Q_UNUSED(cell); Q_UNUSED(edgeIndex); Q_UNUSED(nextEdgeIndex);
199 template <
class QueryF>
200 bool traverseCells(
int nodeIndex,
int cellId, QueryF f)
const;
202 template <
class QueryF>
203 bool traverseAroundFlowNode(
int nodeIndex, QueryF f)
const;
205 template <
class QueryF>
206 void traverseEdgeAdjacentCellsByNodeQuery(
int v1,
int v2, QueryF f)
const;
virtual void print(const GmLogCategory &logger, GmLogLevel level) const=0
virtual GmCell * borderTraverseNext(void *context, int *nextSideIndex) const=0
virtual GmCell * nextBorderCurveEdge(const GmCell *cell, int edgeIndex, int *nextEdgeIndex) const=0
virtual void edgeAdjacentCells(const GmCell *cell, int edgeIndex, QVector< GmCell * > &list) const=0
virtual size_t usedMemory() const=0
virtual void printParameters(const GmLogCategory &logger, GmLogLevel level) const=0
virtual void borderTraverseEnd(void *context) const=0
virtual GmCell * adjacentCell(const GmCell *cell, int sideIndex, int *adjSideIndex=NULL) const=0
virtual size_t printMemoryStatistics(const GmLogCategory &logger, GmLogLevel level) const=0
virtual int numBorders() const=0
virtual void nodeAdjacentNodes(int nodeIndex, QueryOptions options, QVector< int > &list) const=0
virtual bool isBorderNode(int nodeIndex) const=0
virtual void nodeAdjacentCells(int nodeIndex, QVector< GmCell * > &list) const=0
virtual bool hasElementsWithoutTopology() const=0
virtual void * borderTraverseStart(int borderId) const=0
virtual GmCell * firstBorderCurveEdge(int borderCurveIndex, int *edgeIndex) const=0
virtual int borderIndex(const GmCell *cell, int sideIndex) const=0
The basic class for topological queries using the UibhmTopology structure. Implements the GmCellMeshT...
Definition uibhmQuery.h:37
UibhmQuery(UibhmTopology< Geometry > *topology)
Constructor.
Definition uibhmQuery.h:47
The UibhmQuery especialization for solid meshes.
Definition uibhmQuery.h:132
UibhmSolidQuery(UibhmTopology< Geometry > *topology)
Constructor.
Definition uibhmQuery.h:135
The UibhmQuery especialization for surface meshes.
Definition uibhmQuery.h:80
UibhmSurfaceQuery(UibhmTopology< Geometry > *topology)
Constructor.
Definition uibhmQuery.h:83
Definition uibhmTopology.h:172
quint32 HalfSide
The integer type used to represent a half-side index.
Definition uibhmTopology.h:176
The context used by borderTraverseXxx()
Definition uibhmQuery.h:123
Declaration of the UibhmTopology familiy of classes.