Salome HOME
lot 10 - warnings for DTM - untested
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataModel.cxx
index 63d4252c76e48e41ec8561d70e867760007440ba..bfb64ec4535a95ce647f323b26071d8775a58850 100644 (file)
@@ -46,6 +46,7 @@
 #include <HYDROData_Stream.h>
 #include <HYDROData_StricklerTable.h>
 #include <HYDROData_LandCoverMap.h>
+#include <HYDROData_BCPolygon.h>
 
 #include <CAM_Module.h>
 #include <CAM_Study.h>
@@ -294,6 +295,9 @@ void HYDROGUI_DataModel::update( const int theStudyId )
   // OBSTACLES
   LightApp_DataObject* anObstaclesRootObj = createObject( aNewRootObj, tr( partitionName( KIND_OBSTACLE ).toLatin1() ) );
 
+  //BC Polygons
+  LightApp_DataObject* aBCPolygonRootObj = createObject( aNewRootObj, tr( partitionName( KIND_BC_POLYGON ).toLatin1() ) );
+
   // STRICKLER TABLES
   LightApp_DataObject* aStricklerTablesRootObj = createObject( aNewRootObj, tr( partitionName( KIND_STRICKLER_TABLE ).toLatin1() ) );
 
@@ -472,6 +476,16 @@ void HYDROGUI_DataModel::update( const int theStudyId )
             obj = createObject( aVisualStateRootObj, aVisualStateObj );
           }
 
+          break;
+        }
+        case KIND_BC_POLYGON:
+        {
+          Handle(HYDROData_BCPolygon) aBCPolygonObj =
+            Handle(HYDROData_BCPolygon)::DownCast( anObj );
+          if( !aBCPolygonObj.IsNull() ) {
+            obj = createObject( aBCPolygonRootObj, aBCPolygonObj );
+          }
+
           break;
         }
       }
@@ -794,6 +808,7 @@ QString HYDROGUI_DataModel::partitionName( const ObjectKind theObjectKind )
     case KIND_STRICKLER_TABLE:   return "STRICKLER_TABLES";
     case KIND_LAND_COVER_MAP:    return "LAND_COVER_MAPS";
     case KIND_REGION:            return "REGIONS";
+    case KIND_BC_POLYGON:        return "BOUNDARY_POLYGONS";
     default: break;
   }
   return QString();
@@ -817,7 +832,8 @@ LightApp_DataObject* HYDROGUI_DataModel::createObject( SUIT_DataObject*
                     aKind == KIND_SHAPES_GROUP || aKind == KIND_SPLIT_GROUP || aKind == KIND_ZONE ||
                     aKind == KIND_IMMERSIBLE_ZONE || aKind == KIND_REGION || aKind == KIND_BATHYMETRY ||
                     aKind == KIND_OBSTACLE || aKind == KIND_STREAM || aKind == KIND_CHANNEL ||
-                    aKind == KIND_DIGUE || aKind == KIND_DUMMY_3D || aKind == KIND_LAND_COVER_MAP;
+                    aKind == KIND_DIGUE || aKind == KIND_DUMMY_3D || aKind == KIND_LAND_COVER_MAP ||
+                    aKind == KIND_BC_POLYGON;
   if ( !visibility )
   {
     Handle(HYDROData_Profile) aProfObj = Handle(HYDROData_Profile)::DownCast( theModelObject );
@@ -1070,9 +1086,15 @@ void HYDROGUI_DataModel::buildObjectTree( SUIT_DataObject* theParent,
         aNObject = Handle(HYDROData_NaturalObject)::DownCast( anEntity );
         if ( !aNObject.IsNull() )
           createObject( aCaseNOSect, aNObject, aGuiObj->entry(), false );
-      }
+      }    
     }
 
+    LightApp_DataObject* aBoundaryPolygonSect = 
+      createObject( aGuiObj, tr( "CASE_BOUNDARY_POLYGONS" ), aGuiObj->entry() );
+    HYDROData_SequenceOfObjects aBCPolygons = aCaseObj->GetBoundaryPolygons();
+    for (int i = 1; i <= aBCPolygons.Size(); i++ )
+      createObject( aBoundaryPolygonSect, aBCPolygons(i), aGuiObj->entry(), false );
+
     LightApp_DataObject* aLandCoverMapSect = 
       createObject( aGuiObj, tr( "CASE_LAND_COVER_MAP" ), aGuiObj->entry() );
 
@@ -1172,7 +1194,18 @@ void HYDROGUI_DataModel::buildObjectTree( SUIT_DataObject* theParent,
     HYDROData_SequenceOfObjects aPolylines = aLandCoverMapObj->GetPolylines();
     buildObjectPartition( aGuiObj, aPolylines, tr( "LAND_COVER_POLYLINES" ), true );*/
   }
-  
+  else if ( anObjectKind == KIND_BC_POLYGON )
+  {
+    Handle(HYDROData_BCPolygon) aBCObj =
+      Handle(HYDROData_BCPolygon)::DownCast( aDataObj );
+
+    LightApp_DataObject* aPolylineSect = 
+      createObject( aGuiObj, tr( "BC_POLYGON_POLYLINE" ), aGuiObj->entry() );
+
+    Handle(HYDROData_PolylineXY) aPolyline = aBCObj->GetPolyline();
+    if ( !aPolyline.IsNull() && !aPolyline->IsRemoved() )
+      createObject( aPolylineSect, aPolyline, aGuiObj->entry(), false );
+  }
   HYDROGUI_Module* aModule = dynamic_cast<HYDROGUI_Module*>( module() );
   if( aModule )
     aModule->enableLCMActions();