X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_Coincident.cpp;h=26a5e682c9c4f200a339410ed107b9e9b1974bc8;hb=9968ec652480079d0ca91b2040f6327a164807cf;hp=2b6c57b846dbeaa146caa129e13a9ba5d27dac8c;hpb=54722f01656c4e5c67a3cdc04aa57ef614b6a446;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_Coincident.cpp b/src/SketcherPrs/SketcherPrs_Coincident.cpp index 2b6c57b84..26a5e682c 100644 --- a/src/SketcherPrs/SketcherPrs_Coincident.cpp +++ b/src/SketcherPrs/SketcherPrs_Coincident.cpp @@ -18,8 +18,6 @@ #include #include -#include - #include #include @@ -37,7 +35,7 @@ IMPLEMENT_STANDARD_RTTIEXT(SketcherPrs_Coincident, AIS_InteractiveObject); SketcherPrs_Coincident::SketcherPrs_Coincident(ModelAPI_Feature* theConstraint, const std::shared_ptr& thePlane) : AIS_InteractiveObject(), myConstraint(theConstraint), mySketcherPlane(thePlane), - myPoint(gp_Pnt(0.0, 0.0, 0.0)) + myPoint(gp_Pnt(0.0, 0.0, 0.0)), myIsConflicting(false) { } @@ -84,10 +82,11 @@ void SketcherPrs_Coincident::Compute(const Handle(PrsMgr_PresentationManager3d)& } // Create the presentation as a combination of standard point markers + bool aValid = !myIsConflicting; // The external yellow contour aPtA->SetType(Aspect_TOM_RING3); aPtA->SetScale(2.); - aPtA->SetColor(Quantity_NOC_YELLOW); + aPtA->SetColor(aValid ? Quantity_NOC_YELLOW : myConflictingColor); Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup(thePresentation); aGroup->SetPrimitivesAspect(aPtA); @@ -98,7 +97,7 @@ void SketcherPrs_Coincident::Compute(const Handle(PrsMgr_PresentationManager3d)& // Make a black mid ring aPtA->SetType(Aspect_TOM_RING1); aPtA->SetScale(1.); - aPtA->SetColor(Quantity_NOC_BLACK); + aPtA->SetColor(aValid ? Quantity_NOC_BLACK : myConflictingColor); aGroup->SetPrimitivesAspect(aPtA); aGroup->AddPrimitiveArray (aPntArray); @@ -130,3 +129,11 @@ void SketcherPrs_Coincident::SetColor(const Quantity_Color &aCol) hasOwnColor=Standard_True; myOwnColor=aCol; } + +void SketcherPrs_Coincident::SetConflictingConstraint(const bool& theConflicting, + const std::vector& theColor) +{ + myIsConflicting = theConflicting; + myConflictingColor = Quantity_Color(theColor[0] / 255., theColor[1] / 255., theColor[2] / 255., + Quantity_TOC_RGB); +}