Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
extendedEdgeMesh Class Reference

Description of feature edges and points. More...

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

Public Types

enum  pointStatus { CONVEX, CONCAVE, MIXED, NONFEATURE }
 
enum  edgeStatus {
  EXTERNAL, INTERNAL, FLAT, OPEN,
  MULTIPLE, NONE
}
 
enum  sideVolumeType { INSIDE = 0, OUTSIDE = 1, BOTH = 2, NEITHER = 3 }
 Normals point to the outside. More...
 

Public Member Functions

 TypeName ("extendedEdgeMesh")
 Runtime type information. More...
 
 extendedEdgeMesh ()
 Construct null. More...
 
 extendedEdgeMesh (const extendedEdgeMesh &)
 Construct as copy. More...
 
 extendedEdgeMesh (const fileName &)
 Construct from file name (uses extension to determine type) More...
 
 extendedEdgeMesh (const fileName &, const word &ext)
 Construct from file name (uses extension to determine type) More...
 
 extendedEdgeMesh (Istream &)
 Construct from Istream. More...
 
 extendedEdgeMesh (const Xfer< pointField > &, const Xfer< edgeList > &)
 Construct by transferring components (points, edges) More...
 
 extendedEdgeMesh (const surfaceFeatures &sFeat, const boolList &surfBaffleRegions)
 Construct given a surface with selected edges,points. More...
 
 extendedEdgeMesh (const PrimitivePatch< face, List, pointField, point > &surf, const labelList &featureEdges, const labelList &regionFeatureEdges, const labelList &featurePoints)
 Construct from PrimitivePatch. More...
 
 extendedEdgeMesh (const pointField &pts, const edgeList &eds, label concaveStart, label mixedStart, label nonFeatureStart, label internalStart, label flatStart, label openStart, label multipleStart, const vectorField &normals, const List< sideVolumeType > &normalVolumeTypes, const vectorField &edgeDirections, const labelListList &normalDirections, const labelListList &edgeNormals, const labelListList &featurePointNormals, const labelListList &featurePointEdges, const labelList &regionEdges)
 Construct from all components. More...
 
 declareRunTimeSelectionTable (autoPtr, extendedEdgeMesh, fileExtension,(const fileName &name),(name))
 
 ~extendedEdgeMesh ()
 Destructor. More...
 
void nearestFeaturePoint (const point &sample, scalar searchDistSqr, pointIndexHit &info) const
 Find nearest surface edge for the sample point. More...
 
void nearestFeatureEdge (const point &sample, scalar searchDistSqr, pointIndexHit &info) const
 Find nearest surface edge for the sample point. More...
 
void nearestFeatureEdge (const pointField &samples, const scalarField &searchDistSqr, pointIndexHitList &info) const
 Find nearest surface edge for each sample point. More...
 
void nearestFeatureEdgeByType (const point &sample, const scalarField &searchDistSqr, pointIndexHitList &info) const
 Find the nearest point on each type of feature edge. More...
 
void allNearestFeaturePoints (const point &sample, scalar searchRadiusSqr, pointIndexHitList &info) const
 Find all the feature points within searchDistSqr of sample. More...
 
void allNearestFeatureEdges (const point &sample, const scalar searchRadiusSqr, pointIndexHitList &info) const
 Find all the feature edges within searchDistSqr of sample. More...
 
scalar minDisconnectedDist (const pointIndexHitList &hitList) const
 Return the minimum distance between disconnected edges. More...
 
label convexStart () const
 Return the index of the start of the convex feature points. More...
 
label concaveStart () const
 Return the index of the start of the concave feature points. More...
 
label mixedStart () const
 Return the index of the start of the mixed type feature points. More...
 
label nonFeatureStart () const
 Return the index of the start of the non-feature points. More...
 
label externalStart () const
 Return the index of the start of the external feature edges. More...
 
label internalStart () const
 Return the index of the start of the internal feature edges. More...
 
label flatStart () const
 Return the index of the start of the flat feature edges. More...
 
label openStart () const
 Return the index of the start of the open feature edges. More...
 
label multipleStart () const
 Return the index of the start of the multiply-connected feature. More...
 
bool featurePoint (label ptI) const
 Return whether or not the point index is a feature point. More...
 
const vectorFieldnormals () const
 Return the normals of the surfaces adjacent to the feature edges. More...
 
const List< sideVolumeType > & normalVolumeTypes () const
 Return. More...
 
const vectorFieldedgeDirections () const
 Return the edgeDirection vectors. More...
 
const labelListListnormalDirections () const
 
vector edgeDirection (label edgeI, label ptI) const
 Return the direction of edgeI, pointing away from ptI. More...
 
const labelListListedgeNormals () const
 Return the indices of the normals that are adjacent to the. More...
 
vectorField edgeNormals (const labelList &edgeNormIs) const
 Return the normal vectors for a given set of normal indices. More...
 
