X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Feature.cpp;h=da25c09994581e44f9153dc447b05979ad525c63;hb=db01498dd5845ccb8d62912ae09aff5669f51a0e;hp=57bc3582d406a411e1e1cecd1029b40c14d2077c;hpb=29b4b1b5e692ebc45e8a27703b9307b075d2cff2;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Feature.cpp b/src/SketchPlugin/SketchPlugin_Feature.cpp index 57bc3582d..da25c0999 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.cpp +++ b/src/SketchPlugin/SketchPlugin_Feature.cpp @@ -1,18 +1,55 @@ #include "SketchPlugin_Feature.h" +#include "SketchPlugin_Sketch.h" +#include +#include +#include +#include +#include -/** - * Returns the sketch preview - */ -const TopoDS_Shape& SketchPlugin_Feature::preview() +SketchPlugin_Feature::SketchPlugin_Feature() { - return myPreview; + mySketch = 0; } -/** - * Set the shape to the internal preview field - * \param theShape a preview shape - */ -void SketchPlugin_Feature::setPreview(const TopoDS_Shape& theShape) +/* +SketchPlugin_Sketch* SketchPlugin_Feature::sketch() { - myPreview = theShape; + if (!mySketch) { + // find sketch that references to this feature + int aSketches = document()->size(ModelAPI_Feature::group()); + for (int a = 0; a < aSketches && !mySketch; a++) { + ObjectPtr anObj = document()->object(ModelAPI_Feature::group(), a); + boost::shared_ptr aSketch = + boost::dynamic_pointer_cast(anObj); + if (aSketch) { + std::list aList = aSketch->data()->reflist(SketchPlugin_Sketch::FEATURES_ID()) + ->list(); + std::list::iterator aSub = aList.begin(); + for (; aSub != aList.end(); aSub++) { + if ((*aSub)->data()->isEqual(data())) { + mySketch = aSketch.get(); + break; + } + } + } + } + } + return mySketch; +}*/ + +AISObjectPtr SketchPlugin_Feature::simpleAISObject(boost::shared_ptr theRes, + AISObjectPtr thePrevious) +{ + boost::shared_ptr aConstr = boost::dynamic_pointer_cast< + ModelAPI_ResultConstruction>(theRes); + + boost::shared_ptr aPreview; + if (aConstr) + aPreview = aConstr->shape(); + + AISObjectPtr aResult = thePrevious; + if (!aResult) + aResult = AISObjectPtr(new GeomAPI_AISObject()); + aResult->createShape(aPreview); + return aResult; }