123 const edge&
e = edges()[edgeI];
125 if (ptI ==
e.start())
127 return edgeDirections()[edgeI];
129 else if (ptI ==
e.end())
131 return -edgeDirections()[edgeI];
136 <<
"Requested ptI " << ptI <<
" is not a point on the requested "
137 <<
"edgeI " << edgeI <<
". edgeI start and end: "
138 <<
e.start() <<
" " <<
e.
end()
188 if (!featurePoint(ptI))
191 <<
"Requesting the normals of a non-feature point. "
192 <<
"Returned zero length vectorField."
198 labelList featPtNormIs(featurePointNormals_[ptI]);
204 norms[i] = normals_[featPtNormIs[i]];
227 if (ptI < concaveStart_)
231 else if (ptI < mixedStart_)
235 else if (ptI < nonFeatureStart_)
247 if (edgeI < internalStart_)
251 else if (edgeI < flatStart_)
255 else if (edgeI < openStart_)
259 else if (edgeI < multipleStart_)
273 const labelList& eNormals = edgeNormals_[edgeI];
275 DynamicList<label> edgeBaffles(eNormals.size());
277 for (
const label normi : eNormals)
279 if (normalVolumeTypes_[normi])
281 edgeBaffles.append(normi);
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A dynamic list of packed unsigned integers, with the number of bits per item specified by the <Width>...
iterator end() noexcept
Return an iterator to end traversing the UList.
void size(const label n)
Older name for setAddressableSize.
const edgeList & edges() const noexcept
Return edges.
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
labelList regionEdges_
Feature edges which are on the boundary between regions.
const labelListList & normalDirections() const
labelListList edgeNormals_
Indices of the normals that are adjacent to the feature edges.
bool featurePoint(label ptI) const
Return whether or not the point index is a feature point.
label externalStart() const
Return the index of the start of the external feature edges.
label openStart() const
Return the index of the start of the open feature edges.
label nonFeatureStart() const
Return the index of the start of the non-feature points.
const vectorField & edgeDirections() const
Return the edgeDirection vectors.
const List< sideVolumeType > & normalVolumeTypes() const
Return.
pointStatus getPointStatus(label ptI) const
Return the pointStatus of a specified point.
label flatStart() const
Return the index of the start of the flat feature edges.
label nonFeatureStart_
Index of the start of the non-feature points.
const labelListList & featurePointEdges() const
Return the edge labels for a given feature point. Edges are.
const labelList & regionEdges() const
Return the feature edges which are on the boundary between.
const labelListList & edgeNormals() const
Return the indices of the normals that are adjacent to the.
vectorField edgeDirections_
Flat and open edges require the direction of the edge.
label openStart_
Index of the start of the open feature edges.
labelListList featurePointEdges_
Indices of feature edges attached to feature points. The edges are.
label flatStart_
Index of the start of the flat feature edges.
label convexStart() const
Return the index of the start of the convex feature points.
List< sideVolumeType > normalVolumeTypes_
Type per normal: which side of normal to mesh.
@ NONFEATURE
Not a feature point.
@ MIXED
A point surrounded by both convex and concave edges.
@ CONCAVE
Fully concave point.
@ CONVEX
Fully convex point (w.r.t normals).
static label externalStart_
Index of the start of the external feature edges - static as 0.
@ FLAT
Neither concave or convex, on a flat surface.
@ OPEN
Only connected to a single face.
@ MULTIPLE
Multiply connected (connected to more than two faces).
label internalStart_
Index of the start of the internal feature edges.
const vectorField & normals() const
Return the normals of the surfaces adjacent to the feature edges.
label multipleStart() const
Return the index of the start of the multiply-connected feature.
vectorField normals_
Normals of the features, to be referred to by index by both feature.
static label convexStart_
Index of the start of the convex feature points - static as 0.
label internalStart() const
Return the index of the start of the internal feature edges.
vector edgeDirection(label edgeI, label ptI) const
Return the direction of edgeI, pointing away from ptI.
label mixedStart_
Index of the start of the mixed type feature points.
PackedList< 2 > edgeBaffles(label edgeI) const
Return the baffle faces of a specified edge.
labelListList normalDirections_
Starting directions for the edges.
const labelListList & featurePointNormals() const
Return the indices of the normals that are adjacent to the.
edgeStatus getEdgeStatus(label edgeI) const
Return the edgeStatus of a specified edge.
label mixedStart() const
Return the index of the start of the mixed type feature points.
label multipleStart_
Index of the start of the multiply-connected feature edges.
label concaveStart() const
Return the index of the start of the concave feature points.
labelListList featurePointNormals_
Indices of the normals that are adjacent to the feature points.
label concaveStart_
Index of the start of the concave feature points.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define WarningInFunction
Report a warning using Foam::Warning.
@ MIXED
Mixed uniform/non-uniform (eg, after reduction).
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Field< vector > vectorField
Specialisation of Field<T> for vector.
static constexpr const zero Zero
Global zero (0).
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define forAll(list, i)
Loop across all elements in list.