115 inline static label
nextVert(
const label,
const label,
const bool);
173 const label localFacei
190 const label vertPerCell,
191 const label facePerCell,
192 const label maxVertPerFace,
193 const word& cellModelName
247 const bool checkOnly,
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Base class for cellshape matchers (hexMatch, prismMatch, etc.). These are classes which given a mesh ...
const faceList & localFaces() const
const cellModel & model() const
virtual label nFacePerCell() const =0
labelListList pointFaceIndex_
pointFaceIndex[localVertI][localFacei] is index in localFace
labelList faceMap_
Map from local to mesh face numbering.
const word cellModelName_
CellModel name.
labelList edgeFaces_
Map from 'edge' to neighbouring faces.
const labelList & faceMap() const
virtual bool matches(const primitiveMesh &mesh, const label celli, cellShape &shape)=0
Like isA but also constructs a cellShape (if shape matches)
const labelList & faceLabels() const
label calcLocalFaces(const faceList &faces, const labelList &myFaces)
Calculates localFaces. Returns number of local vertices (or -1.
labelList pointMap_
Map from local to mesh vertex numbering.
labelList faceLabels_
After matching: holds mesh faces in cellmodel order.
static label nextVert(const label, const label, const bool)
Step along face either in righthand or lefthand direction.
virtual ~cellMatcher()=default
Destructor.
const cellModel * cellModelPtr_
virtual label faceHashValue() const =0
Hash value of all face sizes of this shape. Can be used for.
virtual label nMaxVertPerFace() const =0
cellMatcher & operator=(const cellMatcher &)=delete
No copy assignment.
virtual label nVertPerCell() const =0
const Map< label > & localPoint() const
virtual bool isA(const primitiveMesh &mesh, const label celli)=0
Exact match. Uses faceSizeMatch.
labelList vertLabels_
After matching: holds mesh vertices in cellmodel order.
const labelList & pointMap() const
const labelList & vertLabels() const
labelList faceSize_
Number of vertices per face in localFaces_.
const labelList & faceSize() const
virtual bool matchShape(const bool checkOnly, const faceList &faces, const labelList &faceOwner, const label celli, const labelList &myFaces)=0
Low level shape recognition. Return true if matches.
static label edgeKey(const label numVert, const label v0, const label v1)
Given start and end of edge generate unique key.
const labelListList & pointFaceIndex() const
virtual bool faceSizeMatch(const faceList &, const labelList &) const =0
Check whether number of face sizes match the shape.
label otherFace(const label numVert, const label v0, const label v1, const label localFacei) const
Given start,end of edge lookup both faces sharing it and return.
void calcEdgeAddressing(const label numVert)
Fill edge (start, end) to face number.
const labelList & edgeFaces() const
faceList localFaces_
Faces using local vertex numbering.
cellMatcher(const cellMatcher &)=delete
No copy construct.
void calcPointFaceIndex()
Fill vertex/face to index in face data structure.
Maps a geometry to a set of cell primitives.
An analytical geometric cellShape.
Cell-face mesh analysis engine.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)