X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FPartSet%2FPartSet_ResultSketchPrs.cpp;h=dba8a45ac9ef23deff754767627875e1e5be26cb;hb=023c72db1a0c06efe73559cc2ff37c841842823a;hp=a8617af00033efd3fde6a65d86e338b352372dcc;hpb=dcde2cf7b3e2df1135a2417d286b4b4a1e97bbc2;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_ResultSketchPrs.cpp b/src/PartSet/PartSet_ResultSketchPrs.cpp index a8617af00..dba8a45ac 100755 --- a/src/PartSet/PartSet_ResultSketchPrs.cpp +++ b/src/PartSet/PartSet_ResultSketchPrs.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include @@ -32,6 +32,7 @@ #include #include #include +#include #define DEBUG_WIRE @@ -61,6 +62,8 @@ PartSet_ResultSketchPrs::PartSet_ResultSketchPrs(ResultPtr theResult) // Activate individual repaintng if this is a part of compsolid ResultCompSolidPtr aCompSolid = ModelAPI_Tools::compSolidOwner(myResult); SetAutoHilight(aCompSolid.get() == NULL); + + ModuleBase_Tools::setPointBallHighlighting(this); } void PartSet_ResultSketchPrs::Compute(const Handle(PrsMgr_PresentationManager3d)& thePresentationManager, @@ -88,7 +91,7 @@ void PartSet_ResultSketchPrs::Compute(const Handle(PrsMgr_PresentationManager3d) setAuxiliaryPresentationStyle(false); // change deviation coefficient to provide more precise circle - ModuleBase_Tools::setDefaultDeviationCoefficient(myResult, Attributes()); + //ModuleBase_Tools::setDefaultDeviationCoefficient(myResult, Attributes()); AIS_Shape::Compute(thePresentationManager, thePresentation, theMode); if (!myAuxiliaryCompound.IsNull()) { @@ -99,7 +102,7 @@ void PartSet_ResultSketchPrs::Compute(const Handle(PrsMgr_PresentationManager3d) } if (!aReadyToDisplay) { - Events_Error::throwException("An empty AIS presentation: PartSet_ResultSketchPrs"); + Events_InfoMessage("PartSet_ResultSketchPrs", "An empty AIS presentation: PartSet_ResultSketchPrs").send(); static const Events_ID anEvent = Events_Loop::eventByName(EVENT_EMPTY_AIS_PRESENTATION); ModelAPI_EventCreator::get()->sendUpdated(myResult, anEvent); } @@ -133,6 +136,7 @@ void PartSet_ResultSketchPrs::ComputeSelection(const Handle(SelectMgr_Selection) return; bool aShapeIsChanged = false; + double aPrevDeviation = Attributes()->DeviationCoefficient(); if (aMode == SketcherPrs_Tools::Sel_Sketch_Face || aMode == SketcherPrs_Tools::Sel_Sketch_Wire) { aMode = (aMode == SketcherPrs_Tools::Sel_Sketch_Face) ? AIS_Shape::SelectionMode(TopAbs_FACE) @@ -160,6 +164,9 @@ void PartSet_ResultSketchPrs::ComputeSelection(const Handle(SelectMgr_Selection) debugInfo(aComp, TopAbs_FACE); // 2 #endif Set(aComp); + double aBodyDefDeflection = Config_PropManager::real("Visualization", "body_deflection", + ModelAPI_ResultBody::DEFAULT_DEFLECTION()); + Attributes()->SetDeviationCoefficient(aBodyDefDeflection); aShapeIsChanged = true; } else @@ -175,8 +182,10 @@ void PartSet_ResultSketchPrs::ComputeSelection(const Handle(SelectMgr_Selection) AIS_Shape::ComputeSelection(aSelection, aMode); - if (aShapeIsChanged) + if (aShapeIsChanged) { + Attributes()->SetDeviationCoefficient(aPrevDeviation); Set(myOriginalShape); + } } void PartSet_ResultSketchPrs::appendShapeSelection(const Handle(SelectMgr_Selection)& theSelection,