Salome HOME
quick optimization patch (bytearray for images)
[modules/hydro.git] / src / HYDROData / HYDROData_LandCover.cxx
index 98fadcf4755e40cf719e468bf2fccc7eaf89c0c4..c9199eb32a41479079569b24d651b5ef5431b305 100644 (file)
@@ -24,6 +24,8 @@
 #include <BRepBuilderAPI_MakeFace.hxx>
 #include <BRepBuilderAPI_MakeWire.hxx>
 #include <TDataStd_AsciiString.hxx>
+#include <TNaming_Builder.hxx>
+#include <TNaming_NamedShape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Wire.hxx>
@@ -40,7 +42,6 @@
 #include <QColor>
 #include <QStringList>
 
-IMPLEMENT_STANDARD_HANDLE( HYDROData_LandCover, HYDROData_Entity )
 IMPLEMENT_STANDARD_RTTIEXT( HYDROData_LandCover, HYDROData_Entity )
 
 HYDROData_LandCover::HYDROData_LandCover()
@@ -126,7 +127,7 @@ void HYDROData_LandCover::Update()
   TCollection_AsciiString anErrorMsg;
   TopoDS_Shape aResShape = buildShape( GetPolylines(), anErrorMsg );
   
-  SetShape( aResShape );
+  setShape( aResShape );
 }
 
 void HYDROData_LandCover::SetPolylines( const HYDROData_SequenceOfObjects& thePolylines )
@@ -142,7 +143,18 @@ HYDROData_SequenceOfObjects HYDROData_LandCover::GetPolylines() const
 
 TopoDS_Shape HYDROData_LandCover::GetShape() const
 {
-  return HYDROData_Entity::GetShape( DataTag_Shape );
+  TopoDS_Shape aShape;
+
+  TDF_Label aLabel = myLab.FindChild( DataTag_Shape, false );
+  if ( !aLabel.IsNull() )
+  {
+    Handle(TNaming_NamedShape) aNamedShape;
+    if( aLabel.FindAttribute( TNaming_NamedShape::GetID(), aNamedShape ) ) {
+      aShape = aNamedShape->Get();
+    }
+  }
+
+  return aShape;
 }
 
 void HYDROData_LandCover::SetFillingColor( const QColor& theColor )
@@ -165,19 +177,20 @@ QColor HYDROData_LandCover::GetBorderColor() const
   return GetColor( DefaultBorderColor(), DataTag_BorderColor );
 }
 
-QColor HYDROData_LandCover::DefaultFillingColor() const
+QColor HYDROData_LandCover::DefaultFillingColor()
 {
   return QColor( Qt::magenta );
 }
 
-QColor HYDROData_LandCover::DefaultBorderColor() const
+QColor HYDROData_LandCover::DefaultBorderColor()
 {
   return QColor( Qt::transparent );
 }
 
-void HYDROData_LandCover::SetShape( const TopoDS_Shape& theShape )
+void HYDROData_LandCover::setShape( const TopoDS_Shape& theShape )
 {
-  HYDROData_Entity::SetShape( DataTag_Shape, theShape );
+  TNaming_Builder aBuilder( myLab.FindChild( DataTag_Shape ) );
+  aBuilder.Generated( theShape );
 }
 
 void HYDROData_LandCover::removeShape()