229 const label nCutLayers,
282 const primitiveMesh&
mesh,
295 List<pointStatus> pointSide(
mesh.
nPoints(), NOTSET);
297 for (label celli = 0; celli <
mesh.
nCells(); celli++)
299 if (internalCells.found(celli))
306 const face&
f = faces[cFaces[cFacei]];
310 label pointi =
f[fp];
312 if (pointSide[pointi] == NOTSET)
314 pointSide[pointi] = INSIDE;
316 else if (pointSide[pointi] == OUTSIDE)
318 pointSide[pointi] =
MIXED;
334 const face&
f = faces[cFaces[cFacei]];
338 label pointi =
f[fp];
340 if (pointSide[pointi] == NOTSET)
342 pointSide[pointi] = OUTSIDE;
344 else if (pointSide[pointi] == INSIDE)
346 pointSide[pointi] =
MIXED;
376 for (
const label celli : internalCells)
378 const cell& cFaces =
cells[celli];
380 label usesMixedOnly =
true;
382 for (
const label facei : cFaces)
384 const face&
f = faces[facei];
386 for (
const label pointi :
f)
388 if (pointSide[pointi] !=
MIXED)
390 usesMixedOnly =
false;
402 mixedOnlyCells.insert(celli);
406 return mixedOnlyCells;
cellType
Equivalent to enumeration in "vtkCellType.h" (should be uint8_t)
Various (local, not parallel) searches on polyMesh; uses (demand driven) octree to search...
A class for handling file names.
List< cell > cellList
List of cell.
Mixed uniform/non-uniform (eg, after reduction)
label nPoints() const noexcept
Number of mesh points.
const cellList & cells() const
bool insert(const Key &key)
Insert a new entry, not overwriting existing entries.
static labelHashSet getHangingCells(const primitiveMesh &mesh, const labelHashSet &internalCells)
Get cells using points on 'outside' only.
#define forAll(list, i)
Loop across all elements in list.
HashSet< label, Hash< label > > labelHashSet
A HashSet of labels, uses label hasher.
List< face > faceList
List of faces.
Helper class to search on triSurface.
'Cuts' a mesh with a surface.
virtual const faceList & faces() const
Return raw faces.
static void getSurfaceSets(const polyMesh &mesh, const fileName &surfName, const triSurface &surf, const triSurfaceSearch &querySurf, const pointField &outsidePts, const label nCutLayers, labelHashSet &inside, labelHashSet &outside, labelHashSet &cut)
Divide cells into cut,inside and outside.
label nCells() const noexcept
Number of mesh cells.
Mesh consisting of general polyhedral cells.
List< label > labelList
A List of labels.
Triangulated surface description with patch information.