X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Sketch.cpp;h=1f0e100ac37bd6286dd20e2bd6e5dbf451262aa6;hb=bbd1c59b9adc714c5d7ad17b3dc496cf1091c549;hp=813271dfaa644d7f1f30d31c9d966a32daa0fc08;hpb=69c8d7e9b1bbea1be3339f80ae3d01611b6aaf4b;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Sketch.cpp b/src/SketchPlugin/SketchPlugin_Sketch.cpp index 813271dfa..1f0e100ac 100644 --- a/src/SketchPlugin/SketchPlugin_Sketch.cpp +++ b/src/SketchPlugin/SketchPlugin_Sketch.cpp @@ -15,62 +15,42 @@ #include -const int SKETCH_PLANE_COLOR = Colors::COLOR_BROWN; /// the plane edge color -const double SKETCH_WIDTH = 4.0; /// the plane edge width - using namespace std; -// face of the square-face displayed for selection of general plane -const double PLANE_SIZE = 200; - SketchPlugin_Sketch::SketchPlugin_Sketch() { } void SketchPlugin_Sketch::initAttributes() { - data()->addAttribute(SKETCH_ATTR_ORIGIN, GeomDataAPI_Point::type()); - data()->addAttribute(SKETCH_ATTR_DIRX, GeomDataAPI_Dir::type()); - data()->addAttribute(SKETCH_ATTR_DIRY, GeomDataAPI_Dir::type()); - data()->addAttribute(SKETCH_ATTR_NORM, GeomDataAPI_Dir::type()); - data()->addAttribute(SKETCH_ATTR_FEATURES, ModelAPI_AttributeRefList::type()); + data()->addAttribute(SketchPlugin_Sketch::ORIGIN_ID(), GeomDataAPI_Point::type()); + data()->addAttribute(SketchPlugin_Sketch::DIRX_ID(), GeomDataAPI_Dir::type()); + data()->addAttribute(SketchPlugin_Sketch::DIRY_ID(), GeomDataAPI_Dir::type()); + data()->addAttribute(SketchPlugin_Sketch::NORM_ID(), GeomDataAPI_Dir::type()); + data()->addAttribute(SketchPlugin_Sketch::FEATURES_ID(), ModelAPI_AttributeRefList::type()); } void SketchPlugin_Sketch::execute() { - if (!isPlaneSet()) { - std::list > aFaces; - - addPlane(1, 0, 0, aFaces); // YZ plane - addPlane(0, 1, 0, aFaces); // XZ plane - addPlane(0, 0, 1, aFaces); // XY plane - boost::shared_ptr aCompound = GeomAlgoAPI_CompoundBuilder::compound(aFaces); - boost::shared_ptr aConstr = document()->createConstruction(); - aConstr->setShape(aCompound); - results().push_back(aConstr); - return; - } if (!data()->isValid()) return ; boost::shared_ptr aRefList = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_FEATURES)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::FEATURES_ID())); boost::shared_ptr anOrigin = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_ORIGIN)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::ORIGIN_ID())); boost::shared_ptr aDirX = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRX)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::DIRX_ID())); boost::shared_ptr aDirY = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRY)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::DIRY_ID())); boost::shared_ptr aNorm = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_NORM)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::NORM_ID())); - std::list > aFeatures = aRefList->list(); + std::list aFeatures = aRefList->list(); if (aFeatures.empty()) return ; - std::list >::const_iterator anIt = aFeatures.begin(), - aLast = aFeatures.end(); - + std::list::const_iterator anIt = aFeatures.begin(), aLast = aFeatures.end(); boost::shared_ptr aFeature; std::list< boost::shared_ptr > aFeaturesPreview; for (; anIt != aLast; anIt++) { @@ -93,45 +73,25 @@ void SketchPlugin_Sketch::execute() aLoops.insert(aLoops.end(), aWires.begin(), aWires.end()); boost::shared_ptr aCompound = GeomAlgoAPI_CompoundBuilder::compound(aLoops); - boost::shared_ptr aConstr = document()->createConstruction(); + boost::shared_ptr aConstr = document()->createConstruction(data()); aConstr->setShape(aCompound); - results().push_back(aConstr); -} - -boost::shared_ptr SketchPlugin_Sketch::getAISObject( - boost::shared_ptr thePrevious) -{ - boost::shared_ptr aResult = simpleAISObject(firstResult(), thePrevious); - aResult->setColor(SKETCH_PLANE_COLOR); - aResult->setWidth(SKETCH_WIDTH); - //anAIS->Redisplay(); - return aResult; + setResult(aConstr); } const void SketchPlugin_Sketch::addSub(const FeaturePtr& theFeature) { boost::dynamic_pointer_cast(theFeature)->setSketch(this); - data()->reflist(SKETCH_ATTR_FEATURES)->append(theFeature); -} - -void SketchPlugin_Sketch::addPlane(double theX, double theY, double theZ, - std::list >& theShapes) const -{ - boost::shared_ptr anOrigin(new GeomAPI_Pnt(0, 0, 0)); - boost::shared_ptr aNormal(new GeomAPI_Dir(theX, theY, theZ)); - boost::shared_ptr aFace = - GeomAlgoAPI_FaceBuilder::square(anOrigin, aNormal, PLANE_SIZE); - theShapes.push_back(aFace); + data()->reflist(SketchPlugin_Sketch::FEATURES_ID())->append(theFeature); } boost::shared_ptr SketchPlugin_Sketch::to3D(const double theX, const double theY) { boost::shared_ptr aC = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_ORIGIN)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::ORIGIN_ID())); boost::shared_ptr aX = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRX)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::DIRX_ID())); boost::shared_ptr aY = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_DIRY)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::DIRY_ID())); boost::shared_ptr aSum = aC->pnt()->xyz()->added( aX->dir()->xyz()->multiplied(theX))->added(aY->dir()->xyz()->multiplied(theY)); @@ -142,7 +102,7 @@ boost::shared_ptr SketchPlugin_Sketch::to3D(const double theX, cons bool SketchPlugin_Sketch::isPlaneSet() { boost::shared_ptr aNormal = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_NORM)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::NORM_ID())); return aNormal && !(aNormal->x() == 0 && aNormal->y() == 0 && aNormal->z() == 0); } @@ -150,9 +110,9 @@ bool SketchPlugin_Sketch::isPlaneSet() boost::shared_ptr SketchPlugin_Sketch::plane() { boost::shared_ptr anOrigin = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_ORIGIN)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::ORIGIN_ID())); boost::shared_ptr aNorm = - boost::dynamic_pointer_cast(data()->attribute(SKETCH_ATTR_NORM)); + boost::dynamic_pointer_cast(data()->attribute(SketchPlugin_Sketch::NORM_ID())); if (!anOrigin || !aNorm) return boost::shared_ptr();