FeaturePtr aSketch;
PartSet_OperationSketchBase* aPrevOp = dynamic_cast<PartSet_OperationSketchBase*>(aCurOperation);
if (aPrevOp) {
- std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aList = aPrevOp->subPreview();
+ std::list<FeaturePtr> aList = aPrevOp->subFeatures();
XGUI_Displayer* aDisplayer = myWorkshop->displayer();
std::list<int> aModes = aPrevOp->getSelectionModes(aPrevOp->feature());
- std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >::const_iterator
- anIt = aList.begin(), aLast = aList.end();
- for (; anIt != aLast; anIt++) {
- FeaturePtr aFeature = (*anIt).first;
- visualizePreview(aFeature, false, false);
- }
+ std::list<FeaturePtr>::const_iterator anIt = aList.begin(),
+ aLast = aList.end();
+ for (; anIt != aLast; anIt++)
+ visualizePreview(*anIt, false, false);
aDisplayer->updateViewer();
}
}
if (!aFeature || aFeature->getKind() != theCmdId)
return;
- std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aList = aPreviewOp->subPreview();
+ std::list<FeaturePtr> aList = aPreviewOp->subFeatures();
XGUI_Displayer* aDisplayer = myWorkshop->displayer();
std::list<int> aModes = aPreviewOp->getSelectionModes(aPreviewOp->feature());
- std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >::const_iterator
- anIt = aList.begin(), aLast = aList.end();
+ std::list<FeaturePtr>::const_iterator anIt = aList.begin(),
+ aLast = aList.end();
for (; anIt != aLast; anIt++) {
- FeaturePtr aFeature = (*anIt).first;
boost::shared_ptr<SketchPlugin_Feature> aSPFeature =
- boost::dynamic_pointer_cast<SketchPlugin_Feature>((*anIt).first);
+ boost::dynamic_pointer_cast<SketchPlugin_Feature>(*anIt);
if (!aSPFeature)
continue;
-
- Handle(AIS_InteractiveObject) anAIS = aSPFeature->getAISShape(aDisplayer->getAISObject(aFeature));
- if (!anAIS.IsNull())
- aDisplayer->redisplay(aFeature, anAIS, false);
- aDisplayer->activateInLocalContext(aFeature, aModes, false);
+ visualizePreview(*anIt, true, false);
+ aDisplayer->activateInLocalContext(*anIt, aModes, false);
}
aDisplayer->updateViewer();
}
}
}
-std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
- PartSet_OperationSketch::subPreview() const
+std::list<FeaturePtr> PartSet_OperationSketch::subFeatures() const
{
- std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aPreviewMap;
-
- boost::shared_ptr<SketchPlugin_Feature> aFeature;
-
boost::shared_ptr<ModelAPI_Data> aData = feature()->data();
if (!aData->isValid())
- return aPreviewMap;
+ return std::list<FeaturePtr>();
boost::shared_ptr<ModelAPI_AttributeRefList> aRefList =
boost::dynamic_pointer_cast<ModelAPI_AttributeRefList>(aData->attribute(SKETCH_ATTR_FEATURES));
- std::list<FeaturePtr > aFeatures = aRefList->list();
- std::list<FeaturePtr >::const_iterator anIt = aFeatures.begin(),
- aLast = aFeatures.end();
- for (; anIt != aLast; anIt++) {
- aFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(*anIt);
- boost::shared_ptr<GeomAPI_Shape> aPreview = aFeature->preview();
- if (aPreview)
- aPreviewMap[aFeature] = aPreview;
- }
- return aPreviewMap;
+ return aRefList->list();
}
void PartSet_OperationSketch::stopOperation()
/// \param theEvent the mouse event
virtual void mouseMoved(QMouseEvent* theEvent, Handle_V3d_View theView);
- /// Returns the map of the operation previews including the nested feature previews
- /// \return the map of feature to the feature preview
- virtual std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
- subPreview() const;
+ /// Returns the list of the nested features
+ /// \return the list of subfeatures
+ virtual std::list<FeaturePtr> subFeatures() const;
/// Virtual method called when operation stopped - committed or aborted.
/// Emits a signal to hide the preview of the operation
return aFeature->preview();
}
-std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
- PartSet_OperationSketchBase::subPreview() const
+std::list<FeaturePtr> PartSet_OperationSketchBase::subFeatures() const
{
- return std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >();
+ return std::list<FeaturePtr>();
}
std::list<int> PartSet_OperationSketchBase::getSelectionModes(FeaturePtr theFeature) const
#include <ModuleBase_Operation.h>
#include <XGUI_Constants.h>
+#include <XGUI_Displayer.h>
#include <QObject>
+#include <AIS_InteractiveObject.hxx>
+
#include <map>
class Handle_V3d_View;
/// \param theFeature the feature object to obtain the preview
static boost::shared_ptr<GeomAPI_Shape> preview(FeaturePtr theFeature);
- /// Returns the map of the operation previews including the nested feature previews
- /// \return the map of feature to the feature preview
- virtual std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > subPreview() const;
+ /// Returns the list of the nested features
+ /// \return the list of subfeatures
+ virtual std::list<FeaturePtr> subFeatures() const;
/// Returns the operation local selection mode
/// \param theFeature the feature object to get the selection mode