- /// Set of already processed features in the "processOperation" method
- std::set<std::shared_ptr<ModelAPI_Feature> > myProcessed;
-
- /// internal structure that contains the updating iteration information:
- /// which object and subobject is iterated, t ocontinue iteration
- struct IterationItem {
- /// the main object, subs of it are iterated
- std::shared_ptr<ModelAPI_CompositeFeature> myMain;
- /// the currently iterated sub-object
- std::shared_ptr<ModelAPI_Feature> mySub;
- };
- /// List of iterated features: composite feature to the currently iterated sub.
- /// The first element in the list has no "main": the root document is not feature.
- std::list<IterationItem> myProcessIterator;
+ /// try if processing is currently performed
+ bool myIsProcessed;
+ /// set that contains features that must be executed only on finish of the operation
+ std::set<std::shared_ptr<ModelAPI_Feature> > myProcessOnFinish;
+ /// to avoid infinitive cycling: feature -> count of the processing periods during this update
+ std::map<std::shared_ptr<ModelAPI_Feature>, int > myProcessed;
+ /// if preview in hte property panel is blocked and any update is postponed until the end of operation
+ bool myIsPreviewBlocked;