+void HYDROData_Bathymetry::SetFilePath(const QString& theFilePath)
+{
+ TCollection_AsciiString anAsciiStr( theFilePath.toStdString().c_str() );
+ TDataStd_AsciiString::Set( myLab.FindChild( DataTag_FilePath ), anAsciiStr );
+}
+
+QString HYDROData_Bathymetry::GetFilePath() const
+{
+ QString aRes;
+
+ TDF_Label aLabel = myLab.FindChild( DataTag_FilePath, false );
+ if ( !aLabel.IsNull() )
+ {
+ Handle(TDataStd_AsciiString) anAsciiStr;
+ if ( aLabel.FindAttribute( TDataStd_AsciiString::GetID(), anAsciiStr ) )
+ aRes = QString( anAsciiStr->Get().ToCString() );
+ }
+
+ return aRes;
+}
+
+void HYDROData_Bathymetry::SetAltitudesInverted( const bool theIsInverted,
+ const bool theIsUpdate )
+{
+ bool anIsAltitudesInverted = IsAltitudesInverted();
+ if ( anIsAltitudesInverted == theIsInverted )
+ return;
+
+ TDataStd_Integer::Set( myLab.FindChild( DataTag_AltitudesInverted ), (Standard_Integer)theIsInverted );
+
+ SetToUpdate( true );
+
+ if ( !theIsUpdate )
+ return;
+
+ // Update altitude points
+ AltitudePoints anAltitudePoints = GetAltitudePoints();
+ if ( anAltitudePoints.isEmpty() )
+ return;
+
+ AltitudePoints::iterator aListItBeg = anAltitudePoints.begin();
+ AltitudePoints::iterator aListItEnd = anAltitudePoints.end();
+ for ( ; aListItBeg != aListItEnd; ++aListItBeg )
+ {
+ AltitudePoint& aPoint = *aListItBeg;
+ aPoint.SetZ( aPoint.Z() * -1 );
+ }
+
+ SetAltitudePoints( anAltitudePoints );
+}
+
+bool HYDROData_Bathymetry::IsAltitudesInverted() const
+{
+ bool aRes = false;
+
+ TDF_Label aLabel = myLab.FindChild( DataTag_AltitudesInverted, false );
+ if ( !aLabel.IsNull() )
+ {
+ Handle(TDataStd_Integer) anIntVal;
+ if ( aLabel.FindAttribute( TDataStd_Integer::GetID(), anIntVal ) )
+ aRes = (bool)anIntVal->Get();
+ }
+
+ return aRes;
+}
+