vectorField edgeNormals (label edgeI) const
 Return the normal vectors for a given edge. More...
 
const labelListListfeaturePointNormals () const
 Return the indices of the normals that are adjacent to the. More...
 
vectorField featurePointNormals (label ptI) const
 Return the normal vectors for a given feature point. More...
 
const labelListListfeaturePointEdges () const
 Return the edge labels for a given feature point. Edges are. More...
 
const labelListregionEdges () const
 Return the feature edges which are on the boundary between. More...
 
pointStatus getPointStatus (label ptI) const
 Return the pointStatus of a specified point. More...
 
edgeStatus getEdgeStatus (label edgeI) const
 Return the edgeStatus of a specified edge. More...
 
PackedList< 2 > edgeBaffles (label edgeI) const
 Return the baffle faces of a specified edge. More...
 
const indexedOctree< treeDataPoint > & pointTree () const
 Demand driven construction of octree for feature points. More...
 
const indexedOctree< treeDataEdge > & edgeTree () const
 Demand driven construction of octree for boundary edges. More...
 
const PtrList< indexedOctree< treeDataEdge > > & edgeTreesByType () const
 Demand driven construction of octree for boundary edges by type. More...
 
void transfer (extendedEdgeMesh &)
 Transfer the contents of the argument and annul the argument. More...
 
Xfer< extendedEdgeMeshxfer ()
 Transfer contents to the Xfer container. More...
 
virtual void clear ()
 Clear all storage. More...
 
void add (const extendedEdgeMesh &)
 Add extendedEdgeMesh. No filtering of duplicates. More...
 
void flipNormals ()
 Flip normals. All concave become convex, all internal external. More...
 
bool read (const fileName &, const word &ext)
 Read from file. Chooses reader based on explicit extension. More...
 
virtual bool read (const fileName &)
 Read from file. Chooses reader based on detected extension. More...
 
void writeObj (const fileName &prefix, const bool verbose=true) const
 Write all components of the extendedEdgeMesh as obj files. More...
 
virtual void writeStats (Ostream &os) const
 Dump some information. More...
 
- Public Member Functions inherited from edgeMesh
 TypeName ("edgeMesh")
 Runtime type information. More...
 
 edgeMesh ()
 Construct null. More...
 
 edgeMesh (const pointField &, const edgeList &)
 Construct from components. More...
 
 edgeMesh (const Xfer< pointField > &, const Xfer< edgeList > &)
 Construct by transferring components (points, edges). More...
 
 edgeMesh (const edgeMesh &)
 Construct as copy. More...
 
 edgeMesh (const fileName &)
 Construct from file name (uses extension to determine type) More...
 
 edgeMesh (const fileName &, const word &ext)
 Construct from file name (uses extension to determine type) More...
 
 edgeMesh (Istream &)
 Construct from Istream. More...
 
 declareRunTimeSelectionTable (autoPtr, edgeMesh, fileExtension,(const fileName &name),(name))
 
virtual ~edgeMesh ()
 Destructor. More...
 
 declareMemberFunctionSelectionTable (void, edgeMesh, write, fileExtension,(const fileName &name, const edgeMesh &mesh),(name, mesh))
 
void transfer (edgeMesh &)
 Transfer the contents of the argument and annul the argument. More...
 
Xfer< edgeMeshxfer ()
 Transfer contents to the Xfer container. More...
 
bool read (const fileName &, const word &ext)
 Read from file. Chooses reader based on explicit extension. More...
 
const pointFieldpoints () const
 Return points. More...
 
const edgeListedges () const
 Return edges. More...
 
const labelListListpointEdges () const
 Return edges. More...
 
label regions (labelList &edgeRegion) const
 Find connected regions. Set region number per edge. More...
 
virtual void reset (const Xfer< pointField > &points, const Xfer< edgeList > &edges)
 Reset primitive data (points, edges) More...
 
virtual void scalePoints (const scalar)
 Scale points. A non-positive factor is ignored. More...
 
virtual void mergePoints (const scalar mergeDist, labelList &)
 Merge common points (points within mergeDist). Return map from. More...
 
virtual void mergeEdges ()
 Merge duplicate edges. More...
 
virtual void write (const fileName &name) const
 Generic write routine. Chooses writer based on extension. More...
 
void operator= (const edgeMesh &)
 
- Public Member Functions inherited from edgeMeshFormatsCore
 edgeMeshFormatsCore ()
 Construct null. More...
 
virtual ~edgeMeshFormatsCore ()
 Destructor. More...
 

Static Public Member Functions

static bool canRead (const fileName &, const bool verbose=false)
 Can we read this file format? More...
 
static bool canReadType (const word &ext, const bool verbose=false)
 Can we read this file format? More...
 
static bool canWriteType (const word &ext, const bool verbose=false)
 Can we write this file format type? More...
 
