]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/SketchAPI/SketchAPI_Translation.cpp
Salome HOME
Add new method to get the list of rotated/translated entities of MultiRotation/MultiT...
[modules/shaper.git] / src / SketchAPI / SketchAPI_Translation.cpp
index ff32e3fa2e221500faec4e12d5995fe8c62a10ff..60b88fbf6d27f96bce42dc7ab6a12c0706deb78e 100644 (file)
@@ -63,6 +63,21 @@ void SketchAPI_Translation::setTranslationList(
 }
 
 std::list<std::shared_ptr<SketchAPI_SketchEntity> > SketchAPI_Translation::translated() const
+{
+  std::list<ObjectPtr> aList = translatedObjects()->list();
+  // remove all initial features
+  std::list<FeaturePtr> anIntermediate;
+  std::list<ObjectPtr>::const_iterator anIt = aList.begin();
+  for (; anIt != aList.end(); ++anIt) {
+    FeaturePtr aFeature = ModelAPI_Feature::feature(*anIt);
+    AttributeBooleanPtr isCopy = aFeature->boolean(SketchPlugin_SketchEntity::COPY_ID());
+    if (isCopy.get() && isCopy->value())
+      anIntermediate.push_back(aFeature);
+  }
+  return SketchAPI_SketchEntity::wrap(anIntermediate);
+}
+
+std::list<std::shared_ptr<SketchAPI_SketchEntity> > SketchAPI_Translation::translatedList() const
 {
   std::list<ObjectPtr> aList = translationList()->list();
   std::set<ObjectPtr> anOriginalObjects;
@@ -129,7 +144,7 @@ void SketchAPI_Translation::dump(ModelHighAPI_Dumper& theDumper) const
 
   // Dump variables for a list of translated features
   theDumper << "[";
-  std::list<std::shared_ptr<SketchAPI_SketchEntity> > aList = translated();
+  std::list<std::shared_ptr<SketchAPI_SketchEntity> > aList = translatedList();
   std::list<std::shared_ptr<SketchAPI_SketchEntity> >::const_iterator anIt = aList.begin();
   for (size_t anIndex = 0; anIndex < aFirstNotDumped; ++anIndex)
     for (int i = 1; i < aNbCopies->value() && anIt != aList.end(); ++i, ++anIt) {
@@ -137,7 +152,7 @@ void SketchAPI_Translation::dump(ModelHighAPI_Dumper& theDumper) const
         theDumper << ", ";
       theDumper << (*anIt)->feature();
     }
-  theDumper << "] = " << theDumper.name(aBase) << ".translated()" << std::endl;
+  theDumper << "] = " << theDumper.name(aBase) << ".translatedList()" << std::endl;
 
   if (theDumper.isDumped(aTransObjects)) {
     aNbDumpedArguments.erase(aBase);