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

0032143: Visualization - add option excluding transparent object from sorting

Added option Graphic3d_AlphaMode_MaskBlend combining Mask (no sorting)
and Blend (enable blending with background) behavior.
This commit is contained in:
kgv
2021-03-01 15:16:52 +03:00
committed by bugmaster
parent ba590cbf15
commit 33425a46b8
15 changed files with 105 additions and 18 deletions

View File

@@ -51,6 +51,7 @@ static const char* alphaModeToString (Graphic3d_AlphaMode theMode)
case Graphic3d_AlphaMode_Opaque: return "Opaque";
case Graphic3d_AlphaMode_Mask: return "Mask";
case Graphic3d_AlphaMode_Blend: return "Blend";
case Graphic3d_AlphaMode_MaskBlend: return "MaskBlend";
case Graphic3d_AlphaMode_BlendAuto: return "Auto";
}
return "Auto";
@@ -59,12 +60,25 @@ static const char* alphaModeToString (Graphic3d_AlphaMode theMode)
//! Decode alpha mode from string.
static Graphic3d_AlphaMode alphaModeFromString (const char* theMode)
{
switch (*theMode)
if (strcasecmp (theMode, "Opaque") == 0)
{
case 'O': return Graphic3d_AlphaMode_Opaque;
case 'M': return Graphic3d_AlphaMode_Mask;
case 'B': return Graphic3d_AlphaMode_Blend;
case 'A': return Graphic3d_AlphaMode_BlendAuto;
return Graphic3d_AlphaMode_Opaque;
}
else if (strcasecmp (theMode, "Mask") == 0)
{
return Graphic3d_AlphaMode_Mask;
}
else if (strcasecmp (theMode, "Blend") == 0)
{
return Graphic3d_AlphaMode_Blend;
}
else if (strcasecmp (theMode, "MaskBlend") == 0)
{
return Graphic3d_AlphaMode_MaskBlend;
}
else if (strcasecmp (theMode, "Auto") == 0)
{
return Graphic3d_AlphaMode_BlendAuto;
}
return Graphic3d_AlphaMode_BlendAuto;
}