Salome HOME
projects
/
modules
/
shaper.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correction of icon
[modules/shaper.git]
/
src
/
PartSetPlugin
/
PartSetPlugin_Remove.cpp
diff --git
a/src/PartSetPlugin/PartSetPlugin_Remove.cpp
b/src/PartSetPlugin/PartSetPlugin_Remove.cpp
index 5494949d8337448b660da84d563b46943b42ff1a..0c47368fc1eeb4ea8c56f0a99c44e78b33c3eb1a 100644
(file)
--- a/
src/PartSetPlugin/PartSetPlugin_Remove.cpp
+++ b/
src/PartSetPlugin/PartSetPlugin_Remove.cpp
@@
-1,3
+1,5
@@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
// File: PartSetPlugin_Remove.cxx
// Created: 20 May 2014
// Author: Mikhail PONIKAROV
// File: PartSetPlugin_Remove.cxx
// Created: 20 May 2014
// Author: Mikhail PONIKAROV
@@
-8,15
+10,17
@@
#include <ModelAPI_Data.h>
#include <ModelAPI_AttributeDocRef.h>
#include <ModelAPI_ResultPart.h>
#include <ModelAPI_Data.h>
#include <ModelAPI_AttributeDocRef.h>
#include <ModelAPI_ResultPart.h>
+#include <ModelAPI_Session.h>
+#include <ModelAPI_Feature.h>
void PartSetPlugin_Remove::execute()
{
void PartSetPlugin_Remove::execute()
{
-
boost
::shared_ptr<ModelAPI_Session> aPManager = ModelAPI_Session::get();
-
boost
::shared_ptr<ModelAPI_Document> aRoot = aPManager->moduleDocument();
-
boost
::shared_ptr<ModelAPI_Document> aCurrent;
-
boost
::shared_ptr<PartSetPlugin_Part> a;
+
std
::shared_ptr<ModelAPI_Session> aPManager = ModelAPI_Session::get();
+
std
::shared_ptr<ModelAPI_Document> aRoot = aPManager->moduleDocument();
+
std
::shared_ptr<ModelAPI_Document> aCurrent;
+
std
::shared_ptr<PartSetPlugin_Part> a;
for (int a = aRoot->size(ModelAPI_ResultPart::group()) - 1; a >= 0; a--) {
for (int a = aRoot->size(ModelAPI_ResultPart::group()) - 1; a >= 0; a--) {
- ResultPartPtr aPart =
boost
::dynamic_pointer_cast<ModelAPI_ResultPart>(
+ ResultPartPtr aPart =
std
::dynamic_pointer_cast<ModelAPI_ResultPart>(
aRoot->object(ModelAPI_ResultPart::group(), a));
if (aPart
&& aPart->data()->document(ModelAPI_ResultPart::DOC_REF())->value()
aRoot->object(ModelAPI_ResultPart::group(), a));
if (aPart
&& aPart->data()->document(ModelAPI_ResultPart::DOC_REF())->value()
@@
-25,7
+29,10
@@
void PartSetPlugin_Remove::execute()
if (aFeature) {
// do remove
aPart->data()->document(ModelAPI_ResultPart::DOC_REF())->value()->close();
if (aFeature) {
// do remove
aPart->data()->document(ModelAPI_ResultPart::DOC_REF())->value()->close();
- aRoot->removeFeature(aFeature);
+ std::set<std::shared_ptr<ModelAPI_Feature> > aRefFeatures;
+ aRoot->refsToFeature(aFeature, aRefFeatures);
+ if (aRefFeatures.empty())
+ aRoot->removeFeature(aFeature);
}
}
}
}
}
}