X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_ResultBody.cpp;h=e5f023f11c46af0cfd20166a1094dd9af6060b62;hb=423f6b0a08a86d5e47115b87603cddeae4468b49;hp=93b9961117164953345d83f5a99902d9d0360a40;hpb=4c2fb25615fc2e96957aeaee177251c40a434f4e;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_ResultBody.cpp b/src/ModelAPI/ModelAPI_ResultBody.cpp index 93b996111..e5f023f11 100644 --- a/src/ModelAPI/ModelAPI_ResultBody.cpp +++ b/src/ModelAPI/ModelAPI_ResultBody.cpp @@ -6,10 +6,13 @@ #include "ModelAPI_ResultBody.h" #include +#include +#include ModelAPI_ResultBody::ModelAPI_ResultBody() : myBuilder(0) { + myConnect = ConnectionNotComputed; } ModelAPI_ResultBody::~ModelAPI_ResultBody() @@ -23,3 +26,133 @@ std::string ModelAPI_ResultBody::groupName() return group(); } +void ModelAPI_ResultBody::store(const std::shared_ptr& theShape, + const bool theIsStoreSameShapes) +{ + myBuilder->store(theShape, theIsStoreSameShapes); + myConnect = ConnectionNotComputed; + + static Events_Loop* aLoop = Events_Loop::loop(); + static Events_ID aRedispEvent = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); + static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); + aECreator->sendUpdated(data()->owner(), aRedispEvent); +} + +void ModelAPI_ResultBody::storeGenerated(const std::shared_ptr& theFromShape, + const std::shared_ptr& theToShape) +{ + myBuilder->storeGenerated(theFromShape, theToShape); + myConnect = ConnectionNotComputed; + + static Events_Loop* aLoop = Events_Loop::loop(); + static Events_ID aRedispEvent = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); + static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); + aECreator->sendUpdated(data()->owner(), aRedispEvent); +} + +void ModelAPI_ResultBody::storeModified(const std::shared_ptr& theOldShape, + const std::shared_ptr& theNewShape, + const int theDecomposeSolidsTag) +{ + myBuilder->storeModified(theOldShape, theNewShape, theDecomposeSolidsTag); + myConnect = ConnectionNotComputed; + + static Events_Loop* aLoop = Events_Loop::loop(); + static Events_ID aRedispEvent = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); + static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); + aECreator->sendUpdated(data()->owner(), aRedispEvent); +} + +void ModelAPI_ResultBody::storeWithoutNaming(const std::shared_ptr& theShape) +{ + myBuilder->storeWithoutNaming(theShape); + myConnect = ConnectionNotComputed; + + static Events_Loop* aLoop = Events_Loop::loop(); + static Events_ID aRedispEvent = aLoop->eventByName(EVENT_OBJECT_TO_REDISPLAY); + static const ModelAPI_EventCreator* aECreator = ModelAPI_EventCreator::get(); + aECreator->sendUpdated(data()->owner(), aRedispEvent); +} + +std::shared_ptr ModelAPI_ResultBody::shape() +{ + return myBuilder->shape(); +} + +void ModelAPI_ResultBody::generated(const std::shared_ptr& theNewShape, + const std::string& theName, const int theTag) +{ + myBuilder->generated(theNewShape, theName, theTag); +} + +void ModelAPI_ResultBody::generated(const std::shared_ptr& theOldShape, + const std::shared_ptr& theNewShape, const std::string& theName, + const int theTag) +{ + myBuilder->generated(theOldShape, theNewShape, theName, theTag); +} + +void ModelAPI_ResultBody::modified(const std::shared_ptr& theOldShape, + const std::shared_ptr& theNewShape, const std::string& theName, + const int theTag) +{ + myBuilder->modified(theOldShape, theNewShape, theName, theTag); +} + + +void ModelAPI_ResultBody::deleted( + const std::shared_ptr& theOldShape, const int theTag) +{ + myBuilder->deleted(theOldShape, theTag); +} + +void ModelAPI_ResultBody::loadDeletedShapes (GeomAlgoAPI_MakeShape* theMS, + std::shared_ptr theShapeIn, + const int theKindOfShape, + const int theTag) +{ + myBuilder->loadDeletedShapes(theMS, theShapeIn, theKindOfShape, theTag); +} + +void ModelAPI_ResultBody::loadAndOrientModifiedShapes (GeomAlgoAPI_MakeShape* theMS, + std::shared_ptr theShapeIn, const int theKindOfShape, const int theTag, + const std::string& theName, GeomAPI_DataMapOfShapeShape& theSubShapes, + const bool theIsStoreSeparate) +{ + myBuilder->loadAndOrientModifiedShapes( + theMS, theShapeIn, theKindOfShape, theTag, theName, theSubShapes, theIsStoreSeparate); +} + +void ModelAPI_ResultBody::loadAndOrientGeneratedShapes (GeomAlgoAPI_MakeShape* theMS, + std::shared_ptr theShapeIn, const int theKindOfShape, + const int theTag, const std::string& theName, GeomAPI_DataMapOfShapeShape& theSubShapes) +{ + myBuilder->loadAndOrientGeneratedShapes( + theMS, theShapeIn, theKindOfShape, theTag, theName, theSubShapes); +} + +void ModelAPI_ResultBody::loadFirstLevel(std::shared_ptr theShape, + const std::string& theName, int& theTag) +{ + myBuilder->loadFirstLevel(theShape, theName, theTag); +} + +void ModelAPI_ResultBody::loadDisconnectedEdges(std::shared_ptr theShape, + const std::string& theName, int& theTag) +{ + myBuilder->loadDisconnectedEdges(theShape, theName, theTag); +} + +void ModelAPI_ResultBody::loadDisconnectedVertexes(std::shared_ptr theShape, + const std::string& theName,int& theTag) +{ + myBuilder->loadDisconnectedVertexes(theShape, theName, theTag); +} + +bool ModelAPI_ResultBody::isConnectedTopology() +{ + if (myConnect == ConnectionNotComputed) { + myConnect = shape()->isConnectedTopology() ? IsConnected : IsNotConnected; + } + return myConnect == IsConnected; +}