43#ifndef Foam_isoSurfaceBase_H
44#define Foam_isoSurfaceBase_H
135 const uint8_t maskValue
271#undef declareIsoSurfaceInterpolateMethod
272#define declareIsoSurfaceInterpolateMethod(Type) \
274 virtual tmp<Field<Type>> \
277 const VolumeField<Type>& cellValues, \
278 const Field<Type>& pointValues \
Generic GeometricField class.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
A bounding box defined in terms of min/max extrema points.
Low-level components common to various iso-surface algorithms.
static void resetCuts(UList< cutType > &cuts)
Restore non-BLOCKED state to an UNVISITED state.
bitSet ignoreBoundaryFaces_
Optional boundary faces to ignore.
isoSurfaceBase(const isoSurfaceBase &)=delete
No copy construct.
static autoPtr< isoSurfaceBase > New(const isoSurfaceParams ¶ms, const volScalarField &cellValues, const scalarField &pointValues, const scalar iso, const bitSet &ignoreCells=bitSet())
Create for specified algorithm type.
static label countCutType(const UList< cutType > &cuts, const uint8_t maskValue)
Count the number of cuts matching the mask type.
cutType
The type of cell/face cuts.
@ BLOCKED
Blocked (never cut)
@ ANYCUT
Any cut type (bitmask)
@ SPECIAL
Bitmask for specials.
@ SPHERE
All edges to cell centre cut.
@ TETCUT
Cell cut is a tet.
const scalarField & cellValues() const noexcept
The mesh cell values used for creating the iso-surface.
const scalarField & pVals_
Point values.
scalar isoValue() const noexcept
The iso-value associated with the surface.
label calcCellCuts(List< cutType > &cuts) const
Populate a list of candidate cell cuts using getCellCutType()
labelList meshCells_
For every face, the original cell in mesh.
const scalar iso_
Iso value.
void operator=(const isoSurfaceBase &)=delete
No copy assignment.
cutType getFaceCutType(const label facei) const
Determine face cut for an individual face.
void ignoreCyclics()
Set ignoreBoundaryFaces to ignore cyclics (cyclicACMI)
labelList & meshCells() noexcept
For each face, the original cell in mesh.
const polyMesh & mesh() const noexcept
The mesh for which the iso-surface is associated.
cutType getCellCutType(const label celli) const
const labelList & meshCells() const noexcept
For each face, the original cell in mesh.
const scalarField & pointValues() const noexcept
The mesh point values used for creating the iso-surface.
const polyMesh & mesh_
Reference to mesh.
label blockCells(UList< cutType > &cuts, const bitSet &ignoreCells) const
Mark ignoreCells as BLOCKED.
const scalarField & cVals_
Cell values.
tmp< Field< Type > > interpolateTemplate(const VolumeField< Type > &cellValues, const Field< Type > &pointValues) const
Dummy templated interpolate method.
Preferences for controlling iso-surface algorithms.
algorithmType
The algorithm types.
filterType
The filtering (regularization) to apply.
Mesh consisting of general polyhedral cells.
A class for managing temporary objects.
type
Volume classification types.
#define declareIsoSurfaceInterpolateMethod(Type)