43 if (faces.
size() != 4)
48 for (
const face&
f : faces)
63 const UList<face>& meshFaces,
67 if (cellFaces.size() != 4)
72 for (
const label facei : cellFaces)
74 if (meshFaces[facei].size() != 3)
119 const bool checkOnly,
126 if (!faceSizeMatch(faces, myFaces))
138 label numVert = calcLocalFaces(faces, myFaces);
140 if (numVert != vertPerCell)
146 calcEdgeAddressing(numVert);
149 calcPointFaceIndex();
152 vertLabels_.setSize(vertPerCell);
153 faceLabels_.setSize(facePerCell);
160 const face& face3 = localFaces_[face3I];
161 label face3vert0 = 0;
168 vertLabels_[0] = pointMap_[face3[face3vert0]];
169 faceLabels_[3] = faceMap_[face3I];
177 !(owner[faceMap_[face3I]] == celli)
179 vertLabels_[1] = pointMap_[face3[face3vert1]];
187 !(owner[faceMap_[face3I]] == celli)
189 vertLabels_[2] = pointMap_[face3[face3vert2]];
200 faceLabels_[2] = faceMap_[face2I];
211 faceLabels_[0] = faceMap_[face0I];
222 faceLabels_[1] = faceMap_[face1I];
223 const face& face1 = localFaces_[face1I];
226 label face1vert0 = pointFaceIndex_[face3[face3vert0]][face1I];
234 (owner[faceMap_[face1I]] == celli)
236 vertLabels_[3] = pointMap_[face1[face1vert3]];
277 shape.
reset(model(), vertLabels());
virtual bool matches(const primitiveMesh &mesh, const label celli, cellShape &shape)
Like isA but also constructs a cellShape (if shape matches)
void size(const label n)
Older name for setAddressableSize.
A face is a list of labels corresponding to mesh vertices.
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.
Base class for cellshape matchers (hexMatch, prismMatch, etc.). These are classes which given a mesh ...
Cell-face mesh analysis engine.
An analytical geometric cellShape.
virtual bool faceSizeMatch(const faceList &, const labelList &) const
Check whether number of face sizes match the shape.
const cellList & cells() const
UList< label > labelUList
A UList of labels.
Various functions to operate on Lists.
void reset(const cellModel &model, const labelUList &labels, const bool doCollapse=false)
Reset from components.
static bool checkFaceSizeMatch(const UList< face > &faces)
virtual const labelList & faceOwner() const
Return face owner.
virtual label faceHashValue() const
Hash value of all face sizes of this shape. Can be used for.
virtual const faceList & faces() const
Return raw faces.
tetMatcher()
Default construct.
static bool test(const UList< face > &faces)
Test if given list of faces satisfies criteria for TET. (4 tri)