137 mutable std::unique_ptr<labelListList> faceCutsPtr_;
159 static label findPartIndex
181 static label firstUnique
192 void writeUncutOBJ(
const fileName&,
const label celli)
const;
213 label edgeVertexToFace
221 label vertexVertexToFace
232 void calcFaceCuts()
const;
246 label loopFace(
const label celli,
const labelList& loop)
const;
252 const label startCut,
254 const label exclude0,
255 const label exclude1,
257 const label otherCut,
267 const label startCut,
269 const label otherCut,
291 const label startCut,
296 label& beforeLastCut,
307 const label startCut,
315 void calcCellLoops(
const labelList& cutCells);
340 bool loopAnchorConsistent
387 bool conservativeValidLoop
409 void setFromCellLoops();
421 void setFromCellLoops
434 void setFromCellCutter
442 void setFromCellCutter
450 void orientPlanesAndLoops();
454 void calcLoopsAndAddressing(
const labelList& cutCells);
464 void operator=(
const cellCuts&) =
delete;
483 const bool verbose =
true 493 const bool verbose =
true 505 const bool verbose =
true 515 const bool verbose =
true 526 const bool verbose =
true 540 const bool verbose =
true 581 return *faceCutsPtr_;
587 return faceSplitCut_;
605 return cellAnchorPoints_;
613 pointField loopPoints(
const label celli)
const;
624 void flip(
const label celli);
const boolList & edgeIsCut() const
Is edge cut.
A class for handling file names.
const labelListList & faceCuts() const
Cuts per existing face (includes those along edge of face)
ClassName("cellCuts")
Runtime type information.
void flip(const label celli)
Flip loop for celli. Updates anchor points as well.
Abstract base class. Concrete implementations know how to cut a cell (i.e. determine a loop around th...
Description of cuts across cells.
void clearOut()
Clear out demand-driven storage.
Combines edge or vertex in single label. Used to specify cuts across cell circumference.
~cellCuts()=default
Destructor.
const polyMesh & mesh() const
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
const scalarField & edgeWeight() const
If edge is cut gives weight (ratio between start() and end())
label nLoops() const
Number of valid cell loops.
const boolList & pointIsCut() const
Is mesh point cut.
const Map< edge > & faceSplitCut() const
Gives for split face the two cuts that split the face into two.
const labelListList & cellLoops() const
For each cut cell the cut along the circumference.
Mesh consisting of general polyhedral cells.
void writeCellOBJ(const fileName &dir, const label celli) const
debugging:Write edges of cell and loop
labelList nonAnchorPoints(const labelList &cellPoints, const labelList &anchorPoints, const labelList &loop) const
Invert anchor point selection.
void flipLoopOnly(const label celli)
Flip loop for celli. Does not update anchors. Use with care.
A HashTable to objects of type <T> with a label key.
const labelListList & cellAnchorPoints() const
For each cut cell the points on the 'anchor' side of the cell.