X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_ResultCompSolid.cpp;h=f7cbeba3ce63902964d5bc25827e3b9206cef889;hb=530f5aff42069e844c4a4ef164088ea23ba0e2dd;hp=8f4523c4580b0dc4cbf2658996bc7e0f0ba8d6ee;hpb=a4de236e09b921bc33a28b6a6e0fc3208a86355b;p=modules%2Fshaper.git diff --git a/src/Model/Model_ResultCompSolid.cpp b/src/Model/Model_ResultCompSolid.cpp index 8f4523c45..f7cbeba3c 100755 --- a/src/Model/Model_ResultCompSolid.cpp +++ b/src/Model/Model_ResultCompSolid.cpp @@ -60,7 +60,7 @@ void Model_ResultCompSolid::storeModified(const std::shared_ptr& int Model_ResultCompSolid::numberOfSubs(bool forTree) const { - return mySubs.size(); + return int(mySubs.size()); } std::shared_ptr Model_ResultCompSolid::subResult(const int theIndex, @@ -171,10 +171,10 @@ void Model_ResultCompSolid::updateSubs(const std::shared_ptr& the bool aWasEmpty = mySubs.empty(); Model_Objects* anObjects = std::dynamic_pointer_cast(document())->objects(); unsigned int aSubIndex = 0; - TopExp_Explorer aSolids(aThisShape, TopAbs_SOLID); - for(; aSolids.More(); aSolids.Next(), aSubIndex++) { - std::shared_ptr aSolidShape(new GeomAPI_Shape); - aSolidShape->setImpl(new TopoDS_Shape(aSolids.Current())); + TopoDS_Iterator aShapesIter(aThisShape); + for(; aShapesIter.More(); aShapesIter.Next(), aSubIndex++) { + std::shared_ptr aShape(new GeomAPI_Shape); + aShape->setImpl(new TopoDS_Shape(aShapesIter.Value())); ResultBodyPtr aSub; if (mySubs.size() <= aSubIndex) { // it is needed to create a new sub-result aSub = anObjects->createBody(this->data(), aSubIndex); @@ -182,8 +182,8 @@ void Model_ResultCompSolid::updateSubs(const std::shared_ptr& the } else { // just update shape of this result aSub = mySubs[aSubIndex]; } - if (!aSolidShape->isEqual(aSub->shape())) { - aSub->store(aSolidShape, false); + if (!aShape->isEqual(aSub->shape())) { + aSub->store(aShape, false); aECreator->sendUpdated(aSub, EVENT_DISP); aECreator->sendUpdated(aSub, EVENT_UPD); }