Salome HOME
0020504: EDF 1078 GEOM: Point color is not good at study loading
authordmv <dmv@opencascade.com>
Fri, 2 Oct 2009 12:13:34 +0000 (12:13 +0000)
committerdmv <dmv@opencascade.com>
Fri, 2 Oct 2009 12:13:34 +0000 (12:13 +0000)
src/GEOM/GEOM_Engine.cxx
src/GEOM/GEOM_Object.cxx
src/GEOMGUI/GEOM_Displayer.cxx

index bce32c7463d7ca937bf466dfc4599fb49fd8ceb2..cde59bfc5e48c51a12cf8619e470c588e79a5c85 100644 (file)
@@ -591,7 +591,7 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
     }
 
     SALOMEDS::Color aColor = obj->GetColor();
-    if ( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 )
+    if ( aColor.R >= 0 && aColor.G >= 0 && aColor.B >= 0 )
     {
       TCollection_AsciiString aCommand( "\n\t" );
       aCommand += aName + ".SetColor(SALOMEDS.Color(" + aColor.R + "," + aColor.G + "," + aColor.B + "))";
index fa40ae257d9fa9fb8bff37672b4c0d45e47f7b6f..19080d753c50bfc355d5a67ccadd2f4786d25235 100644 (file)
@@ -326,9 +326,9 @@ SALOMEDS::Color GEOM_Object::GetColor()
   bool isFound = _label.FindChild(COLOR_LABEL).FindAttribute(TDataStd_RealArray::GetID(), anArray);
 
   SALOMEDS::Color aColor;
-  aColor.R = isFound ? anArray->Value( 1 ) : 0.f;
-  aColor.G = isFound ? anArray->Value( 2 ) : 0.f;
-  aColor.B = isFound ? anArray->Value( 3 ) : 0.f;
+  aColor.R = isFound ? anArray->Value( 1 ) : -1;
+  aColor.G = isFound ? anArray->Value( 2 ) : -1;
+  aColor.B = isFound ? anArray->Value( 3 ) : -1;
 
   return aColor;
 }
index 0cc4a5bf93e547d20b28504d697bedbc6c82ea5d..343abb37da50d12cd01d0c724d23aea180f9da8c 100644 (file)
@@ -686,7 +686,7 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
                  if ( !aGeomObject->_is_nil() )
                  {
                    SALOMEDS::Color aSColor = aGeomObject->GetColor();
-                   bool hasColor = aSColor.R > 0 || aSColor.G > 0 || aSColor.B > 0;
+                   bool hasColor = (bool)(aSColor.R >= 0 && aSColor.G >= 0 && aSColor.B >= 0);
                    if( !hasColor && aGeomObject->GetType() == GEOM_GROUP ) // auto color for group
                    {
                      GEOM::GEOM_Gen_var aGeomGen = GeometryGUI::GetGeomGen();
@@ -729,6 +729,13 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
                      Quantity_Color aQuanColor( aSColor.R, aSColor.G, aSColor.B, Quantity_TOC_RGB );
                      AISShape->SetColor( aQuanColor );
                      AISShape->SetShadingColor( aQuanColor );
+                      if ( myShape.ShapeType() == TopAbs_VERTEX ) {
+                        Handle(Prs3d_PointAspect) anAspect = AISShape->Attributes()->PointAspect();
+                        anAspect->SetColor( aQuanColor );
+                        anAspect->SetScale( myScaleOfMarker );
+                        anAspect->SetTypeOfMarker( myTypeOfMarker );
+                        AISShape->Attributes()->SetPointAspect( anAspect );
+                      }
                    }
                  }
                }