]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Access to feature by index in group
authormpv <mikhail.ponikarov@opencascade.com>
Fri, 4 Apr 2014 07:31:43 +0000 (11:31 +0400)
committermpv <mikhail.ponikarov@opencascade.com>
Fri, 4 Apr 2014 07:31:43 +0000 (11:31 +0400)
src/Model/Model_Document.cxx
src/Model/Model_Document.h
src/ModelAPI/ModelAPI_Document.h

index 8a3f0bf45c3419d5cab8f61f03194d6f50dacb87..3aea0ff6ecbba55a254edcc0bab07a5c64e65c7b 100644 (file)
@@ -191,6 +191,14 @@ shared_ptr<ModelAPI_Iterator> Model_Document::featuresIterator(const string theG
   return shared_ptr<ModelAPI_Iterator>(new Model_Iterator(aThis, groupLabel(theGroup)));
 }
 
+shared_ptr<ModelAPI_Feature> Model_Document::feature(const string& theGroupID, const int theIndex)
+{
+  // TODO: optimize this method
+  shared_ptr<ModelAPI_Iterator>  anIter = featuresIterator(theGroupID);
+  for(int a = 0; a != theIndex; anIter->next()) a++;
+  return anIter->current();
+}
+
 Model_Document::Model_Document(const std::string theID)
     : myID(theID), myDoc(new TDocStd_Document("BinOcaf")) // binary OCAF format
 {
index bc7d6db7422b77c2832bdf815ae936999e0c3374..d96aa15dd039747a06d2fb7113adab3947353a7d 100644 (file)
@@ -78,6 +78,10 @@ public:
 
   MODEL_EXPORT virtual const std::string& id() const {return myID;}
 
+  //! Returns the feature in the group by the index (started from zero)
+  MODEL_EXPORT virtual std::shared_ptr<ModelAPI_Feature> 
+    feature(const std::string& theGroupID, const int theIndex);
+
 protected:
 
   //! Returns (creates if needed) the group label
index 90a6a9184341b7a7c1b0519892ba32aad4c8b39c..e40e9f5b592dd45fe091fe378ad721a45cd160c6 100644 (file)
@@ -78,8 +78,13 @@ public:
   MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Iterator> featuresIterator(
     const std::string theGroup) = 0;
 
+  ///! Returns the id of hte document
   MODELAPI_EXPORT virtual const std::string& id() const = 0;
 
+  //! Returns the feature in the group by the index (started from zero)
+  MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Feature> 
+    feature(const std::string& theGroupID, const int theIndex) = 0;
+
 protected:
   /// Only for SWIG wrapping it is here
   MODELAPI_EXPORT ModelAPI_Document()