![]() |
|
Public Member Functions | |
cellMatcher (const label vertPerCell, const label facePerCell, const label maxVertPerFace, const word &cellModelName) | |
Construct given mesh and shape factors. | |
virtual | ~cellMatcher () |
const Map< label > & | localPoint () const |
const faceList & | localFaces () const |
const labelList & | faceSize () const |
const labelList & | pointMap () const |
const labelList & | faceMap () const |
const labelList & | edgeFaces () const |
const labelListList & | pointFaceIndex () const |
const labelList & | vertLabels () const |
const labelList & | faceLabels () const |
const cellModel & | model () const |
void | write (Ostream &os) const |
virtual label | nVertPerCell () const =0 |
virtual label | nFacePerCell () const =0 |
virtual label | nMaxVertPerFace () const =0 |
virtual label | faceHashValue () const =0 |
Hash value of all face sizes of this shape. Can be used for. | |
virtual bool | faceSizeMatch (const faceList &, const labelList &) const =0 |
Check whether number of face sizes match the shape. | |
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. | |
virtual bool | isA (const primitiveMesh &mesh, const label cellI)=0 |
Exact match. Uses faceSizeMatch. | |
virtual bool | isA (const faceList &)=0 |
Exact match given all the faces forming a cell. No checks. | |
virtual bool | matches (const primitiveMesh &mesh, const label cellI, cellShape &shape)=0 |
Like isA but also constructs a cellShape (if shape matches). | |
Static Public Member Functions | |
labelList | makeIdentity (const label nElems) |
Create list with incrementing labels. | |
Protected Member Functions | |
label | calcLocalFaces (const faceList &faces, const labelList &myFaces) |
Calculates localFaces. Returns number of local vertices (or -1. | |
void | calcEdgeAddressing (const label numVert) |
Fill edge (start, end) to face number. | |
void | calcPointFaceIndex () |
Fill vertex/face to index in face data structure. | |
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. | |
Static Protected Member Functions | |
label | edgeKey (const label numVert, const label v0, const label v1) |
Given start and end of edge generate unique key. | |
label | nextVert (const label, const label, const bool) |
Step along face either in righthand or lefthand direction. | |
Protected Attributes | |
Map< label > | localPoint_ |
faceList | localFaces_ |
Faces using local vertex numbering. | |
labelList | faceSize_ |
Number of vertices per face in localFaces_. | |
labelList | pointMap_ |
Map from local to mesh vertex numbering. | |
labelList | faceMap_ |
Map from local to mesh face numbering. | |
labelList | edgeFaces_ |
Map from 'edge' to neighbouring faces. | |
labelListList | pointFaceIndex_ |
pointFaceIndex[localVertI][localFaceI] is index in localFace | |
labelList | vertLabels_ |
After matching: holds mesh vertices in cellmodel order. | |
labelList | faceLabels_ |
After matching: holds mesh faces in cellmodel order. | |
const word | cellModelName_ |
CellModel name. | |
const cellModel * | cellModelPtr_ |
|
Construct given mesh and shape factors.
|
|
Definition at line 220 of file cellMatcher.H. References Foam::faceList, Foam::label, Foam::labelList, and Foam::labelListList. |
|
Fill edge (start, end) to face number.
|
|
Calculates localFaces. Returns number of local vertices (or -1. if more than vertPerCell). |
|
Fill vertex/face to index in face data structure.
|
|
Definition at line 73 of file cellMatcherI.H. References Foam::labelListList. |
|
Given start and end of edge generate unique key.
Definition at line 111 of file cellMatcherI.H. |
|
Hash value of all face sizes of this shape. Can be used for. quick initial recognition. Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Definition at line 91 of file cellMatcherI.H. References cellMatcher::cellModelName_, and cellMatcher::cellModelPtr_. |
|
Definition at line 67 of file cellMatcherI.H. References Foam::labelList. |
|
Definition at line 55 of file cellMatcherI.H. References Foam::labelList. |
|
Check whether number of face sizes match the shape.
Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Exact match given all the faces forming a cell. No checks. on whether faces match up and form a closed shape. Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Exact match. Uses faceSizeMatch. Returns true if cell matches shape exactly. Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Definition at line 49 of file cellMatcherI.H. References Foam::labelList. |
|
Definition at line 43 of file cellMatcherI.H. References Foam::faceList. |
|
Create list with incrementing labels.
|
|
Like isA but also constructs a cellShape (if shape matches).
Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Low level shape recognition. Return true if matches. Works in detection mode only (checkOnly=true) or in exact matching. Returns true and sets vertLabels_. Needs faces, faceOwner of all faces in 'mesh' and cell number and labels of faces for this cell. cellI only used in combination with faceOwner to detect owner status. Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Definition at line 97 of file cellMatcherI.H. |
|
Step along face either in righthand or lefthand direction.
Definition at line 123 of file cellMatcherI.H. References Foam::size(). |
Here is the call graph for this function:
|
Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Implemented in hexMatcher, prismMatcher, pyrMatcher, tetMatcher, tetWedgeMatcher, and wedgeMatcher. |
|
Given start,end of edge lookup both faces sharing it and return. face != localFaceI |
|
Definition at line 79 of file cellMatcherI.H. References Foam::labelList. |
|
Definition at line 61 of file cellMatcherI.H. References Foam::labelList. |
|
Definition at line 85 of file cellMatcherI.H. References Foam::labelList. |
|
|
|
CellModel name.
Definition at line 157 of file cellMatcher.H. Referenced by cellMatcher::faceLabels(). |
|
Definition at line 159 of file cellMatcher.H. Referenced by cellMatcher::faceLabels(). |
|
Map from 'edge' to neighbouring faces.
Definition at line 142 of file cellMatcher.H. |
|
After matching: holds mesh faces in cellmodel order.
Definition at line 154 of file cellMatcher.H. |
|
Map from local to mesh face numbering.
Definition at line 139 of file cellMatcher.H. |
|
Number of vertices per face in localFaces_.
Definition at line 133 of file cellMatcher.H. |
|
Faces using local vertex numbering.
Definition at line 130 of file cellMatcher.H. |
|
Definition at line 127 of file cellMatcher.H. |
|
pointFaceIndex[localVertI][localFaceI] is index in localFace where localVertI is. Definition at line 148 of file cellMatcher.H. |
|
Map from local to mesh vertex numbering.
Definition at line 136 of file cellMatcher.H. |
|
After matching: holds mesh vertices in cellmodel order.
Definition at line 151 of file cellMatcher.H. |