mySketch = 0;
}
-void SketchPlugin_Feature::setData(boost::shared_ptr<ModelAPI_Data> theData)
+void SketchPlugin_Feature::setPreview(const boost::shared_ptr<GeomAPI_Shape>& theShape)
+{
+ myPreview = theShape;
+}
+
+const boost::shared_ptr<GeomAPI_Shape>& SketchPlugin_Feature::getPreview() const
{
- ModelAPI_Feature::setData(theData);
+ return myPreview;
+}
- // find sketch that references to this feature
- int aSketches = document()->size("Construction");
- for(int a = 0; a < aSketches && !mySketch; a++) {
- boost::shared_ptr<ModelAPI_Object> anObj =
- boost::dynamic_pointer_cast<ModelAPI_Object>(document()->feature("Construction", a));
- if (anObj) {
- boost::shared_ptr<SketchPlugin_Sketch> aSketch =
- boost::dynamic_pointer_cast<SketchPlugin_Sketch>(anObj->featureRef());
+SketchPlugin_Sketch* SketchPlugin_Feature::sketch()
+{
+ if (!mySketch) {
+ // find sketch that references to this feature
+ int aSketches = document()->size("Construction");
+ for(int a = 0; a < aSketches && !mySketch; a++) {
+ boost::shared_ptr<SketchPlugin_Sketch> aSketch = boost::
+ dynamic_pointer_cast<SketchPlugin_Sketch>(document()->feature("Construction", a, true));
if (aSketch) {
- std::list<boost::shared_ptr<ModelAPI_Feature> > aList =
+ std::list<FeaturePtr > aList =
aSketch->data()->reflist(SKETCH_ATTR_FEATURES)->list();
- std::list<boost::shared_ptr<ModelAPI_Feature> >::iterator aSub = aList.begin();
+ std::list<FeaturePtr >::iterator aSub = aList.begin();
for(; aSub != aList.end(); aSub++) {
- if ((*aSub)->data()->isEqual(theData)) {
+ if ((*aSub)->data()->isEqual(data())) {
mySketch = aSketch.get();
break;
}
}
}
}
-}
-
-void SketchPlugin_Feature::setPreview(const boost::shared_ptr<GeomAPI_Shape>& theShape)
-{
- myPreview = theShape;
-}
-
-const boost::shared_ptr<GeomAPI_Shape>& SketchPlugin_Feature::getPreview() const
-{
- return myPreview;
+ return mySketch;
}