static wordHashSet readTypes ()
 
static wordHashSet writeTypes ()
 
static autoPtr< extendedEdgeMeshNew (const fileName &, const word &ext)
 Select constructed from filename (explicit extension) More...
 
static autoPtr< extendedEdgeMeshNew (const fileName &)
 Select constructed from filename (implicit extension) More...
 
static edgeStatus classifyEdge (const List< vector > &norms, const labelList &edNorms, const vector &fC0tofC1)
 Classify the type of feature edge. Requires face centre 0 to face. More...
 
- Static Public Member Functions inherited from edgeMesh
static bool canRead (const fileName &, const bool verbose=false)
 Can we read this file format? More...
 
static bool canReadType (const word &ext, const bool verbose=false)
 Can we read this file format? More...
 
static bool canWriteType (const word &ext, const bool verbose=false)
 Can we write this file format type? More...
 
static wordHashSet readTypes ()
 
static wordHashSet writeTypes ()
 
static autoPtr< edgeMeshNew (const fileName &, const word &ext)
 Select constructed from filename (explicit extension) More...
 
static autoPtr< edgeMeshNew (const fileName &)
 Select constructed from filename (implicit extension) More...
 
static void write (const fileName &, const edgeMesh &)
 Write to file. More...
 
- Static Public Member Functions inherited from edgeMeshFormatsCore
static bool checkSupport (const wordHashSet &available, const word &ext, const bool verbose, const word &functionName)
 

Static Public Attributes

static const Foam::NamedEnum< pointStatus, 4 > pointStatusNames_
 
static const Foam::NamedEnum< edgeStatus, 6 > edgeStatusNames_
 
static const Foam::NamedEnum< sideVolumeType, 4 > sideVolumeTypeNames_
 
static scalar cosNormalAngleTol_
 Angular closeness tolerance for treating normals as the same. More...
 
static label nPointTypes = 4
 Number of possible point types (i.e. number of slices) More...
 
static label nEdgeTypes = 5
 Number of possible feature edge types (i.e. number of slices) More...
 
- Static Public Attributes inherited from edgeMeshFormatsCore
static word nativeExt
 The file extension corresponding to 'native' edge format. More...
 

Protected Member Functions

pointStatus classifyFeaturePoint (label ptI) const
 Classify the type of feature point. Requires valid stored member. More...
 
template<class Patch >
void sortPointsAndEdges (const Patch &, const labelList &featureEdges, const labelList &regionFeatureEdges, const labelList &feaurePoints)
 
- Protected Member Functions inherited from edgeMesh
pointFieldstoredPoints ()
 Non-const access to global points. More...
 
edgeListstoredEdges ()
 Non-const access to the edges. More...
 

Protected Attributes

label concaveStart_
 Index of the start of the concave feature points. More...
 
label mixedStart_
 Index of the start of the mixed type feature points. More...
 
label nonFeatureStart_
 Index of the start of the non-feature points. More...
 
label internalStart_
 Index of the start of the internal feature edges. More...
 
label flatStart_
 Index of the start of the flat feature edges. More...
 
label openStart_
 Index of the start of the open feature edges. More...
 
label multipleStart_
 Index of the start of the multiply-connected feature edges. More...
 
vectorField normals_
 Normals of the features, to be referred to by index by both feature. More...
 
List< sideVolumeTypenormalVolumeTypes_
 Type per normal: which side of normal to mesh. More...
 
vectorField edgeDirections_
 Flat and open edges require the direction of the edge. More...
 
labelListList normalDirections_
 Starting directions for the edges. More...
 
labelListList edgeNormals_
 Indices of the normals that are adjacent to the feature edges. More...
 
labelListList featurePointNormals_
 Indices of the normals that are adjacent to the feature points. More...
 
labelListList featurePointEdges_
 Indices of feature edges attached to feature points. The edges are. More...
 
labelList regionEdges_
 Feature edges which are on the boundary between regions. More...
 
autoPtr< indexedOctree< treeDataPoint > > pointTree_
 Search tree for all feature points. More...
 
autoPtr< indexedOctree< treeDataEdge > > edgeTree_
 Search tree for all edges. More...
 
PtrList< indexedOctree< treeDataEdge > > edgeTreesByType_
 Individual search trees for each type of edge. More...
 

Static Protected Attributes

static label convexStart_ = 0
 Index of the start of the convex feature points - static as 0. More...
 
static label externalStart_ = 0
 Index of the start of the external feature edges - static as 0. More...
 

Friends

Istreamoperator>> (Istream &is, sideVolumeType &vt)
 
Ostreamoperator<< (Ostream &os, const sideVolumeType &vt)
 
Ostreamoperator<< (Ostream &, const extendedEdgeMesh &)
 
Istreamoperator>> (Istream &, extendedEdgeMesh &)
 

