0029517: Visualization - introduce AlphaMode property defining alpha value handling...
[occt.git] / src / OpenGl / OpenGl_MaterialState.hxx
index 3781995..daf59c8 100644 (file)
@@ -25,16 +25,18 @@ class OpenGl_MaterialState : public OpenGl_StateInterface
 public:
 
   //! Creates new material state.
-  OpenGl_MaterialState() : myToDistinguish (false), myToMapTexture (false) {}
+  OpenGl_MaterialState() : myAlphaCutoff (0.5f), myToDistinguish (false), myToMapTexture (false) {}
 
   //! Sets new material aspect.
   void Set (const OpenGl_Material& theFrontMat,
             const OpenGl_Material& theBackMat,
+            const float theAlphaCutoff,
             const bool theToDistinguish,
             const bool theToMapTexture)
   {
     myMatFront      = theFrontMat;
     myMatBack       = theBackMat;
+    myAlphaCutoff   = theAlphaCutoff;
     myToDistinguish = theToDistinguish;
     myToMapTexture  = theToMapTexture;
   }
@@ -45,6 +47,9 @@ public:
   //! Return back material.
   const OpenGl_Material& BackMaterial()  const { return myMatBack; }
 
+  //! Alpha cutoff value.
+  float AlphaCutoff() const { return myAlphaCutoff; }
+
   //! Distinguish front/back flag.
   bool ToDistinguish() const { return myToDistinguish; }
 
@@ -55,6 +60,7 @@ private:
 
   OpenGl_Material myMatFront;      //!< front material
   OpenGl_Material myMatBack;       //!< back  material
+  float           myAlphaCutoff;   //!< alpha cutoff value
   bool            myToDistinguish; //!< distinguish front/back flag
   bool            myToMapTexture;  //!< flag for mapping a texture