1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

Add specific key for two-sided coloring of AIS shape in vdisplay command

This commit is contained in:
ssv
2017-04-14 10:42:30 +03:00
parent fca6240736
commit c6e1bcba1d

View File

@@ -3609,6 +3609,7 @@ static int VDisplay2 (Draw_Interpretor& theDI,
TColStd_SequenceOfAsciiString aNamesOfDisplayIO;
AIS_DisplayStatus aDispStatus = AIS_DS_None;
Standard_Integer toDisplayInView = Standard_False;
Standard_Boolean isWerthSpecific = Standard_False;
for (Standard_Integer anArgIter = 1; anArgIter < theArgNb; ++anArgIter)
{
const TCollection_AsciiString aName = theArgVec[anArgIter];
@@ -3811,6 +3812,10 @@ static int VDisplay2 (Draw_Interpretor& theDI,
{
toReDisplay = Standard_True;
}
else if (aNameCase == "-werth")
{
isWerthSpecific = Standard_True;
}
else
{
aNamesOfDisplayIO.Append (aName);
@@ -3880,6 +3885,19 @@ static int VDisplay2 (Draw_Interpretor& theDI,
aSelMode = aShape->GlobalSelectionMode();
}
if ( isWerthSpecific )
{
Graphic3d_MaterialAspect aFrontMat, aBackMat;
Handle(Prs3d_ShadingAspect) aShAspect = new Prs3d_ShadingAspect();
aFrontMat = aBackMat = aShAspect->Material();
aFrontMat.SetColor (Quantity_NOC_BLUE1);
aBackMat.SetColor (Quantity_NOC_RED);
aShAspect->SetMaterial (aFrontMat, Aspect_TOFM_FRONT_SIDE);
aShAspect->SetMaterial (aBackMat, Aspect_TOFM_BACK_SIDE);
aShAspect->Aspect()->SetSuppressBackFaces (Standard_False);
aShape->Attributes()->SetShadingAspect (aShAspect);
}
aCtx->Display (aShape, aDispMode, aSelMode,
Standard_False, aShape->AcceptShapeDecomposition(),
aDispStatus);
@@ -5540,7 +5558,8 @@ void ViewerTest::Commands(Draw_Interpretor& theCommands)
"\n\t\t: (DY looks up)"
"\n\t\t: -dispmode Sets display mode for objects."
"\n\t\t: -highmode Sets hilight mode for objects."
"\n\t\t: -redisplay Recomputes presentation of objects.",
"\n\t\t: -redisplay Recomputes presentation of objects."
"\n\t\t: -werth Specific visualization mode for Werth.",
__FILE__, VDisplay2, group);
theCommands.Add ("vupdate",