+void SketchPlugin_ConstraintFillet::clearResults()
+{
+ // Clear auxiliary flag on initial objects.
+ for(std::map<AttributePtr, FilletFeatures>::iterator aPointsIter = myPointFeaturesMap.begin();
+ aPointsIter != myPointFeaturesMap.end();) {
+ const FilletFeatures& aFilletFeatures = aPointsIter->second;
+ std::list<std::pair<FeaturePtr, bool>>::const_iterator aFeatureIt;
+ for(aFeatureIt = aFilletFeatures.baseEdgesState.cbegin();
+ aFeatureIt != aFilletFeatures.baseEdgesState.cend();
+ ++aFeatureIt) {
+ aFeatureIt->first->boolean(SketchPlugin_SketchEntity::AUXILIARY_ID())->setValue(aFeatureIt->second);
+ }
+ ++aPointsIter;
+ }
+
+ // And remove all produced features.
+ DocumentPtr aDoc = sketch()->document();
+ for(std::map<AttributePtr, FilletFeatures>::iterator aPointsIter = myPointFeaturesMap.begin();
+ aPointsIter != myPointFeaturesMap.end();) {
+ // Remove all produced constraints.
+ const FilletFeatures& aFilletFeatures = aPointsIter->second;
+ std::list<FeaturePtr>::const_iterator aFeatureIt;
+ for(aFeatureIt = aFilletFeatures.resultConstraints.cbegin();
+ aFeatureIt != aFilletFeatures.resultConstraints.cend();
+ ++aFeatureIt) {
+ aDoc->removeFeature(*aFeatureIt);
+ }
+
+ // Remove all result edges.
+ for(aFeatureIt = aFilletFeatures.resultEdges.cbegin();
+ aFeatureIt != aFilletFeatures.resultEdges.cend();
+ ++aFeatureIt) {
+ aDoc->removeFeature(*aFeatureIt);
+ }
+
+ // Remove point from map.
+ myPointFeaturesMap.erase(aPointsIter++);
+ }
+};
+