Public Member Functions | List of all members
pyrMatcher Class Reference

A cellMatcher for pyr cells. More...

Inheritance diagram for pyrMatcher:
Inheritance graph
[legend]
Collaboration diagram for pyrMatcher:
Collaboration graph
[legend]

Public Member Functions

 pyrMatcher ()
 Construct null. More...
 
 ~pyrMatcher ()
 Destructor. More...
 
virtual label nVertPerCell () const
 
virtual label nFacePerCell () const
 
virtual label nMaxVertPerFace () const
 
virtual label faceHashValue () const
 Hash value of all face sizes of this shape. Can be used for. More...
 
virtual bool faceSizeMatch (const faceList &, const labelList &) const
 Check whether number of face sizes match the shape. More...
 
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. More...
 
virtual bool isA (const primitiveMesh &mesh, const label cellI)
 Exact match. Uses faceSizeMatch. More...
 
virtual bool isA (const faceList &)
 Exact match given all the faces forming a cell. No checks. More...
 
virtual bool matches (const primitiveMesh &mesh, const label cellI, cellShape &shape)
 Like isA but also constructs a cellShape (if shape matches) More...
 
- Public Member Functions inherited from cellMatcher
 cellMatcher (const label vertPerCell, const label facePerCell, const label maxVertPerFace, const word &cellModelName)
 Construct given mesh and shape factors. More...
 
virtual ~cellMatcher ()
 Destructor. More...
 
const Map< label > & localPoint () const
 
const faceListlocalFaces () const
 
const labelListfaceSize () const
 
const labelListpointMap () const
 
const labelListfaceMap () const
 
const labelListedgeFaces () const
 
const labelListListpointFaceIndex () const
 
const labelListvertLabels () const
 
const labelListfaceLabels () const
 
const cellModelmodel () const
 
void write (Ostream &os) const
 

Additional Inherited Members

- Protected Member Functions inherited from cellMatcher
label calcLocalFaces (const faceList &faces, const labelList &myFaces)
 Calculates localFaces. Returns number of local vertices (or -1. More...
 
void calcEdgeAddressing (const label numVert)
 Fill edge (start, end) to face number. More...
 
void calcPointFaceIndex ()
 Fill vertex/face to index in face data structure. More...
 
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. More...
 
- Static Protected Member Functions inherited from cellMatcher
static label edgeKey (const label numVert, const label v0, const label v1)
 Given start and end of edge generate unique key. More...
 
static label nextVert (const label, const label, const bool)
 Step along face either in righthand or lefthand direction. More...
 
- Protected Attributes inherited from cellMatcher
Map< labellocalPoint_
 
faceList localFaces_
 Faces using local vertex numbering. More...
 
labelList faceSize_
 Number of vertices per face in localFaces_. More...
 
labelList pointMap_
 Map from local to mesh vertex numbering. More...
 
labelList faceMap_
 Map from local to mesh face numbering. More...
 
labelList edgeFaces_
 Map from 'edge' to neighbouring faces. More...
 
labelListList pointFaceIndex_
 pointFaceIndex[localVertI][localFaceI] is index in localFace More...
 
labelList vertLabels_
 After matching: holds mesh vertices in cellmodel order. More...
 
labelList faceLabels_
 After matching: holds mesh faces in cellmodel order. More...
 
const word cellModelName_
 CellModel name. More...
 
const cellModelcellModelPtr_
 

Detailed Description

A cellMatcher for pyr cells.

See also
cellMatcher
Source files

Definition at line 51 of file pyrMatcher.H.

Constructor & Destructor Documentation

Construct null.

Definition at line 43 of file pyrMatcher.C.

~pyrMatcher ( )

Destructor.

Definition at line 57 of file pyrMatcher.C.

References pyrMatcher::matchShape().

Here is the call graph for this function:

Member Function Documentation

virtual label nVertPerCell ( ) const
inlinevirtual

Implements cellMatcher.

Definition at line 85 of file pyrMatcher.H.

virtual label nFacePerCell ( ) const
inlinevirtual

Implements cellMatcher.

Definition at line 90 of file pyrMatcher.H.

virtual label nMaxVertPerFace ( ) const
inlinevirtual

Implements cellMatcher.

Definition at line 95 of file pyrMatcher.H.

References pyrMatcher::faceHashValue(), pyrMatcher::faceSizeMatch(), pyrMatcher::isA(), pyrMatcher::matches(), pyrMatcher::matchShape(), and mesh.

Here is the call graph for this function:

Foam::label faceHashValue ( ) const
virtual

Hash value of all face sizes of this shape. Can be used for.

quick initial recognition.

Implements cellMatcher.

Definition at line 218 of file pyrMatcher.C.

References pyrMatcher::faceSizeMatch().

Referenced by pyrMatcher::nMaxVertPerFace().

Here is the call graph for this function:

Here is the caller graph for this function:

bool faceSizeMatch ( const faceList ,
const labelList  
) const
virtual

Check whether number of face sizes match the shape.

Implements cellMatcher.

Definition at line 225 of file pyrMatcher.C.

References forAll, and List< T >::size().

Referenced by pyrMatcher::faceHashValue(), pyrMatcher::matchShape(), and pyrMatcher::nMaxVertPerFace().

Here is the call graph for this function:

Here is the caller graph for this function:

bool matchShape ( const bool  checkOnly,
const faceList faces,
const labelList faceOwner,
const label  cellI,
const labelList myFaces 
)
virtual

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.

Implements cellMatcher.

Definition at line 63 of file pyrMatcher.C.

References cellMatcher::calcEdgeAddressing(), cellMatcher::calcLocalFaces(), cellMatcher::calcPointFaceIndex(), cellMatcher::faceLabels_, cellMatcher::faceMap_, cellMatcher::faceSize_, pyrMatcher::faceSizeMatch(), forAll, cellMatcher::localFaces_, cellMatcher::nextVert(), cellMatcher::otherFace(), cellMatcher::pointFaceIndex_, cellMatcher::pointMap_, List< T >::setSize(), and cellMatcher::vertLabels_.

Referenced by pyrMatcher::isA(), pyrMatcher::matches(), pyrMatcher::nMaxVertPerFace(), and pyrMatcher::~pyrMatcher().

Here is the call graph for this function:

Here is the caller graph for this function:

bool isA ( const primitiveMesh mesh,
const label  cellI 
)
virtual

Exact match. Uses faceSizeMatch.

Returns true if cell matches shape exactly.

Implements cellMatcher.

Definition at line 267 of file pyrMatcher.C.

References primitiveMesh::cells(), primitiveMesh::faceOwner(), primitiveMesh::faces(), and pyrMatcher::matchShape().

Referenced by pyrMatcher::nMaxVertPerFace().

Here is the call graph for this function:

Here is the caller graph for this function:

bool isA ( const faceList )
virtual

Exact match given all the faces forming a cell. No checks.

on whether faces match up and form a closed shape.

Implements cellMatcher.

Definition at line 280 of file pyrMatcher.C.

References Foam::identity(), pyrMatcher::matches(), pyrMatcher::matchShape(), and List< T >::size().

Here is the call graph for this function:

bool matches ( const primitiveMesh mesh,
const label  cellI,
cellShape shape 
)
virtual

Like isA but also constructs a cellShape (if shape matches)

Implements cellMatcher.

Definition at line 295 of file pyrMatcher.C.

References primitiveMesh::cells(), primitiveMesh::faceOwner(), primitiveMesh::faces(), pyrMatcher::matchShape(), cellMatcher::model(), and cellMatcher::vertLabels().

Referenced by pyrMatcher::isA(), and pyrMatcher::nMaxVertPerFace().

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: