X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Profile.cxx;h=6ed959ceb097667b46f020169b0c345c70b0be61;hb=fd7bc8b6aff2f236893c3c549e3338668bd6bec3;hp=b32809b3d53da99396d8274ba5e90911659cbbfa;hpb=9951c43b35cc7088888afb135b0cdfcfd8d840c6;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Profile.cxx b/src/HYDROData/HYDROData_Profile.cxx index b32809b3..6ed959ce 100755 --- a/src/HYDROData/HYDROData_Profile.cxx +++ b/src/HYDROData/HYDROData_Profile.cxx @@ -21,6 +21,7 @@ #include #include +#include #include #define PYTHON_PROFILE_ID "KIND_PROFILE" @@ -37,12 +38,30 @@ HYDROData_Profile::~HYDROData_Profile() { } +QStringList HYDROData_Profile::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const +{ + QStringList aResList; + + Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); + if ( aDocument.IsNull() ) + return aResList; + + QString aDocName = aDocument->GetDocPyName(); + QString aProfileName = GetName(); + + aResList << QString( "%1 = %2.CreateObject( %3 );" ) + .arg( aProfileName ).arg( aDocName ).arg( PYTHON_PROFILE_ID ); + aResList << QString( "%1.SetName( \"%1\" );" ).arg( aProfileName ); + + return aResList; +} + TopoDS_Shape HYDROData_Profile::GetTopShape() const { TopoDS_Wire aWire; gp_XY aFirstPoint, aLastPoint; - if ( !GetFirstPoint( aFirstPoint ) || !GetLastPoint( aLastPoint ) ) + if ( !GetLeftPoint( aFirstPoint ) || !GetRightPoint( aLastPoint ) ) return aWire; gp_Pnt aPnt1( aFirstPoint.X(), aFirstPoint.Y(), 0 ); @@ -64,6 +83,8 @@ TopoDS_Shape HYDROData_Profile::GetShape3D() const void HYDROData_Profile::Update() { + HYDROData_Object::Update(); + BRepBuilderAPI_MakeWire aMakeWire; ProfilePoints aProfilePoints = GetProfilePoints(); @@ -88,38 +109,37 @@ void HYDROData_Profile::Update() SetShape3D( aWire ); } -/** - * Dump object to Python script representation. - */ -QStringList HYDROData_Profile::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const +QColor HYDROData_Profile::DefaultFillingColor() { - QStringList aResList; + return QColor( Qt::transparent ); +} - Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab ); - if ( aDocument.IsNull() ) - return aResList; - - QString aDocName = aDocument->GetDocPyName(); - QString aProfileName = GetName(); +QColor HYDROData_Profile::DefaultBorderColor() +{ + return QColor( Qt::black ); +} - aResList << QString( "%1 = %2.CreateObject( %3 );" ) - .arg( aProfileName ).arg( aDocName ).arg( PYTHON_PROFILE_ID ); - aResList << QString( "%1.SetName( \"%1\" );" ).arg( aProfileName ); +QColor HYDROData_Profile::getDefaultFillingColor() const +{ + return DefaultFillingColor(); +} - return aResList; +QColor HYDROData_Profile::getDefaultBorderColor() const +{ + return DefaultBorderColor(); } bool HYDROData_Profile::IsValid() const { gp_XY aFirstPoint, aLastPoint; - if ( !GetFirstPoint( aFirstPoint ) || !GetLastPoint( aLastPoint ) ) + if ( !GetLeftPoint( aFirstPoint ) || !GetRightPoint( aLastPoint ) ) return false; int aNbPoints = NbPoints(); return aNbPoints > 1; } -void HYDROData_Profile::SetFirstPoint( const gp_XY& thePoint ) +void HYDROData_Profile::SetLeftPoint( const gp_XY& thePoint ) { TDF_Label aLabel = myLab.FindChild( DataTag_FirstPoint ); @@ -129,9 +149,11 @@ void HYDROData_Profile::SetFirstPoint( const gp_XY& thePoint ) anArray->SetValue( 0, thePoint.X() ); anArray->SetValue( 1, thePoint.Y() ); + + SetToUpdate( true ); } -bool HYDROData_Profile::GetFirstPoint( gp_XY& thePoint ) const +bool HYDROData_Profile::GetLeftPoint( gp_XY& thePoint ) const { TDF_Label aLabel = myLab.FindChild( DataTag_FirstPoint, false ); if ( aLabel.IsNull() ) @@ -147,7 +169,7 @@ bool HYDROData_Profile::GetFirstPoint( gp_XY& thePoint ) const return true; } -void HYDROData_Profile::SetLastPoint( const gp_XY& thePoint ) +void HYDROData_Profile::SetRightPoint( const gp_XY& thePoint ) { TDF_Label aLabel = myLab.FindChild( DataTag_LastPoint ); @@ -157,9 +179,11 @@ void HYDROData_Profile::SetLastPoint( const gp_XY& thePoint ) anArray->SetValue( 0, thePoint.X() ); anArray->SetValue( 1, thePoint.Y() ); + + SetToUpdate( true ); } -bool HYDROData_Profile::GetLastPoint( gp_XY& thePoint ) const +bool HYDROData_Profile::GetRightPoint( gp_XY& thePoint ) const { TDF_Label aLabel = myLab.FindChild( DataTag_LastPoint, false ); if ( aLabel.IsNull() ) @@ -184,6 +208,8 @@ void HYDROData_Profile::Invalidate() TDF_Label aLastLabel = myLab.FindChild( DataTag_LastPoint, false ); if ( !aLastLabel.IsNull() ) aLastLabel.ForgetAllAttributes(); + + SetToUpdate( true ); } Handle(HYDROData_ProfileUZ) HYDROData_Profile::GetProfileUZ( const bool theIsCreate ) const @@ -214,7 +240,10 @@ void HYDROData_Profile::RemovePoints() { Handle(HYDROData_ProfileUZ) aProfileUZ = GetProfileUZ( false ); if ( !aProfileUZ.IsNull() ) + { aProfileUZ->RemoveSections(); + SetToUpdate( true ); + } } void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsList& thePoints ) @@ -227,6 +256,8 @@ void HYDROData_Profile::SetParametricPoints( const HYDROData_ProfileUZ::PointsLi const HYDROData_ProfileUZ::Point& aPoint = thePoints.Value( i ); aProfileUZ->AddPoint( 0, aPoint ); } + + SetToUpdate( true ); } HYDROData_ProfileUZ::PointsList HYDROData_Profile::GetParametricPoints() const @@ -260,8 +291,8 @@ void HYDROData_Profile::SetProfilePoints( const ProfilePoints& thePoints ) aProfileUZ->AddPoint( 0, aParPoint ); } - SetFirstPoint( aFirstPoint ); - SetLastPoint( aLastPoint ); + SetLeftPoint( aFirstPoint ); + SetRightPoint( aLastPoint ); } HYDROData_Profile::ProfilePoints HYDROData_Profile::GetProfilePoints() const @@ -269,7 +300,7 @@ HYDROData_Profile::ProfilePoints HYDROData_Profile::GetProfilePoints() const ProfilePoints aResPoints; gp_XY aFirstPoint, aLastPoint; - if ( !GetFirstPoint( aFirstPoint ) || !GetLastPoint( aLastPoint ) ) + if ( !GetLeftPoint( aFirstPoint ) || !GetRightPoint( aLastPoint ) ) return aResPoints; HYDROData_ProfileUZ::PointsList aParametricPoints = GetParametricPoints(); @@ -368,6 +399,8 @@ bool HYDROData_Profile::ImportFromFile( const Handle(HYDROData_Document)& theDoc aProfile->SetName( aProfileName ); aProfile->SetFilePath( theFileName ); + + aProfile->SetBorderColor( HYDROData_Profile::DefaultBorderColor() ); } return !aCreatedProfiles.IsEmpty(); @@ -488,8 +521,9 @@ bool HYDROData_Profile::ImportFromFile( OSD_File& theFile ) else if ( anIsGeoref ) { SetProfilePoints( aPointsXYZ ); - Update(); } + + Update(); } return aRes;