X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_SymbolPrs.cpp;h=77b40fc8be0a23bfca4239792257ebb17ee31c2d;hb=d3883990177d27a12b8a2278cdbb82250ff19b79;hp=224a4b1dc36bbfac20152273288ea4042be96ce0;hpb=b110d7dfb19dd25be61fc2dbebbbf2fd8ba91b43;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_SymbolPrs.cpp b/src/SketcherPrs/SketcherPrs_SymbolPrs.cpp index 224a4b1dc..77b40fc8b 100644 --- a/src/SketcherPrs/SketcherPrs_SymbolPrs.cpp +++ b/src/SketcherPrs/SketcherPrs_SymbolPrs.cpp @@ -18,7 +18,6 @@ #include #include -#include #include #include #include @@ -37,8 +36,6 @@ #include #include #include -#include -#include #ifdef WIN32 # define FSEP "\\" @@ -319,7 +316,8 @@ void SketcherPrs_SymbolPrs::HilightSelected(const Handle(PrsMgr_PresentationMana } void SketcherPrs_SymbolPrs::HilightOwnerWithColor(const Handle(PrsMgr_PresentationManager3d)& thePM, - const Quantity_NameOfColor theColor, const Handle(SelectMgr_EntityOwner)& theOwner) + const Quantity_NameOfColor theColor, + const Handle(SelectMgr_EntityOwner)& theOwner) { thePM->Color(this, theColor); @@ -354,7 +352,7 @@ void SketcherPrs_SymbolPrs::Compute(const Handle(PrsMgr_PresentationManager3d)& mySPoints.Clear(); for (int i = 1; i <= aNbVertex; i++) { - Handle(SketcherPrs_SensitivePoint) aSP = new SketcherPrs_SensitivePoint(myOwner, myPntArray, i); + Handle(SketcherPrs_SensitivePoint) aSP = new SketcherPrs_SensitivePoint(myOwner, i); mySPoints.Append(aSP); } @@ -370,6 +368,9 @@ void SketcherPrs_SymbolPrs::Compute(const Handle(PrsMgr_PresentationManager3d)& } aGroup->UserDraw(this, true); + + // Disable frustum culling for this object by marking it as mutable + aGroup->Structure()->SetMutable(true); //aGroup->AddPrimitiveArray(myPntArray); } @@ -423,6 +424,11 @@ void SketcherPrs_SymbolPrs::Render(const Handle(OpenGl_Workspace)& theWorkspace) if (theWorkspace->NamedStatus & OPENGL_NS_HIGHLIGHT) aLineColor = theWorkspace->HighlightColor; + if (toHilight) + aCtx->core11fwd->glDisable (GL_LIGHTING); + else + aCtx->core11fwd->glEnable (GL_LIGHTING); + aCtx->SetColor4fv(*(const OpenGl_Vec4* )(aLineColor->rgb)); @@ -447,7 +453,10 @@ void SketcherPrs_SymbolPrs::Render(const Handle(OpenGl_Workspace)& theWorkspace) // Update selection position only if there is no selected object // because it can corrupt selection of other objects if ((GetContext()->NbCurrents() == 0) && (GetContext()->NbSelected() == 0)) - GetContext()->RecomputeSelectionOnly(this); + { + GetContext()->MainSelector()->RebuildSensitivesTree (this); + GetContext()->MainSelector()->RebuildObjectsTree (false); + } } @@ -499,3 +508,16 @@ void SketcherPrs_SymbolPrs::drawListOfShapes(const std::shared_ptrBoundingBox()); + } + + theBndBox.Update (aTmpBox.CornerMin().x(), aTmpBox.CornerMin().y(), aTmpBox.CornerMin().z(), + aTmpBox.CornerMax().x(), aTmpBox.CornerMax().y(), aTmpBox.CornerMax().z()); +} +