| 2117 | |
| 2118 | |
| 2119 | void Foam::cellCuts::setFromCellLoops() |
| 2120 | { |
| 2121 | // 'Uncut' edges/vertices that are not used in loops. |
| 2122 | pointIsCut_ = false; |
| 2123 | |
| 2124 | edgeIsCut_ = false; |
| 2125 | |
| 2126 | faceSplitCut_.clear(); |
| 2127 | |
| 2128 | forAll(cellLoops_, celli) |
| 2129 | { |
| 2130 | const labelList& loop = cellLoops_[celli]; |
| 2131 | |
| 2132 | if (loop.size()) |
| 2133 | { |
| 2134 | // Storage for cross-face cuts |
| 2135 | Map<edge> faceSplitCuts(loop.size()); |
| 2136 | // Storage for points on one side of cell. |
| 2137 | labelList anchorPoints; |
| 2138 | |
| 2139 | if |
| 2140 | ( |
| 2141 | !validLoop |
| 2142 | ( |
| 2143 | celli, |
| 2144 | loop, |
| 2145 | loopWeights(loop), |
| 2146 | faceSplitCuts, |
| 2147 | anchorPoints |
| 2148 | ) |
| 2149 | ) |
| 2150 | { |
| 2151 | //writeOBJ(".", celli, loopPoints(celli), anchorPoints); |
| 2152 | |
| 2153 | WarningInFunction |
| 2154 | << "Illegal loop " << loop |
| 2155 | << " when recreating cut-addressing" |
| 2156 | << " from existing cellLoops for cell " << celli |
| 2157 | << endl; |
| 2158 | |
| 2159 | cellLoops_[celli].setSize(0); |
| 2160 | cellAnchorPoints_[celli].setSize(0); |
| 2161 | } |
| 2162 | else |
| 2163 | { |
| 2164 | // Copy anchor points. |
| 2165 | cellAnchorPoints_[celli].transfer(anchorPoints); |
| 2166 | |
| 2167 | // Copy faceSplitCuts into overall faceSplit info. |
| 2168 | forAllConstIter(Map<edge>, faceSplitCuts, iter) |
| 2169 | { |
| 2170 | faceSplitCut_.insert(iter.key(), iter()); |
| 2171 | } |
| 2172 | |
| 2173 | // Update edgeIsCut, pointIsCut information |
| 2174 | forAll(loop, cutI) |
| 2175 | { |
| 2176 | label cut = loop[cutI]; |
no test coverage detected