Salome HOME
Merge branch 'BR_HYDRO_IMPS_WIN' of ssh://gitolite3@git.salome-platform.org/modules...
[modules/hydro.git] / src / HYDRO_tests / test_HYDROData_Stream.cxx
index 1466db52b9a919c46a285a6f591a942a67184c78..dff2c9bb9e0ae0b9c3b661b5e5d393eb4084ef1a 100644 (file)
 #include <HYDROData_IPolyline.h>
 #include <HYDROData_Profile.h>
 #include <HYDROData_PolylineXY.h>
+#include <HYDROData_Iterator.h>
+#include <AIS_InteractiveContext.hxx>
 #include <TestViewer.h>
 #include <QApplication>
+#include <QTest>
 
+extern QString REF_DATA_PATH;
 NCollection_Sequence<HYDROData_IPolyline::Point> points2;
 const double EPS = 1E-3;
 
@@ -69,6 +73,8 @@ void test_HYDROData_Stream::test_alt_object()
     Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) );
 
   CPPUNIT_ASSERT_EQUAL( false, (bool)aStream.IsNull() );
+  CPPUNIT_ASSERT_EQUAL( true, (bool)aStream->GetAltitudeObject().IsNull() );
+  CPPUNIT_ASSERT_EQUAL( false, (bool)aStream->DTM().IsNull() );
   CPPUNIT_ASSERT_EQUAL( false, (bool)aStream->GetAltitudeObject().IsNull() );
   CPPUNIT_ASSERT_EQUAL( KIND_DTM, aStream->getAltitudeObjectType() );
 
@@ -86,7 +92,7 @@ void test_HYDROData_Stream::test_params_sync()
   Handle(HYDROData_Stream) aStream = 
     Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) );
   Handle(HYDROData_DTM) aDTM = 
-    Handle(HYDROData_DTM)::DownCast( aStream->GetAltitudeObject() );
+    Handle(HYDROData_DTM)::DownCast( aStream->DTM() );
   CPPUNIT_ASSERT_EQUAL( false, (bool)aDTM.IsNull() );
 
   Handle(HYDROData_Profile) aProfile1 = 
@@ -219,3 +225,49 @@ void test_HYDROData_Stream::test_dump()
 
   aDoc->Close();
 }
+
+void test_HYDROData_Stream::test_presentation()
+{
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1);
+  
+  TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data();
+  fname += "/Profiles.xyz";
+  NCollection_Sequence<int> bad_ids;
+
+  int aSize = HYDROData_Profile::ImportFromFile( aDoc, fname, bad_ids, true );
+  
+  CPPUNIT_ASSERT_EQUAL( 0, bad_ids.Size() );
+  CPPUNIT_ASSERT_EQUAL( 46, aSize );
+
+  HYDROData_SequenceOfObjects profiles;
+  HYDROData_Iterator it( aDoc, KIND_PROFILE );
+  for( int i=0; it.More(); it.Next(), i++ )
+  {
+    if( i>=25 && i<=35 )
+    {
+      it.Current()->Update();
+      profiles.Append( Handle(HYDROData_Profile)::DownCast( it.Current() ) );
+    }
+  }
+
+  Handle(HYDROData_Stream) aStream = 
+    Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) );
+
+  aStream->SetProfiles( profiles, false );
+  aStream->SetDDZ( 0.2 );
+  aStream->SetSpatialStep( 10 );
+  aStream->Update();
+
+  TopoDS_Shape aPrs3d = aStream->GetShape3D();
+  TopoDS_Shape aPrs2d = aStream->GetTopShape();
+
+  TestViewer::show( aPrs2d, 0, true, "stream_dtm_2d", 1, 1 );
+  CPPUNIT_ASSERT_IMAGES;
+
+  TestViewer::eraseAll( true );
+  TestViewer::show( aPrs3d, 0, true, "stream_dtm_3d" );
+  CPPUNIT_ASSERT_IMAGES
+
+  aDoc->Close();
+}
+