Additional Inherited Members

- Static Protected Member Functions inherited from edgeMeshFormatsCore
static string getLineNoComment (IFstream &)
 Read non-comment line. More...
 

Detailed Description

Description of feature edges and points.

Feature points are a sorted subset at the start of the overall points list: 0 .. concaveStart_-1 : convex points (w.r.t normals) concaveStart_ .. mixedStart_-1 : concave points mixedStart_ .. nonFeatureStart_-1 : mixed internal/external points nonFeatureStart_ .. size-1 : non-feature points

Feature edges are the edgeList of the edgeMesh and are sorted: 0 .. internalStart_-1 : external edges (convex w.r.t normals) internalStart_ .. flatStart_-1 : internal edges (concave) flatStart_ .. openStart_-1 : flat edges (neither concave or convex) can arise from region interfaces on flat surfaces openStart_ .. multipleStart_-1 : open edges (e.g. from baffle surfaces) multipleStart_ .. size-1 : multiply connected edges

The edge direction and feature edge and feature point adjacent normals are stored.

Source files

Definition at line 85 of file extendedEdgeMesh.H.

Member Enumeration Documentation

◆ pointStatus

Enumerator
CONVEX 
CONCAVE 
MIXED 
NONFEATURE 

Definition at line 95 of file extendedEdgeMesh.H.

◆ edgeStatus

enum edgeStatus
Enumerator
EXTERNAL 
INTERNAL 
FLAT 
OPEN 
MULTIPLE 
NONE 

Definition at line 105 of file extendedEdgeMesh.H.

◆ sideVolumeType

Normals point to the outside.

Enumerator
INSIDE 
OUTSIDE 
BOTH 
NEITHER 

Definition at line 119 of file extendedEdgeMesh.H.

Constructor & Destructor Documentation

◆ extendedEdgeMesh() [1/9]

Construct null.

Definition at line 266 of file extendedEdgeMesh.C.

Referenced by extendedEdgeMesh::extendedEdgeMesh().

Here is the caller graph for this function:

◆ extendedEdgeMesh() [2/9]

extendedEdgeMesh ( const extendedEdgeMesh fem)
explicit

Construct as copy.

Definition at line 290 of file extendedEdgeMesh.C.

◆ extendedEdgeMesh() [3/9]

extendedEdgeMesh ( const fileName name)

Construct from file name (uses extension to determine type)

Definition at line 538 of file extendedEdgeMesh.C.

References extendedEdgeMesh::read().

Here is the call graph for this function:

◆ extendedEdgeMesh() [4/9]

extendedEdgeMesh ( const fileName name,
const word ext 
)

Construct from file name (uses extension to determine type)

Definition at line 509 of file extendedEdgeMesh.C.

References extendedEdgeMesh::read().

Here is the call graph for this function:

◆ extendedEdgeMesh() [5/9]

Construct from Istream.

Definition at line 314 of file extendedEdgeMesh.C.

References extendedEdgeMesh::extendedEdgeMesh().

Here is the call graph for this function:

◆ extendedEdgeMesh() [6/9]

extendedEdgeMesh ( const Xfer< pointField > &  pointLst,
const Xfer< edgeList > &  edgeLst 
)

Construct by transferring components (points, edges)

Definition at line 321 of file extendedEdgeMesh.C.

References extendedEdgeMesh::extendedEdgeMesh().

Here is the call graph for this function:

◆ extendedEdgeMesh() [7/9]

extendedEdgeMesh ( const surfaceFeatures sFeat,
const boolList surfBaffleRegions 
)

◆ extendedEdgeMesh() [8/9]

extendedEdgeMesh ( const PrimitivePatch< face, List, pointField, point > &  surf,
const labelList featureEdges,
const labelList regionFeatureEdges,
const labelList featurePoints 
)

Construct from PrimitivePatch.

Definition at line 428 of file extendedEdgeMesh.C.

References extendedEdgeMesh::extendedEdgeMesh(), and extendedEdgeMesh::sortPointsAndEdges().

Here is the call graph for this function:

◆ extendedEdgeMesh() [9/9]

extendedEdgeMesh ( const pointField pts,
const edgeList eds,
label  concaveStart,
label  mixedStart,
label  nonFeatureStart,
label  internalStart,
label  flatStart,
label  openStart,
label  multipleStart,
const vectorField normals,
const List< sideVolumeType > &  normalVolumeTypes,
const vectorField edgeDirections,
const labelListList normalDirections,
const labelListList edgeNormals,
const labelListList featurePointNormals,
const labelListList featurePointEdges,
const labelList regionEdges 
)

Construct from all components.

Definition at line 466 of file extendedEdgeMesh.C.

References extendedEdgeMesh::extendedEdgeMesh().

Here is the call graph for this function:

◆ ~extendedEdgeMesh()

Destructor.

