X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_PolylineXY.cxx;h=d47f2cb8c19a058ac0b1857bc47948507e4361a8;hb=0b8b69a9ad7c8c3340c4a828c7f96cb9455d7df9;hp=608e5b9510bfa9f2fc2bac174e1e58249b5419f7;hpb=00d0017f5e951fb3dd965140d1f16d07d9a49daa;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_PolylineXY.cxx b/src/HYDROData/HYDROData_PolylineXY.cxx index 608e5b95..d47f2cb8 100755 --- a/src/HYDROData/HYDROData_PolylineXY.cxx +++ b/src/HYDROData/HYDROData_PolylineXY.cxx @@ -30,7 +30,9 @@ #include #include +#ifndef LIGHT_MODE #include +#endif #include #include @@ -212,6 +214,9 @@ QColor HYDROData_PolylineXY::DefaultWireColor() bool HYDROData_PolylineXY::ImportFromGeomIOR( const TCollection_AsciiString& theIOR ) { +#ifdef LIGHT_MODE + return false; +#else if ( theIOR.IsEmpty() ) return false; @@ -220,6 +225,7 @@ bool HYDROData_PolylineXY::ImportFromGeomIOR( const TCollection_AsciiString& the return false; return ImportShape( aShape ); +#endif } void HYDROData_PolylineXY::SetGeomObjectEntry( const TCollection_AsciiString& theEntry ) @@ -242,17 +248,6 @@ TCollection_AsciiString HYDROData_PolylineXY::GetGeomObjectEntry() const return aRes; } -TopoDS_Shape HYDROData_PolylineXY::GetShape() const -{ - return getPolylineShape(); -} - -bool HYDROData_PolylineXY::SetShape( const TopoDS_Shape& theShape ) -{ - setPolylineShape( theShape ); - return true; -} - bool convertEdgeToSection( const TopoDS_Edge& theEdge, NCollection_Sequence& theSectNames, NCollection_Sequence& theSectTypes, @@ -399,7 +394,7 @@ bool HYDROData_PolylineXY::ImportShape( const TopoDS_Shape& theShape ) if( aProj.IsDone() ) aResult = aProj.Shape(); - setPolylineShape( aResult ); + SetShape( aResult ); } setEditable( anIsCanBeImported ); @@ -484,7 +479,7 @@ void HYDROData_PolylineXY::Update() if ( !IsEditable() ) { // If polyline is not editable we no need to update it wire - SetToUpdate( false ); + ClearChanged(); return; } @@ -495,7 +490,7 @@ void HYDROData_PolylineXY::Update() NCollection_Sequence aSectClosures; GetSections( aSectNames, aSectTypes, aSectClosures ); - BRepBuilderAPI_MakeWire aMakeWire; + //BRepBuilderAPI_MakeWire aMakeWire; TopTools_ListOfShape aSectionWiresList; @@ -521,7 +516,7 @@ void HYDROData_PolylineXY::Update() TopoDS_Wire aSectionWire = BuildWire( aSectionType, anIsSectionClosed, aPoints ); if ( !aSectionWire.IsNull() ) { aSectionWiresList.Append( aSectionWire ); - aMakeWire.Add( aSectionWire ); + //aMakeWire.Add( aSectionWire ); } } // all input wires in the @@ -562,7 +557,7 @@ void HYDROData_PolylineXY::Update() aResult = mkWire.Wire(); } - setPolylineShape( aResult ); + SetShape( aResult ); } bool HYDROData_PolylineXY::IsHas2dPrs() const @@ -710,7 +705,7 @@ void HYDROData_PolylineXY::AddSection( const TCollection_AsciiString& theSectNam aTypesList->Append( theSectionType ); aClosuresList->Append( theIsClosed ); - SetToUpdate( true ); + Changed( Geom_2d ); } TCollection_AsciiString HYDROData_PolylineXY::GetSectionName( const int theSectionIndex ) const @@ -754,8 +749,6 @@ void HYDROData_PolylineXY::SetSectionName( const int theSec TDataStd_ListIteratorOfListOfExtendedString aNamesIter( anOldNamesList ); for ( int i = 0; aNamesIter.More(); aNamesIter.Next(), ++i ) aNamesList->Append( i == theSectionIndex ? aNewSectName : aNamesIter.Value() ); - - SetToUpdate( true ); } HYDROData_PolylineXY::SectionType HYDROData_PolylineXY::GetSectionType( const int theSectionIndex ) const @@ -793,7 +786,7 @@ void HYDROData_PolylineXY::SetSectionType( const int theSectionIndex, for ( int i = 0; aTypesIter.More(); aTypesIter.Next(), ++i ) aTypesList->Append( i == theSectionIndex ? theSectionType : aTypesIter.Value() ); - SetToUpdate( true ); + Changed( Geom_2d ); } bool HYDROData_PolylineXY::IsClosedSection( const int theSectionIndex ) const @@ -831,7 +824,7 @@ void HYDROData_PolylineXY::SetSectionClosed( const int theSectionIndex, for ( int i = 0; aClosuresIter.More(); aClosuresIter.Next(), ++i ) aClosuresList->Append( i == theSectionIndex ? theIsClosed : (bool)aClosuresIter.Value() ); - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::GetSections( NCollection_Sequence& theSectNames, @@ -913,14 +906,14 @@ void HYDROData_PolylineXY::RemoveSection( const int theSectionIndex ) removePointsLists( theSectionIndex ); } - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::RemoveSections() { removeSectionsLists(); removePointsLists(); - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::AddPoint( const int theSectionIndex, @@ -966,7 +959,7 @@ void HYDROData_PolylineXY::AddPoint( const int theSectionIndex, } } - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::SetPoint( const int theSectionIndex, @@ -1017,7 +1010,7 @@ void HYDROData_PolylineXY::SetPoint( const int theSectionIndex, } } - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::SetPoints( const int theSectionIndex, @@ -1073,13 +1066,18 @@ void HYDROData_PolylineXY::RemovePoint( const int theSectionIndex, } } - SetToUpdate( true ); + Changed( Geom_2d ); } -HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theSectionIndex ) const +HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theSectionIndex, bool IsConvertToGlobal ) const { PointsList aResList; + if( IsCustom() ) + { + //TODO: make interpolation to fill the list + } + Handle(TDataStd_RealList) aListX, aListY; getPointsLists( theSectionIndex, aListX, aListY, false ); if ( aListX.IsNull() || aListY.IsNull() || aListX->IsEmpty() ) @@ -1087,9 +1085,12 @@ HYDROData_PolylineXY::PointsList HYDROData_PolylineXY::GetPoints( const int theS TColStd_ListIteratorOfListOfReal anIterX( aListX->List() ); TColStd_ListIteratorOfListOfReal anIterY( aListY->List() ); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( myLab ); for ( ; anIterX.More() && anIterY.More(); anIterX.Next(), anIterY.Next() ) { Point aPoint( anIterX.Value(), anIterY.Value() ); + if (IsConvertToGlobal) + aDoc->Transform( aPoint, false ); aResList.Append( aPoint ); } @@ -1148,7 +1149,7 @@ void HYDROData_PolylineXY::UpdateLocalCS( double theDx, double theDy ) } SetPoints( i, aPoints ); } - SetToUpdate( true ); + Changed( Geom_2d ); } void HYDROData_PolylineXY::Transform( const QTransform& theTrsf ) @@ -1174,3 +1175,14 @@ void HYDROData_PolylineXY::Transform( const QTransform& theTrsf ) Update(); } +bool HYDROData_PolylineXY::IsCustom() const +{ + bool isNull = GetShape().IsNull(); + int aNbPoints = 0; + + //TODO: to check if there is no points + //for( int i=0, n=NbSections(); i