]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
code revision
authorasl <asl@opencascade.com>
Wed, 14 Oct 2015 09:42:15 +0000 (12:42 +0300)
committerasl <asl@opencascade.com>
Wed, 14 Oct 2015 09:42:15 +0000 (12:42 +0300)
src/HYDROData/HYDROData_LandCoverMap.cxx
src/HYDROData/HYDROData_LandCoverMap.h
src/HYDRO_tests/test_HYDROData_Bathymetry.cxx
src/HYDRO_tests/test_HYDROData_Main.cxx

index cc08ba781b7b9c8a6d85a6ab75cbde301abb5d61..2de0498dde73358be053a4b93afacbb6e31a7d6e 100644 (file)
@@ -17,6 +17,7 @@
 //
 
 #include <HYDROData_LandCoverMap.h>
+#include <HYDROData_Object.h>
 #include <HYDROData_PolylineXY.h>
 #include <HYDROData_Tool.h>
 
@@ -181,8 +182,15 @@ bool HYDROData_LandCoverMap::ExportTelemac( const QString& theFileName ) const
 */
 bool HYDROData_LandCoverMap::Add( const Handle( HYDROData_Object )& theObject, const QString& theType )
 {
-  //TODO
-  return false;
+  if( theObject.IsNull() )
+    return false;
+
+  TopoDS_Shape aShape = theObject->GetTopShape();
+  if( aShape.ShapeType()!=TopAbs_FACE )
+    return false;
+
+  TopoDS_Face aFace = TopoDS::Face( aShape );
+  return LocalPartition( aFace, theType );
 }
 
 /**
@@ -204,8 +212,24 @@ bool HYDROData_LandCoverMap::Add( const Handle( HYDROData_PolylineXY )& thePolyl
 */
 bool HYDROData_LandCoverMap::Remove( const TopoDS_Face& theFace )
 {
-  //TODO
-  return false;
+  TopTools_ListOfShape aList;
+  aList.Append( theFace );
+  return Remove( aList );
+}
+
+/**
+  Remove the given faces from land cover map
+  @param theFacesList the face list to be removed
+  @return if the removing is successful
+*/
+bool HYDROData_LandCoverMap::Remove( const TopTools_ListOfShape& theFacesList )
+{
+  TopoDS_Compound aCompound = TopoDS::Compound( GetShape() );
+  BRep_Builder aCompoundBuilder;
+  //TODO: aCompoundBuilder.Remove( aCompound, theFace );
+  //TODO: update types
+  SetShape( aCompound );
+  return true;
 }
 
 /**
@@ -230,8 +254,15 @@ bool HYDROData_LandCoverMap::Split( const Handle( HYDROData_PolylineXY )& thePol
 */
 bool HYDROData_LandCoverMap::Merge( const TopTools_ListOfShape& theFaces, const QString& theType )
 {
-  //TODO
-  return false;
+  // 1. to remove the merged faces from the current map
+  Remove( theFaces );
+
+  // 2. to fuse the faces into the new face
+  // TODO
+  TopoDS_Face aMergedFace;
+
+  // 3. to add the face into the map
+  return LocalPartition( aMergedFace, theType );
 }
 
 /**
index c9c774d6e6007bada3ae4985f9aadb31fd6da913..0a53e7a1930c09c838146c2522d3f4a4f883ca47 100644 (file)
@@ -77,6 +77,7 @@ public:
   bool Add( const Handle( HYDROData_PolylineXY )&, const QString& theType );
 
   bool Remove( const TopoDS_Face& );
+  bool Remove( const TopTools_ListOfShape& );
 
   bool Split( const Handle( HYDROData_PolylineXY )& );
   bool Merge( const TopTools_ListOfShape&, const QString& theType );
index 479536ec69d3936c3ab3e240a40fd97761f240af..f72a456fa1210c51f146d3a2d4559aefff5f573e 100644 (file)
@@ -108,7 +108,7 @@ bool test_HYDROData_Bathymetry::createTestFile( const QString& theFileName )
     generateOne( anOutStream, 1040.079834, -441.303467, 1017.623413, -459.9102175 );
     generateOne( anOutStream, 1055.478516, -456.060547, 1034.946899, -475.9505 );
     generateOne( anOutStream, 1074.085327, -474.025665, 1058.044922, -493.274017 );
-    srand( time( 0 ) );
+    srand( 0 );
   }
 
   aTmpFile.close();
index 52b58728a34c1f218c55d6692405c5aba63f4e35..360841ac26d01438d2a17cf446e405bf93f6b3ec 100644 (file)
@@ -32,7 +32,7 @@
 
 int main( int argc, char* argv[] )
 {
-  srand( time( 0 ) );
+  srand( 0 );
 
   QApplication anApp( argc, argv );
   SUIT_Session aSession;