]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
0020504: EDF 1078 GEOM: Point color is not good at study loading
authordmv <dmv@opencascade.com>
Fri, 2 Oct 2009 12:12:45 +0000 (12:12 +0000)
committerdmv <dmv@opencascade.com>
Fri, 2 Oct 2009 12:12:45 +0000 (12:12 +0000)
src/GEOM/GEOM_Engine.cxx
src/GEOM/GEOM_Object.cxx
src/GEOMGUI/GEOM_Displayer.cxx

index 436287cff5bd679b6869ba6395ca97c3b197bd4f..7a572ba1fca7ce2de164d043bb8f22452041c04f 100644 (file)
@@ -1194,7 +1194,7 @@ void AddObjectColors (const Handle(TDocStd_Document)&                 theDoc,
     }
 
     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 9a5564765194f2a68484a685f5f752206bb86c1c..b2ca175f4d84ac9307826130cd1811bff54c4cb2 100644 (file)
@@ -338,9 +338,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 f8aaa621b82a81d5ae10cc3cb3e84145ff562a34..61b86c34c9bf7d4e840ce0a8b119f7f1f1a74f94 100644 (file)
@@ -680,7 +680,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 = 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();
@@ -723,6 +723,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 );
+                      }
                    }
                  }
                }