Go to the documentation of this file.
66 if (!faceSizeMatch(faces, myFaces))
78 label numVert = calcLocalFaces(faces, myFaces);
80 if (numVert != vertPerCell)
86 calcEdgeAddressing(numVert);
92 vertLabels_.setSize(vertPerCell);
93 faceLabels_.setSize(facePerCell);
100 const face& face3 = localFaces_[face3I];
101 label face3vert0 = 0;
108 vertLabels_[0] = pointMap_[face3[face3vert0]];
109 faceLabels_[3] = faceMap_[face3I];
117 !(owner[faceMap_[face3I]] == celli)
119 vertLabels_[1] = pointMap_[face3[face3vert1]];
127 !(owner[faceMap_[face3I]] == celli)
129 vertLabels_[2] = pointMap_[face3[face3vert2]];
140 faceLabels_[2] = faceMap_[face2I];
151 faceLabels_[0] = faceMap_[face0I];
162 faceLabels_[1] = faceMap_[face1I];
163 const face& face1 = localFaces_[face1I];
166 label face1vert0 = pointFaceIndex_[face3[face3vert0]][face1I];
174 (owner[faceMap_[face1I]] == celli)
176 vertLabels_[3] = pointMap_[face1[face1vert3]];
194 if (myFaces.size() != 4)
199 for (
const label facei : myFaces)
201 const label size = faces[facei].size();
259 shape =
cellShape(model(), vertLabels());
List< label > labelList
A List of labels.
virtual label faceHashValue() const
Hash value of all face sizes of this shape. Can be used for.
static constexpr const zero Zero
Global zero (0)
const cellList & cells() const
Base class for cellshape matchers (hexMatch, prismMatch, etc.). These are classes which given a mesh ...
virtual const labelList & faceOwner() const
Return face owner.
virtual bool matches(const primitiveMesh &mesh, const label celli, cellShape &shape)
Like isA but also constructs a cellShape (if shape matches)
An analytical geometric cellShape.
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 faceSizeMatch(const faceList &, const labelList &) const
Check whether number of face sizes match the shape.
virtual const faceList & faces() const
Return raw faces.
virtual bool isA(const primitiveMesh &mesh, const label celli)
Exact match. Uses faceSizeMatch.
labelList identity(const label len, label start=0)
Create identity map of the given length with (map[i] == i)
A face is a list of labels corresponding to mesh vertices.
Various functions to operate on Lists.
tetMatcher()
Construct null.
Cell-face mesh analysis engine.