35 const Foam::label Foam::tetWedgeMatcher::vertPerCell = 5;
36 const Foam::label Foam::tetWedgeMatcher::facePerCell = 4;
37 const Foam::label Foam::tetWedgeMatcher::maxVertPerFace = 4;
85 if (numVert != vertPerCell)
118 for (
label face0vert0 = 0; face0vert0 <
faceSize_[face0I]; face0vert0++)
148 if (faceSize_[face1I] != 3)
235 if (myFaces.
size() != 4)
245 label size = faces[myFaces[myFacei]].
size();
260 if ((nTris == 2) && (nQuads == 2))
const labelList & vertLabels() const
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A face is a list of labels corresponding to mesh vertices.
virtual bool isA(const primitiveMesh &mesh, const label celli)
Exact match. Uses faceSizeMatch.
Base class for cellshape matchers (hexMatch, prismMatch, etc.). These are classes which given a mesh ...
Cell-face mesh analysis engine.
labelList faceMap_
Map from local to mesh face numbering.
An analytical geometric cellShape.
void size(const label)
Override size to be inconsistent with allocated storage.
labelList identity(const label len)
Create identity map (map[i] == i) of given length.
const cellList & cells() const
void calcEdgeAddressing(const label numVert)
Fill edge (start, end) to face number.
labelList vertLabels_
After matching: holds mesh vertices in cellmodel order.
labelListList pointFaceIndex_
pointFaceIndex[localVertI][localFacei] is index in localFace
Various functions to operate on Lists.
void calcPointFaceIndex()
Fill vertex/face to index in face data structure.
label calcLocalFaces(const faceList &faces, const labelList &myFaces)
Calculates localFaces. Returns number of local vertices (or -1.
labelList faceSize_
Number of vertices per face in localFaces_.
~tetWedgeMatcher()
Destructor.
List< label > labelList
A List of labels.
tetWedgeMatcher()
Construct null.
labelList faceLabels_
After matching: holds mesh faces in cellmodel order.
const cellModel & model() const
faceList localFaces_
Faces using local vertex numbering.
virtual bool matchShape(const bool checkOnly, const faceList &faces, const labelList &faceOwner, const label celli, const labelList &myFaces)
Low level shape recognition. Return true if matches.
virtual bool matches(const primitiveMesh &mesh, const label celli, cellShape &shape)
Like isA but also constructs a cellShape (if shape matches)
labelList pointMap_
Map from local to mesh vertex numbering.
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 setSize(const label)
Reset size of List.
virtual label faceHashValue() const
Hash value of all face sizes of this shape. Can be used for.
virtual bool faceSizeMatch(const faceList &, const labelList &) const
Check whether number of face sizes match the shape.
virtual const faceList & faces() const =0
Return faces.
virtual const labelList & faceOwner() const =0
Face face-owner addressing.
static label nextVert(const label, const label, const bool)
Step along face either in righthand or lefthand direction.