- //2. Find intersecting sub shapes
- Standard_Integer aNb, i, k;
- BOPDS_VectorOfInterfEE& aEEs=myDS->InterfEE();
- BOPDS_VectorOfInterfEF& aEFs=myDS->InterfEF();
- for (k=0; k<2; ++k) {
- aNb = !k ? aEEs.Extent() : aEFs.Extent();
- for (i = 0; i < aNb; ++i) {
- BOPDS_Interf *aInt = !k ? (BOPDS_Interf*) (&aEEs(i)) :
- (BOPDS_Interf*) (&aEFs(i));
- aInt->Indices(nS1, nS2);
- if (aMI1.Contains(nS1) && aMI2.Contains(nS2) ||
- aMI1.Contains(nS2) && aMI2.Contains(nS1)) {
- const IntTools_CommonPrt& aCPart = !k ? aEEs(i).CommonPart() :
- aEFs(i).CommonPart();
- if (aCPart.Type() == TopAbs_EDGE) {
- ++iCountE;
- } else {
- ++iCountV;
- }
- if ((iCountV + iCountE) > 1) {
- return bToIntersect;
- }
- }
- }
- }
+ const BOPDS_FaceInfo& aFI1=myDS->ChangeFaceInfo(nF1);
+ const BOPDS_FaceInfo& aFI2=myDS->ChangeFaceInfo(nF2);