| 107 | \*---------------------------------------------------------------------------*/ |
| 108 | |
| 109 | class cellCuts |
| 110 | : |
| 111 | public edgeVertex |
| 112 | { |
| 113 | // Private data |
| 114 | |
| 115 | // Per point/edge status |
| 116 | |
| 117 | //- Is mesh point cut |
| 118 | boolList pointIsCut_; |
| 119 | |
| 120 | //- Is edge cut |
| 121 | boolList edgeIsCut_; |
| 122 | |
| 123 | //- If edge is cut gives weight (0->start() to 1->end()) |
| 124 | scalarField edgeWeight_; |
| 125 | |
| 126 | |
| 127 | // Cut addressing |
| 128 | |
| 129 | //- Cuts per existing face (includes those along edge of face) |
| 130 | // Cuts in no particular order. |
| 131 | mutable autoPtr<labelListList> faceCutsPtr_; |
| 132 | |
| 133 | //- Per face : cut across edge (so not along existing edge) |
| 134 | // (can only be one per face) |
| 135 | Map<edge> faceSplitCut_; |
| 136 | |
| 137 | |
| 138 | // Cell-cut addressing |
| 139 | |
| 140 | //- Loop across cell circumference |
| 141 | labelListList cellLoops_; |
| 142 | |
| 143 | //- Number of valid loops in cellLoops_ |
| 144 | label nLoops_; |
| 145 | |
| 146 | //- For each cut cell the points on the 'anchor' side of the cell. |
| 147 | labelListList cellAnchorPoints_; |
| 148 | |
| 149 | |
| 150 | // Private Static Functions |
| 151 | |
| 152 | //- Find value in first n elements of list. |
| 153 | static label findPartIndex |
| 154 | ( |
| 155 | const labelList&, |
| 156 | const label n, |
| 157 | const label val |
| 158 | ); |
| 159 | |
| 160 | //- Create boolList with all labels specified set to true |
| 161 | // (and rest to false) |
| 162 | static boolList expand(const label size, const labelList& labels); |
| 163 | |
| 164 | //- Create scalarField with all specified labels set to corresponding |
| 165 | // value in scalarField. |
| 166 | static scalarField expand |