X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Bathymetry.cxx;h=baaf0cd3751755e2152d07f1d8cab7f1db508ad1;hb=21cfaf7ae27087a9fe7f719d8a62df0a28102da9;hp=7f51fe9753420600720dc5d0c0651a006c7f4096;hpb=282267271ee572471d91225f4737d815fce12623;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Bathymetry.cxx b/src/HYDROData/HYDROData_Bathymetry.cxx index 7f51fe97..baaf0cd3 100644 --- a/src/HYDROData/HYDROData_Bathymetry.cxx +++ b/src/HYDROData/HYDROData_Bathymetry.cxx @@ -21,8 +21,6 @@ #include "HYDROData_Tool.h" #include "HYDROData_PolylineXY.h" -#include - #include #include @@ -73,20 +71,21 @@ HYDROData_Bathymetry::~HYDROData_Bathymetry() // myListOfNodes.clear(); } -QStringList HYDROData_Bathymetry::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const +QStringList HYDROData_Bathymetry::DumpToPython( const QString& thePyScriptPath, + MapOfTreatedObjects& theTreatedObjects ) const { QStringList aResList = dumpObjectCreation( theTreatedObjects ); QString aBathymetryName = GetObjPyName(); - aResList << QString( "%1.SetAltitudesInverted( %2 );" ) + aResList << QString( "%1.SetAltitudesInverted( %2 )" ) .arg( aBathymetryName ).arg( IsAltitudesInverted() ); TCollection_AsciiString aFilePath = GetFilePath(); - aResList << QString( "%1.ImportFromFile( \"%2\" );" ) + aResList << QString( "%1.ImportFromFile( \"%2\" )" ) .arg( aBathymetryName ).arg( aFilePath.ToCString() ); aResList << QString( "" ); - aResList << QString( "%1.Update();" ).arg( aBathymetryName ); + aResList << QString( "%1.Update()" ).arg( aBathymetryName ); aResList << QString( "" ); return aResList; @@ -113,10 +112,10 @@ void HYDROData_Bathymetry::SetAltitudePoints( const AltitudePoints& thePoints ) aCoordsArray->SetValue( i * 3 + 2, aPoint.Z() ); } - SetToUpdate( true ); + Changed( Geom_Z ); } -HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() const +HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints(bool IsConvertToGlobal) const { AltitudePoints aPoints; @@ -128,6 +127,7 @@ HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() c if ( !aLabel.FindAttribute( TDataStd_RealArray::GetID(), aCoordsArray ) ) return aPoints; + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( myLab ); for ( int i = aCoordsArray->Lower(), n = aCoordsArray->Upper(); i <= n; ) { if ( i + 3 > n + 1 ) @@ -138,6 +138,8 @@ HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() c aPoint.SetY( aCoordsArray->Value( i++ ) ); aPoint.SetZ( aCoordsArray->Value( i++ ) ); + if( IsConvertToGlobal ) + aDoc->Transform( aPoint, false ); aPoints.Append( aPoint ); } @@ -189,12 +191,12 @@ HYDROData_QuadtreeNode* HYDROData_Bathymetry::GetQuadtreeNodes() const void HYDROData_Bathymetry::RemoveAltitudePoints() { - TDF_Label aLabel = myLab.FindChild(DataTag_AltitudePoints, false); - if (!aLabel.IsNull()) - { - aLabel.ForgetAllAttributes(); - SetToUpdate(true); - } + TDF_Label aLabel = myLab.FindChild( DataTag_AltitudePoints, false ); + if ( !aLabel.IsNull() ) + { + aLabel.ForgetAllAttributes(); + Changed( Geom_Z ); + } } void interpolateAltitudeForPoints( const gp_XY& thePoint, @@ -252,7 +254,7 @@ void interpolateAltitudeForPoints( const gp_XY& th double HYDROData_Bathymetry::GetAltitudeForPoint(const gp_XY& thePoint) const { - //DEBTRACE("GetAltitudeForPoint p(" << thePoint.X() << ", " << thePoint.Y() << ")"); + DEBTRACE("GetAltitudeForPoint p(" << thePoint.X() << ", " << thePoint.Y() << ")"); double anInvalidAltitude = GetInvalidAltitude(); double aResAltitude = anInvalidAltitude; @@ -446,7 +448,7 @@ void HYDROData_Bathymetry::SetAltitudesInverted( const bool theIsInverted, TDataStd_Integer::Set( myLab.FindChild( DataTag_AltitudesInverted ), (Standard_Integer)theIsInverted ); - SetToUpdate( true ); + Changed( Geom_Z ); if ( !theIsUpdate ) return; @@ -565,9 +567,9 @@ bool HYDROData_Bathymetry::importFromXYZFile( QFile& theFile, if ( !isXOk || !isYOk || !isZOk ) return false; - if ( boost::math::isnan( aPoint.X() ) || boost::math::isinf( aPoint.X() ) || - boost::math::isnan( aPoint.Y() ) || boost::math::isinf( aPoint.Y() ) || - boost::math::isnan( aPoint.Z() ) || boost::math::isinf( aPoint.Z() ) ) + if ( HYDROData_Tool::IsNan( aPoint.X() ) || HYDROData_Tool::IsInf( aPoint.X() ) || + HYDROData_Tool::IsNan( aPoint.Y() ) || HYDROData_Tool::IsInf( aPoint.Y() ) || + HYDROData_Tool::IsNan( aPoint.Z() ) || HYDROData_Tool::IsInf( aPoint.Z() ) ) return false; // Invert the z value if requested