Definition at line 566 of file extendedEdgeMesh.C.

Member Function Documentation

◆ TypeName()

TypeName ( "extendedEdgeMesh"  )

Runtime type information.

◆ classifyFeaturePoint()

Foam::extendedEdgeMesh::pointStatus classifyFeaturePoint ( label  ptI) const
protected

Classify the type of feature point. Requires valid stored member.

data for edges and normals.

Definition at line 175 of file extendedEdgeMesh.C.

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

Referenced by extendedEdgeMesh::canRead().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sortPointsAndEdges()

void sortPointsAndEdges ( const Patch &  surf,
const labelList featureEdges,
const labelList regionFeatureEdges,
const labelList feaurePoints 
)
protected

◆ canRead()

bool canRead ( const fileName name,
const bool  verbose = false 
)
static

Can we read this file format?

Definition at line 157 of file extendedEdgeMesh.C.

References extendedEdgeMesh::classifyFeaturePoint(), fileName::ext(), and fileName::lessExt().

Referenced by extendedEdgeMesh::canWriteType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ canReadType()

bool canReadType ( const word ext,
const bool  verbose = false 
)
static

Can we read this file format?

Definition at line 125 of file extendedEdgeMesh.C.

References extendedEdgeMesh::canWriteType().

Referenced by extendedEdgeMesh::writeTypes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ canWriteType()

bool canWriteType ( const word ext,
const bool  verbose = false 
)
static

Can we write this file format type?

Definition at line 141 of file extendedEdgeMesh.C.

References extendedEdgeMesh::canRead().

Referenced by extendedEdgeMesh::canReadType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readTypes()

Foam::wordHashSet readTypes ( )
static

Definition at line 109 of file extendedEdgeMesh.C.

◆ writeTypes()

Foam::wordHashSet writeTypes ( )
static

Definition at line 115 of file extendedEdgeMesh.C.

References extendedEdgeMesh::canReadType().

