From e77a4312d0891c252baac0e1dcac298bb7bdeb72 Mon Sep 17 00:00:00 2001 From: Paul RASCLE Date: Sun, 19 Jun 2016 23:50:43 +0200 Subject: [PATCH] debug HYDRO tests --- src/HYDROData/HYDROData_PolylineOperator.cxx | 17 +++++++--- src/HYDROData/HYDROData_PolylineXY.cxx | 10 ++++-- src/HYDROData/HYDROData_PolylineXY.h | 2 +- src/HYDROGUI/HYDROGUI_ImportGeomObjectOp.cxx | 2 +- src/HYDROGUI/HYDROGUI_RecognizeContoursOp.cxx | 4 +-- .../reference_data/Merge_Polylines.png | Bin 5519 -> 4878 bytes src/HYDRO_tests/test_HYDROData_PolylineXY.cxx | 30 +++++++++--------- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/HYDROData/HYDROData_PolylineOperator.cxx b/src/HYDROData/HYDROData_PolylineOperator.cxx index 1493f336..c311866a 100644 --- a/src/HYDROData/HYDROData_PolylineOperator.cxx +++ b/src/HYDROData/HYDROData_PolylineOperator.cxx @@ -158,8 +158,20 @@ bool HYDROData_PolylineOperator::Merge( const Handle( HYDROData_Document )& theD } QString aName = theName; if( aName.isEmpty() ) - aName = "merged"; + { + aName = "merged"; + int anIndex = 1; + QString aNewName = aName + "_" + QString::number(anIndex); + while (!theDoc->FindObjectByName(aNewName).IsNull()) // the object with such a name is not found + { + anIndex++; + aNewName = aName + "_" + QString::number(anIndex); + } + aName = aNewName; + } + aNewPolyline->SetName(aName); + aNewPolyline->Update(); return true; } @@ -234,7 +246,6 @@ bool HYDROData_PolylineOperator::split( const Handle( HYDROData_Document )& theD } CreatePolylines( theDoc, thePolyline, aResult, true ); - //CreatePolylinesSplit( theDoc, thePolyline, aResult, true ); return true; } @@ -307,8 +318,6 @@ bool HYDROData_PolylineOperator::CreatePolylines( const Handle( HYDROData_Docume return false; aPolyline->ImportShape(theShapes[i], false, theOldPolyline, false); - //aPolyline->SetShape( theShapes[i] ); - if( isUseIndices ) { diff --git a/src/HYDROData/HYDROData_PolylineXY.cxx b/src/HYDROData/HYDROData_PolylineXY.cxx index de46304a..4c223307 100644 --- a/src/HYDROData/HYDROData_PolylineXY.cxx +++ b/src/HYDROData/HYDROData_PolylineXY.cxx @@ -238,7 +238,7 @@ bool HYDROData_PolylineXY::ImportFromGeomIOR( const TCollection_AsciiString& the if ( aShape.IsNull() ) return false; - return ImportShape( aShape, false ); + return ImportShape( aShape, false, NULL ); #endif } @@ -618,6 +618,10 @@ bool HYDROData_PolylineXY::ImportShape( const TopoDS_Shape& theShape, if ( theShape.IsNull() ) return false; + std::string brepName = this->GetName().toStdString(); + brepName += ".brep"; + BRepTools::Write( theShape, brepName.c_str() ); + RemoveSections(); bool anIsCanBeImported = false; @@ -695,7 +699,7 @@ bool HYDROData_PolylineXY::ImportShape( const TopoDS_Shape& theShape, } setEditable( anIsCanBeImported ); - + Update(); return true; } @@ -1506,5 +1510,5 @@ void HYDROData_PolylineXY::SetIsInCustomFlag( bool theValue ) void HYDROData_PolylineXY::Interpolate() { - ImportShape( GetShape(), true ); + ImportShape( GetShape(), true, NULL ); } diff --git a/src/HYDROData/HYDROData_PolylineXY.h b/src/HYDROData/HYDROData_PolylineXY.h index 12117de8..cbf5657b 100644 --- a/src/HYDROData/HYDROData_PolylineXY.h +++ b/src/HYDROData/HYDROData_PolylineXY.h @@ -132,7 +132,7 @@ public: */ HYDRODATA_EXPORT virtual bool ImportShape( const TopoDS_Shape& theShape, bool IsInterpolationAllowed, - const Handle( HYDROData_PolylineXY )& theOldPolyline = NULL, + const Handle( HYDROData_PolylineXY )& theOldPolyline, bool IsClosureAllowed = true, double theDeviation = 1.); diff --git a/src/HYDROGUI/HYDROGUI_ImportGeomObjectOp.cxx b/src/HYDROGUI/HYDROGUI_ImportGeomObjectOp.cxx index f0757cf9..381a78c1 100644 --- a/src/HYDROGUI/HYDROGUI_ImportGeomObjectOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportGeomObjectOp.cxx @@ -243,7 +243,7 @@ bool HYDROGUI_ImportGeomObjectOp::processApply( int& theUpdateFlags, anIsOk = true; } else if ( myOpType == ImportSelectedAsPolyline ) { Handle(HYDROData_PolylineXY) aPolyline = Handle(HYDROData_PolylineXY)::DownCast( anObject ); - anIsOk = aPolyline->ImportShape( aShape, false ); + anIsOk = aPolyline->ImportShape( aShape, false, NULL ); /* TODO: check it before start operation if ( anIsOk && !aPolyline->IsEditable() ) diff --git a/src/HYDROGUI/HYDROGUI_RecognizeContoursOp.cxx b/src/HYDROGUI/HYDROGUI_RecognizeContoursOp.cxx index 1ed528f6..dfb279ff 100644 --- a/src/HYDROGUI/HYDROGUI_RecognizeContoursOp.cxx +++ b/src/HYDROGUI/HYDROGUI_RecognizeContoursOp.cxx @@ -228,7 +228,7 @@ bool HYDROGUI_RecognizeContoursOp::processApply( int& theUpdateFlags, if( !aPolylineObj.IsNull() ) { aPolylineObj->SetName( aName ); - aPolylineObj->ImportShape( aShape, false ); + aPolylineObj->ImportShape( aShape, false, NULL ); aPolylineObj->SetWireColor( HYDROData_PolylineXY::DefaultWireColor() ); aPolylineObj->Update(); @@ -379,7 +379,7 @@ void HYDROGUI_RecognizeContoursOp::updateRecognizedPolylines() TopoDS_Shape aSubShape = aSubShapes.Value( i ); // Transform the sub-shape - aPolylineObj->ImportShape( aSubShape, false ); + aPolylineObj->ImportShape( aSubShape, false, NULL ); aPolylineObj->Transform( aTrsf ); /* diff --git a/src/HYDRO_tests/reference_data/Merge_Polylines.png b/src/HYDRO_tests/reference_data/Merge_Polylines.png index 7798ae68e0dd49c067d72bf019f3116b655c245f..baed02ce05628644575faf7c3497291ec15c0e3f 100644 GIT binary patch literal 4878 zcmb_gc|4SB8@^`@Gm>S%NawV1v81MEODgLB9m;V6iVrI(2zu_^vM>ds8gTz zXjRH2LW!}I?42Y_WXX^$^F8mYa2&_^{y5L?=V#pS^*qmY-`BmoCfs(_a`7qCrvQNX z$`xjI07A+DL_3NIvMgy!mP5ZtyG>WxQ_%9KxP+m-esvf6WwGE0M-?H`0`?2x)7cTsD$UaFYW5qpc1EpZCL>5g%iO7kb6c?kgq5Nbhj$uXAWLvKQ>>EF$7?18$4*<`*cw7+DWxsy-=78 z9>)&Uv=>%xZ~kh2KMz2E{;NEyDwU=U%pbE^#%t@u$}@MN!v=B23(_Tk&W@u@pXs$?yms&7%sl|=>iuT zO#=! zYMF&5kpw9(SwX3fkm*mC3a~Ydin?2h_PiGpa6?JK(l!wfAk=Bt0wI|)gN`sS>9|pxpoZ<~i zGi2`j1QjQ&2tkV7iE~e%1Hg1QqX0BF$;Zgv~78vBG*(884X%&PzMM1)x z8xPf&Qz;i8L?E;{YZn*@BhZHO6(J76!nm!~R&_NxjjfGuT;mh+MhM-2R_oFn{6U0P zgp}n?+{BTvUx@90cJ&-3l_ZASnrzK+*c5!fzW2!f?rb}4#By8GD6|4rOUa5k+RZh*`#6b6dWW+HY5>e4sYNn z5Qg2cKljwtK}{LODFTMC)ha30)5hp1vpD$45Z%oFAx0F7wJH<0aHh2RjI&s@Z5d}d z(za`y<$0U)IEzTD_ZZ6vsRhpDekSJEuqB%^!bTUR8@4?164kfFbI>Q;5=K=X-Ed4^L&XEBBLdK1@b;<`j)RWhCu?m2ept|dmn z_om^gw}OKV6QrKj-J>!$E&iVSXw_9V{8PYelZ_{L5>be*s26pZB<>?MeZ<$B9lnda3%QO#L=1p zj)_C4Ftl>!I-vN!7!euSu|`~Q>F}V^c&C8r)G9=P4{S+P&A?MYGO!hmtr-&s8@lsZ zzQ7hUNESlqV|u9R8Wh)epPx*t9Vljc8=4nbs zU{(RDAvH~-L5&HE2_oH87lTzHB=88=QK8W_g>nw#fyQURXm$ffHHN|SaoJFV$c-XmiZoyo_t78}rWqBs($#HZfaP6^H z0ZFVFHi5ZXYh&PWrvY1?)d&)bg@^7s-qUTEr}j6p#GA%v?zh>y%^d?=D?#P(5cRC2 z4YIl8WdR+Tm{w%Ge9e_+B&I(V0hQJQV}# zu~|4_LmrIUbmk;5h`mGAL=rs)8@htF)d#HO$>zzL(0CWU8- zI)IdJ@ZWV+xXl&ug|Jl7nJ6a8&rns*X6X&W8zIC*S9NSMLs>!BJP1p}Uq6+z5Ym~o z;9LDeN^CP3%<%pK-G$vk@NW2}alh+V0vuGRAd%Rskl^pK$#m;?LLj1>1*upXK*}Ms zaVmB%N_P2+N{J@>J^_H*Ffow=E(|DS@ppq2$CZ_o7Aq8fZdyM4nyNErIn4Uqw&ZJ&&L7ew?PQt=(FeDQFTm ztnP?UJ}YTe>bds0sjMIYAj)vwtu))*M_)Z0(|0x0=g#`I_19$#$vCwrNl1CV;=f93 ze);^;P_V0sm#i~&(1^W1n+*2u*#x~eWa@RpgqPO~+;*aI$1b=mD#fPs1OTijlGH5y zQPik0ONh)@tPCLA3&&KwVLm0DT=fb zFlQRXaavt|c}Cmm5kd|LmjsXJra$lnUS4#eY;@#-{<@ z#mfbYyx(#g*JcJbB_Dpwe?IRDw)|^DffuTze+aLGO3oxlJKEFJ( zr>DwGuxB{Ac#ZV|rl)wanGAqmck44hr8l0rk=awZ{eYFx`;wB9OHt}JwS6sDZVdeq zM4q)Ua$mvraOu6z+bQV(e@F31F?rg+lD?aus+S98B>bA+;OBf{Z4r)UkEhj&QiXxNm0e}*ZmS#qE1{`y7|Q^PdW9SR~dJPrl%XAciJX5 z0a-t;W!H7h$8NxR^jYV2w~LjG%-I*{iwRl7pF%G5#QQEfDTTgUa`f41Zf=IX;{9vu a_S;O+%iH}!XS}t<&Rl7}%Ivx+JNSQ;B5Xwf literal 5519 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 UoFX^BlyqumIsCustom() ); CPPUNIT_ASSERT_EQUAL( false, aPolyline2->IsCustom() ); - aPolyline2->SetShape( Wire( QList() << 0 << 0 << 1 << 1 << 2 << 0 ) ); + aPolyline2->SetShape( Wire( QList() << 0 << 0 << 10 << 10 << 20 << 0 ) ); CPPUNIT_ASSERT_EQUAL( true, aPolyline2->IsCustom() ); HYDROData_PolylineXY::PointsList aPointsList = aPolyline2->GetPoints( 0 ); CPPUNIT_ASSERT_EQUAL( false, aPolyline2->IsCustom() ); - CPPUNIT_ASSERT_EQUAL( 33, aPointsList.Size() ); + CPPUNIT_ASSERT_EQUAL( 5, aPointsList.Size() ); CPPUNIT_ASSERT_EQUAL( gp_XY( 0, 0 ), aPointsList.Value( 1 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 0.5625, 0.808594 ), aPointsList.Value( 10 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 1.1875, 0.964844 ), aPointsList.Value( 20 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 2, 0 ), aPointsList.Value( 33 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 5, 7.5 ), aPointsList.Value( 2 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 10, 10 ), aPointsList.Value( 3 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 15, 7.5 ), aPointsList.Value( 4 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 20, 0 ), aPointsList.Value( 5 ) ); CPPUNIT_ASSERT_EQUAL( false, aPolyline3->IsCustom() ); - aPolyline3->SetShape( WireCirc( gp_Pnt(), 1.0 ) ); + aPolyline3->SetShape( WireCirc( gp_Pnt(), 10.0 ) ); CPPUNIT_ASSERT_EQUAL( true, aPolyline3->IsCustom() ); aPointsList = aPolyline3->GetPoints( 0 ); CPPUNIT_ASSERT_EQUAL( HYDROData_PolylineXY::SECTION_SPLINE, aPolyline3->GetSectionType( 0 ) ); CPPUNIT_ASSERT_EQUAL( true, aPolyline3->IsClosedSection( 0 ) ); - CPPUNIT_ASSERT_EQUAL( 71, aPointsList.Size() ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 1, 0 ), aPointsList.Value( 1 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 0.699242, 0.714885 ), aPointsList.Value( 10 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( -0.110394, 0.993888 ), aPointsList.Value( 20 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( -0.839072, 0.54402 ), aPointsList.Value( 30 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( -0.952415, -0.304806 ), aPointsList.Value( 40 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( -0.367302, -0.930102 ), aPointsList.Value( 50 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 0.487173, -0.873306 ), aPointsList.Value( 60 ) ); - CPPUNIT_ASSERT_EQUAL( gp_XY( 0.996087, -0.0883801 ), aPointsList.Value( 71 ) ); + CPPUNIT_ASSERT_EQUAL( 7, aPointsList.Size() ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 10, 0 ), aPointsList.Value( 1 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 6.2349, 7.81831 ), aPointsList.Value( 2 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -2.225, 9.749 ), aPointsList.Value( 3 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -9.01, 4.339 ), aPointsList.Value( 4 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -9.01, -4.339 ), aPointsList.Value( 5 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -2.225, -9.749 ), aPointsList.Value( 6 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 6.2349, -7.81831 ), aPointsList.Value( 7 ) ); aDoc->Close(); } -- 2.39.2