0025349: Graphic3d_MaterialAspect::Color() returns a value different from that set...
authordbp <dbp@opencascade.com>
Thu, 23 Oct 2014 10:59:20 +0000 (14:59 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 23 Oct 2014 12:20:49 +0000 (16:20 +0400)
Fix bug with default color of clip plane.

src/Graphic3d/Graphic3d_MaterialAspect.cdl
src/Graphic3d/Graphic3d_MaterialAspect.cxx

index 14ee809..76ca034 100644 (file)
@@ -157,7 +157,7 @@ is
                   AColor       : Color from Quantity )
                is static;
        ---Level: Public
-       ---Purpose: Modifies the ambient colour of the surface.
+       ---Purpose: Modifies the ambient and diffuse colour of the surface.
        --  Category: Methods to modify the class definition
        
        SetAmbientColor ( me            : in out;
@@ -260,7 +260,7 @@ is
                is static;
   ---C++: return const&
        ---Level: Public
-       ---Purpose: Returns the ambient colour of the surface.
+       ---Purpose: Returns the diffuse colour of the surface.
        ---Category: Inquire methods
 
        AmbientColor ( me )
index e872ad3..12c3181 100644 (file)
@@ -20,7 +20,8 @@
 // purpose  :
 // =======================================================================
 Graphic3d_MaterialAspect::Graphic3d_MaterialAspect()
-: myAmbientColor (0.2, 0.2, 0.2, Quantity_TOC_RGB)
+: myDiffuseColor (0.2, 0.2, 0.2, Quantity_TOC_RGB),
+  myAmbientColor (0.2, 0.2, 0.2, Quantity_TOC_RGB)
 {
   myRequestedMaterialName = Graphic3d_NOM_DEFAULT;
   Init (myRequestedMaterialName);
@@ -31,7 +32,8 @@ Graphic3d_MaterialAspect::Graphic3d_MaterialAspect()
 // purpose  :
 // =======================================================================
 Graphic3d_MaterialAspect::Graphic3d_MaterialAspect (const Graphic3d_NameOfMaterial theName)
-: myAmbientColor (0.2, 0.2, 0.2, Quantity_TOC_RGB)
+: myDiffuseColor (0.2, 0.2, 0.2, Quantity_TOC_RGB),
+  myAmbientColor (0.2, 0.2, 0.2, Quantity_TOC_RGB)
 {
   myRequestedMaterialName = theName;
   Init (myRequestedMaterialName);
@@ -56,7 +58,7 @@ void Graphic3d_MaterialAspect::Init (const Graphic3d_NameOfMaterial theName)
   myEmissiveCoef     = 0.0f;
   myEnvReflexion     = 0.0f;
   myShininess        = 0.039f;
-  myDiffuseColor .SetValues (0.0, 0.0, 0.0, Quantity_TOC_RGB);
+  myDiffuseColor .SetValues (0.2, 0.2, 0.2, Quantity_TOC_RGB);
   mySpecularColor.SetValues (1.0, 1.0, 1.0, Quantity_TOC_RGB);
   myMaterialName     = theName;
 
@@ -668,7 +670,9 @@ void Graphic3d_MaterialAspect::SetRefractionIndex (const Standard_Real theValue)
 // =======================================================================
 const Quantity_Color& Graphic3d_MaterialAspect::Color() const
 {
-  return myAmbientColor;
+  // It is generally accepted to consider diffuse color as
+  // "general" color of a material when light shines on it
+  return myDiffuseColor;
 }
 
 // =======================================================================