56 const VRWGraph& containedElements = activeSlotPtr_->containedTriangles_;
57 VRWGraph& containedEdges = activeSlotPtr_->containedEdges_;
61 forAllRow(containedElements, containedElementsLabel_, tI)
63 const label facetI = containedElements(containedElementsLabel_, tI);
67 const label edgeI = faceEdges(facetI, feI);
69 if( addEdge.
found(edgeI) )
76 surface[edgeFaces(edgeI, 0)].region() !=
77 surface[edgeFaces(edgeI, 1)].region()
80 const edge& edg = edges[edgeI];
83 if( intersectsLine(rootBox,
s,
e) )
92 if( addedEdges.
size() != 0 )
94 containedEdgesLabel_ = containedEdges.
size();
109 slotPtr = activeSlotPtr_;
112 Info <<
"Refining the cube " << *
this <<
endl;
121 subCubes[scI] = NULL;
124 for(
label scI=0;scI<4;++scI)
129 slotPtr->
cubes_.append(cc);
131 subCubes[scI] = &slotPtr->
cubes_[cubeI];
132 subCubes[scI]->activeSlotPtr_ = slotPtr;
133 subCubes[scI]->setCubeType(this->cubeType());
134 subCubes[scI]->setProcNo(this->procNo());
139 subCubesPtr_ = &slotPtr->
childCubes_(subCubesLabel, 0);
141 if( hasContainedElements() )
144 activeSlotPtr_->containedTriangles_;
147 Info <<
"Distributing contained elements "
148 << containedElements[containedElementsLabel_] <<
endl;
154 forAllRow(containedElements, containedElementsLabel_, tI)
156 const label elI = containedElements(containedElementsLabel_, tI);
159 for(
label scI=0;scI<4;++scI)
161 subCubes[scI]->intersectsTriangleExact
170 elementsInSubCubes[scI].append(elI);
176 <<
" is not transferred to the child cubes!" <<
endl;
180 forAll(elementsInSubCubes, scI)
184 if( elmts.
size() != 0 )
187 subCubes[scI]->containedElementsLabel_ = ct.
size();
192 Info <<
"Elements in leaf " << scI <<
" are "
193 << ct[subCubes[scI]->containedElements()]
200 for(
label scI=0;scI<4;++scI)
201 if( subCubes[scI]->hasContainedElements() )
203 subCubes[scI]->findContainedEdges
209 else if( subCubes[scI]->cubeType() & DATA )
211 subCubes[scI]->setCubeType(UNKNOWN);
216 for(
label scI=0;scI<4;++scI)
217 Info <<
"Refined cube " << scI <<
" is "
218 << *subCubes[scI] <<
endl;
230 slotPtr = activeSlotPtr_;
233 Info <<
"Refining the cube " << *
this <<
endl;
243 for(
label scI=0;scI<8;++scI)
248 subCubes[scI] = &slotPtr->
cubes_[cubeI];
249 subCubes[scI]->activeSlotPtr_ = slotPtr;
250 subCubes[scI]->setCubeType(this->cubeType());
251 subCubes[scI]->setProcNo(this->procNo());
256 subCubesPtr_ = &slotPtr->
childCubes_(subCubesLabel, 0);
258 if( hasContainedElements() )
261 activeSlotPtr_->containedTriangles_;
264 Info <<
"Distributing contained elements "
265 << containedElements[containedElementsLabel_] <<
endl;
271 forAllRow(containedElements, containedElementsLabel_, tI)
273 const label elI = containedElements(containedElementsLabel_, tI);
276 for(
label scI=0;scI<8;++scI)
278 subCubes[scI]->intersectsTriangleExact
287 elementsInSubCubes[scI].append(elI);
293 <<
" is not transferred to the child cubes!" <<
endl;
297 forAll(elementsInSubCubes, scI)
301 if( elmts.
size() != 0 )
304 subCubes[scI]->containedElementsLabel_ = ct.
size();
309 Info <<
"Elements in leaf " << scI <<
" are "
310 << ct[subCubes[scI]->containedElements()]
317 for(
label scI=0;scI<8;++scI)
318 if( subCubes[scI]->hasContainedElements() )
320 subCubes[scI]->findContainedEdges
326 else if( subCubes[scI]->cubeType() & DATA )
328 subCubes[scI]->setCubeType(UNKNOWN);
333 for(
label scI=0;scI<8;++scI)
334 Info <<
"Refined cube " << scI <<
" is "
335 << *subCubes[scI] <<
endl;
348 slotPtr = activeSlotPtr_;
359 subCubesPtr_ = &slotPtr->
childCubes_(subCubesLabel, 0);
368 subCubesPtr_[scI] = &slotPtr->
cubes_[cubeI];
370 subCubesPtr_[scI]->activeSlotPtr_ = slotPtr;
371 subCubesPtr_[scI]->setCubeType(this->cubeType());
372 subCubesPtr_[scI]->setProcNo(this->procNo());
374 if( hasContainedElements() )
377 activeSlotPtr_->containedTriangles_;
380 forAllRow(containedElements, containedElementsLabel_, tI)
382 const label elI = containedElements(containedElementsLabel_, tI);
384 subCubesPtr_[scI]->intersectsTriangleExact
398 subCubesPtr_[scI]->containedElementsLabel_ =
402 subCubesPtr_[scI]->findContainedEdges
414 const label elementsRowI,
415 const label edgesRowI,
420 slotPtr = activeSlotPtr_;
430 subCubesPtr_ = &slotPtr->
childCubes_(subCubesLabel, 0);
439 subCubesPtr_[scI] = &slotPtr->
cubes_[cubeI];
441 subCubesPtr_[scI]->activeSlotPtr_ = slotPtr;
442 subCubesPtr_[scI]->setCubeType(this->cubeType());
443 subCubesPtr_[scI]->setProcNo(this->procNo());
446 subCubesPtr_[scI]->containedElementsLabel_ = elementsRowI;
447 subCubesPtr_[scI]->containedEdgesLabel_ = edgesRowI;