#include <TopoDS_Vertex.hxx>
#include <TopoDS_Wire.hxx>
#include <gp_XY.hxx>
+#include <HYDROData_Tool.h>
+
+extern QString REF_DATA_PATH;
void test_HYDROData_PolylineXY::test_polyline()
{
TestViewer::show( aPointsPrs, AIS_PointCloud::DM_Points, 0, true, "Polyline_Presentation_triangle" );
TestViewer::show( aPolyline2d->GetShape(), 0, true, Qt::red );
//TestViewer::show( aNewPolylinePrs, AIS_PointCloud::DM_Points, 0, true, "" );
- TestViewer::context()->RecomputePrsOnly( arr );
+ TestViewer::context()->RecomputePrsOnly( arr, true );
aNewPolylinePrs->display();
TestViewer::fitAll();
CPPUNIT_ASSERT_IMAGES
Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) );
aPolyline->SetName( "test" );
- QList<double> aCoords = QList<double>() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20;
- TopoDS_Wire aWire = Wire2d( aCoords, false );
- aPolyline->SetShape( aWire );
+
+ //QList<double> aCoords = QList<double>() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20;
+ aPolyline->AddSection( "", HYDROData_PolylineXY::SECTION_POLYLINE, false );
+ aPolyline->AddPoint( 0, gp_XY( 10, 10 ) );
+ aPolyline->AddPoint( 0, gp_XY( 20, 10 ) );
+ aPolyline->AddPoint( 0, gp_XY( 20, 20 ) );
+ aPolyline->AddPoint( 0, gp_XY( 10, 20 ) );
+ aPolyline->Update();
+
+
+ //TopoDS_Wire aWire = Wire2d( aCoords, false );
+ //aPolyline->SetShape( aWire );
+ TopoDS_Shape aW = aPolyline->GetShape();
+ CPPUNIT_ASSERT (aW.ShapeType() == TopAbs_WIRE);
+
aPolyline->SetWireColor( Qt::red );
gp_Pnt2d aPnt( 20, 20 );
{
Handle(HYDROData_PolylineXY) anObj = Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() );
if( aPolyline->Label() != anObj->Label() )
- TestViewer::show( anObj->GetShape(), 0, true, anObj->GetWireColor() );
+ {
+ QColor color;
+ anObj->GetSectionColor(0, color);
+ TestViewer::show( anObj->GetShape(), 0, true, color );
+ }
}
CPPUNIT_ASSERT_IMAGES
HYDROData_Iterator anIt2( aDoc, KIND_POLYLINEXY );
CPPUNIT_ASSERT_EQUAL( true, anIt2.More() );
CPPUNIT_ASSERT_EQUAL( QString( "test" ), anIt2.Current()->GetName() );
- CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ),
- Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() );
+
+ QColor color1, color2, color3;
+ Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetSectionColor(0, color1);
+
+ CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), color1);
anIt2.Next();
CPPUNIT_ASSERT_EQUAL( true, anIt2.More() );
CPPUNIT_ASSERT_EQUAL( QString( "test_1" ), anIt2.Current()->GetName() );
- CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ),
- Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() );
+
+ Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetSectionColor(0, color2);
+ CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), color2 );
+
anIt2.Next();
CPPUNIT_ASSERT_EQUAL( true, anIt2.More() );
CPPUNIT_ASSERT_EQUAL( QString( "test_2" ), anIt2.Current()->GetName() );
- CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ),
- Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() );
+ Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetSectionColor(0, color3);
+ CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), color3 );
anIt2.Next();
CPPUNIT_ASSERT_EQUAL( false, anIt2.More() );
anIt2.Next();
aDoc->Close();
}
+
+void test_HYDROData_PolylineXY::test_import_from_xyz()
+{
+ NCollection_Sequence<Handle(HYDROData_Entity)> ents;
+ Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 );
+ TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data();
+ fname += "/profiles1.xyz";
+
+ NCollection_Sequence<Handle(HYDROData_Entity)> importedEntities;
+ bool stat = HYDROData_Tool::importPolylineFromXYZ(QString(fname.ToCString()), aDoc, true, importedEntities);
+ CPPUNIT_ASSERT (stat);
+ Handle(HYDROData_PolylineXY) aPolyXY = Handle(HYDROData_PolylineXY)::DownCast(importedEntities.First());
+ CPPUNIT_ASSERT_EQUAL (importedEntities.Size(), 1);
+ CPPUNIT_ASSERT (!aPolyXY.IsNull());
+ TestViewer::show( aPolyXY->GetShape(), 0, true, "Polyline_import_XY" );
+ CPPUNIT_ASSERT_IMAGES
+ importedEntities.Clear();
+
+ stat = HYDROData_Tool::importPolylineFromXYZ(QString(fname.ToCString()), aDoc, false, importedEntities);
+ CPPUNIT_ASSERT (stat);
+ CPPUNIT_ASSERT_EQUAL (importedEntities.Size(), 2);
+ Handle(HYDROData_Polyline3D) aPoly3D;
+ aPolyXY = Handle(HYDROData_PolylineXY)::DownCast(importedEntities.First());
+ aPoly3D = Handle(HYDROData_Polyline3D)::DownCast(importedEntities.Last());
+ CPPUNIT_ASSERT (!aPolyXY.IsNull());
+ CPPUNIT_ASSERT (!aPoly3D.IsNull());
+ TestViewer::show( aPolyXY->GetShape(), 0, false, "Polyline_import_XYZ" );
+ TestViewer::show( aPoly3D->GetShape3D(), 0, false, "Polyline_import_XYZ_3D" );
+ CPPUNIT_ASSERT_IMAGES
+}
\ No newline at end of file