Here is the call graph for this function:

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr  ,
extendedEdgeMesh  ,
fileExtension  ,
(const fileName &name ,
(name  
)

◆ New() [1/2]

Foam::autoPtr< Foam::extendedEdgeMesh > New ( const fileName name,
const word ext 
)
static

Select constructed from filename (explicit extension)

Definition at line 40 of file extendedEdgeMeshNew.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::name(), and Foam::nl.

Referenced by extendedEdgeMesh::read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New() [2/2]

Foam::autoPtr< Foam::extendedEdgeMesh > New ( const fileName name)
static

Select constructed from filename (implicit extension)

Definition at line 63 of file extendedEdgeMeshNew.C.

References fileName::ext(), fileName::lessExt(), and Foam::New().

Here is the call graph for this function:

◆ nearestFeaturePoint()

void nearestFeaturePoint ( const point sample,
scalar  searchDistSqr,
pointIndexHit info 
) const

Find nearest surface edge for the sample point.

Definition at line 601 of file extendedEdgeMesh.C.

References extendedEdgeMesh::nearestFeatureEdge(), and extendedEdgeMesh::pointTree().

Referenced by extendedEdgeMesh::read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nearestFeatureEdge() [1/2]

void nearestFeatureEdge ( const point sample,
scalar  searchDistSqr,
pointIndexHit info 
) const

Find nearest surface edge for the sample point.

Definition at line 616 of file extendedEdgeMesh.C.

References extendedEdgeMesh::edgeTree().

Referenced by extendedEdgeMesh::nearestFeatureEdge(), and extendedEdgeMesh::nearestFeaturePoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nearestFeatureEdge() [2/2]

void nearestFeatureEdge ( const pointField samples,
const scalarField searchDistSqr,
pointIndexHitList info 
) const

Find nearest surface edge for each sample point.

Definition at line 631 of file extendedEdgeMesh.C.

References forAll, extendedEdgeMesh::nearestFeatureEdge(), extendedEdgeMesh::nearestFeatureEdgeByType(), List< T >::setSize(), and List< T >::size().

Here is the call graph for this function:

◆ nearestFeatureEdgeByType()

void nearestFeatureEdgeByType ( const point sample,
const scalarField searchDistSqr,
pointIndexHitList info 
) const

◆ allNearestFeaturePoints()

void allNearestFeaturePoints ( const point sample,
scalar  searchRadiusSqr,
pointIndexHitList info 
) const

Find all the feature points within searchDistSqr of sample.

Definition at line 688 of file extendedEdgeMesh.C.

References extendedEdgeMesh::allNearestFeatureEdges(), forAll, edgeMesh::points(), extendedEdgeMesh::pointTree(), List< T >::size(), and List< T >::transfer().

Referenced by extendedEdgeMesh::nearestFeatureEdgeByType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ allNearestFeatureEdges()

void allNearestFeatureEdges ( const point sample,
const scalar  searchRadiusSqr,
pointIndexHitList info 
) const

◆ minDisconnectedDist()

Foam::scalar minDisconnectedDist ( const pointIndexHitList hitList) const

Return the minimum distance between disconnected edges.

Definition at line 775 of file extendedEdgeMesh.C.

References edge::connected(), edgeMesh::edges(), Foam::GREAT, PointIndexHit< Point >::hit(), PointIndexHit< Point >::hitPoint(), PointIndexHit< Point >::index(), Foam::mag(), Foam::min(), Foam::minDist(), and List< T >::size().

Referenced by extendedEdgeMesh::allNearestFeatureEdges().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ convexStart()

Foam::label convexStart ( ) const
inline

Return the index of the start of the convex feature points.

Definition at line 28 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::convexStart_.

◆ concaveStart()

Foam::label concaveStart ( ) const
inline

Return the index of the start of the concave feature points.

Definition at line 34 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::concaveStart_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ mixedStart()

Foam::label mixedStart ( ) const
inline

Return the index of the start of the mixed type feature points.

Definition at line 40 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::mixedStart_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ nonFeatureStart()

Foam::label nonFeatureStart ( ) const
inline

Return the index of the start of the non-feature points.

Definition at line 46 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::nonFeatureStart_.

Referenced by extendedEdgeMesh::add().

Here is the caller graph for this function:

◆ externalStart()

Foam::label externalStart ( ) const
inline

Return the index of the start of the external feature edges.

Definition at line 52 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::externalStart_.

◆ internalStart()

Foam::label internalStart ( ) const
inline

Return the index of the start of the internal feature edges.

Definition at line 58 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::internalStart_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ flatStart()

Foam::label flatStart ( ) const
inline

Return the index of the start of the flat feature edges.

Definition at line 64 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::flatStart_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ openStart()

Foam::label openStart ( ) const
inline

Return the index of the start of the open feature edges.

Definition at line 70 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::openStart_.

Referenced by extendedEdgeMesh::add().

Here is the caller graph for this function:

◆ multipleStart()

Foam::label multipleStart ( ) const
inline

Return the index of the start of the multiply-connected feature.

edges

Definition at line 76 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::multipleStart_.

Referenced by extendedEdgeMesh::add().

Here is the caller graph for this function:

◆ featurePoint()

bool featurePoint ( label  ptI) const
inline

Return whether or not the point index is a feature point.

Definition at line 82 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::nonFeatureStart_.

Referenced by extendedEdgeMesh::featurePointNormals().

Here is the caller graph for this function:

◆ normals()

const Foam::vectorField & normals ( ) const
inline

Return the normals of the surfaces adjacent to the feature edges.

and points

Definition at line 88 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::normals_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ normalVolumeTypes()

const Foam::List< Foam::extendedEdgeMesh::sideVolumeType > & normalVolumeTypes ( ) const
inline

Return.

Definition at line 95 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::normalVolumeTypes_.

◆ edgeDirections()

const Foam::vectorField & edgeDirections ( ) const
inline

Return the edgeDirection vectors.

Definition at line 101 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::edgeDirections_.

Referenced by extendedEdgeMesh::add(), extendedEdgeMesh::edgeDirection(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ normalDirections()

const Foam::labelListList & normalDirections ( ) const
inline

Definition at line 109 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::edgeDirection(), and extendedEdgeMesh::normalDirections_.

Here is the call graph for this function:

◆ edgeDirection()

Foam::vector edgeDirection ( label  edgeI,
label  ptI 
) const
inline

Return the direction of edgeI, pointing away from ptI.

Definition at line 116 of file extendedEdgeMeshI.H.

References Foam::e, extendedEdgeMesh::edgeDirections(), edgeMesh::edges(), edge::end(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, edge::start(), and Foam::Zero.

Referenced by extendedEdgeMesh::normalDirections().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeNormals() [1/3]

const Foam::labelListList & edgeNormals ( ) const
inline

Return the indices of the normals that are adjacent to the.

feature edges

Definition at line 144 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::edgeNormals_.

Referenced by extendedEdgeMesh::add(), extendedEdgeMesh::edgeNormals(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ edgeNormals() [2/3]

Foam::vectorField edgeNormals ( const labelList edgeNormIs) const
inline

Return the normal vectors for a given set of normal indices.

Definition at line 152 of file extendedEdgeMeshI.H.

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

Here is the call graph for this function:

◆ edgeNormals() [3/3]

Foam::vectorField edgeNormals ( label  edgeI) const
inline

Return the normal vectors for a given edge.

Definition at line 167 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::edgeNormals(), and extendedEdgeMesh::edgeNormals_.

Here is the call graph for this function:

◆ featurePointNormals() [1/2]

const Foam::labelListList & featurePointNormals ( ) const
inline

Return the indices of the normals that are adjacent to the.

feature points

Definition at line 175 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::featurePointNormals_.

Referenced by extendedEdgeMesh::add(), and extendedEdgeMesh::flipNormals().

Here is the caller graph for this function:

◆ featurePointNormals() [2/2]

Foam::vectorField featurePointNormals ( label  ptI) const
inline

Return the normal vectors for a given feature point.

Definition at line 182 of file extendedEdgeMeshI.H.

References Foam::endl(), extendedEdgeMesh::featurePoint(), extendedEdgeMesh::featurePointNormals_, forAll, extendedEdgeMesh::normals_, List< T >::size(), and WarningInFunction.

Here is the call graph for this function:

◆ featurePointEdges()

const Foam::labelListList & featurePointEdges ( ) const
inline

Return the edge labels for a given feature point. Edges are.

ordered by the faces that they share. The edge labels correspond to the entry in edges().

Definition at line 210 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::featurePointEdges_.

◆ regionEdges()

const Foam::labelList & regionEdges ( ) const
inline

Return the feature edges which are on the boundary between.

regions

Definition at line 216 of file extendedEdgeMeshI.H.

References extendedEdgeMesh::regionEdges_.

Referenced by extendedEdgeMesh::add(), extendedEdgeMesh::flipNormals(), and refinementFeatures::regionEdgeTrees().

Here is the caller graph for this function:

◆ getPointStatus()

Foam::extendedEdgeMesh::pointStatus getPointStatus ( label  ptI) const
inline

◆ getEdgeStatus()

Foam::extendedEdgeMesh::edgeStatus getEdgeStatus ( label  edgeI) const
inline

◆ edgeBaffles()

Foam::PackedList< 2 > edgeBaffles ( label  edgeI) const
inline

Return the baffle faces of a specified edge.

Definition at line 271 of file extendedEdgeMeshI.H.

References PackedList< nBits >::append(), extendedEdgeMesh::edgeNormals_, forAll, extendedEdgeMesh::normalVolumeTypes_, and List< T >::size().

Referenced by extendedEdgeMesh::getEdgeStatus().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointTree()

const Foam::indexedOctree< Foam::treeDataPoint > & pointTree ( ) const

Demand driven construction of octree for feature points.

Definition at line 825 of file extendedEdgeMesh.C.

References Foam::e, Foam::identity(), extendedEdgeMesh::nonFeatureStart_, edgeMesh::points(), and extendedEdgeMesh::pointTree_.

Referenced by extendedEdgeMesh::allNearestFeaturePoints(), and extendedEdgeMesh::nearestFeaturePoint().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeTree()

const Foam::indexedOctree< Foam::treeDataEdge > & edgeTree ( ) const

Demand driven construction of octree for boundary edges.

Definition at line 857 of file extendedEdgeMesh.C.

References Foam::e, edgeMesh::edges(), extendedEdgeMesh::edgeTree_, Foam::identity(), and edgeMesh::points().

Referenced by extendedEdgeMesh::nearestFeatureEdge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeTreesByType()

const Foam::PtrList< Foam::indexedOctree< Foam::treeDataEdge > > & edgeTreesByType ( ) const

◆ transfer()

void transfer ( extendedEdgeMesh mesh)

◆ xfer()

Transfer contents to the Xfer container.

Definition at line 972 of file extendedEdgeMesh.C.

◆ clear()

void clear ( )
virtual

◆ add()

void add ( const extendedEdgeMesh fem)

◆ flipNormals()

void flipNormals ( )

◆ read() [1/2]

bool read ( const fileName name,
const word ext 
)

Read from file. Chooses reader based on explicit extension.

Definition at line 589 of file extendedEdgeMesh.C.

References extendedEdgeMesh::nearestFeaturePoint(), extendedEdgeMesh::New(), and extendedEdgeMesh::transfer().

Referenced by extendedEdgeMesh::extendedEdgeMesh(), and extendedEdgeMesh::read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read() [2/2]

bool read ( const fileName name)
virtual

Read from file. Chooses reader based on detected extension.

Reimplemented from edgeMesh.

Reimplemented in extendedEdgeMeshFormat.

Definition at line 572 of file extendedEdgeMesh.C.

References fileName::ext(), fileName::lessExt(), and extendedEdgeMesh::read().

Here is the call graph for this function:

◆ writeObj()

void writeObj ( const fileName prefix,
const bool  verbose = true 
) const

◆ writeStats()

void writeStats ( Ostream os) const
virtual

◆ classifyEdge()

Foam::extendedEdgeMesh::edgeStatus classifyEdge ( const List< vector > &  norms,
const labelList edNorms,
const vector fC0tofC1 
)
static

Classify the type of feature edge. Requires face centre 0 to face.

centre 1 vector to distinguish internal from external

Definition at line 222 of file extendedEdgeMesh.C.

References List< T >::size().

Referenced by extendedEdgeMesh::classifyFeaturePoint().

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator>> [1/2]

Istream& operator>> ( Istream is,
sideVolumeType vt 
)
friend

◆ operator<< [1/2]

Ostream& operator<< ( Ostream os,
const sideVolumeType vt 
)
friend

◆ operator<< [2/2]

Ostream& operator<< ( Ostream ,
const extendedEdgeMesh  
)
friend

◆ operator>> [2/2]

Istream& operator>> ( Istream ,
extendedEdgeMesh  
)
friend

Member Data Documentation

◆ pointStatusNames_

const Foam::NamedEnum< Foam::extendedEdgeMesh::pointStatus, 4 > pointStatusNames_
static

Definition at line 103 of file extendedEdgeMesh.H.

Referenced by NamedEnum< directionType, 3 >::names().

◆ edgeStatusNames_

const Foam::NamedEnum< Foam::extendedEdgeMesh::edgeStatus, 6 > edgeStatusNames_
static

Definition at line 116 of file extendedEdgeMesh.H.

Referenced by NamedEnum< directionType, 3 >::names().

◆ sideVolumeTypeNames_

const Foam::NamedEnum< Foam::extendedEdgeMesh::sideVolumeType, 4 > sideVolumeTypeNames_
static

◆ cosNormalAngleTol_

Foam::scalar cosNormalAngleTol_
static
Initial value:

Angular closeness tolerance for treating normals as the same.

Definition at line 130 of file extendedEdgeMesh.H.

Referenced by NamedEnum< directionType, 3 >::names().

◆ convexStart_

Foam::label convexStart_ = 0
staticprotected

Index of the start of the convex feature points - static as 0.

Definition at line 138 of file extendedEdgeMesh.H.

Referenced by extendedEdgeMesh::convexStart(), NamedEnum< directionType, 3 >::names(), and extendedEdgeMesh::writeStats().

◆ externalStart_

Foam::label externalStart_ = 0
staticprotected

◆ concaveStart_

label concaveStart_
protected

◆ mixedStart_

label mixedStart_
protected

◆ nonFeatureStart_

label nonFeatureStart_
protected

◆ internalStart_

label internalStart_
protected

◆ flatStart_

label flatStart_
protected

◆ openStart_

label openStart_
protected

◆ multipleStart_

label multipleStart_
protected

◆ normals_

vectorField normals_
protected

◆ normalVolumeTypes_

List<sideVolumeType> normalVolumeTypes_
protected

◆ edgeDirections_

vectorField edgeDirections_
protected

◆ normalDirections_

labelListList normalDirections_
protected

Starting directions for the edges.

This vector points to the half of the plane defined by the first edge normal.

Definition at line 180 of file extendedEdgeMesh.H.

Referenced by extendedEdgeMesh::clear(), extendedEdgeMesh::normalDirections(), Foam::operator<<(), Foam::operator>>(), and extendedEdgeMesh::transfer().

◆ edgeNormals_

labelListList edgeNormals_
protected

◆ featurePointNormals_

labelListList featurePointNormals_
protected

Indices of the normals that are adjacent to the feature points.

(only valid for 0..nonFeatureStart_-1)

Definition at line 187 of file extendedEdgeMesh.H.

Referenced by extendedEdgeMesh::add(), extendedEdgeMesh::clear(), extendedEdgeMesh::featurePointNormals(), extendedEdgeMesh::flipNormals(), Foam::operator<<(), Foam::operator>>(), and extendedEdgeMesh::transfer().

◆ featurePointEdges_

labelListList featurePointEdges_
protected

Indices of feature edges attached to feature points. The edges are.

ordered so that they can be circulated.

Definition at line 191 of file extendedEdgeMesh.H.

Referenced by extendedEdgeMesh::clear(), extendedEdgeMesh::featurePointEdges(), Foam::operator<<(), Foam::operator>>(), and extendedEdgeMesh::transfer().

◆ regionEdges_

labelList regionEdges_
protected

◆ pointTree_

autoPtr<indexedOctree<treeDataPoint> > pointTree_
mutableprotected

◆ edgeTree_

autoPtr<indexedOctree<treeDataEdge> > edgeTree_
mutableprotected

◆ edgeTreesByType_

PtrList<indexedOctree<treeDataEdge> > edgeTreesByType_
mutableprotected

◆ nPointTypes

Foam::label nPointTypes = 4
static

Number of possible point types (i.e. number of slices)

Definition at line 226 of file extendedEdgeMesh.H.

Referenced by NamedEnum< directionType, 3 >::names().

◆ nEdgeTypes

Foam::label nEdgeTypes = 5
static

Number of possible feature edge types (i.e. number of slices)

Definition at line 229 of file extendedEdgeMesh.H.

Referenced by extendedEdgeMesh::edgeTreesByType(), and NamedEnum< directionType, 3 >::names().


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