Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
6.12.2013.Fix of HasIntersection method.
[modules/hydro.git]
/
src
/
HYDROData
/
HYDROData_Bathymetry.cxx
diff --git
a/src/HYDROData/HYDROData_Bathymetry.cxx
b/src/HYDROData/HYDROData_Bathymetry.cxx
index 95c0affdc188d0ca97b917e6d41ead08819fb8fd..2cacf6f0d96a5e8dd7a398fb5101ed1f4c8e3e0a 100644
(file)
--- a/
src/HYDROData/HYDROData_Bathymetry.cxx
+++ b/
src/HYDROData/HYDROData_Bathymetry.cxx
@@
-15,6
+15,11
@@
#include <QPolygonF>
#include <QStringList>
#include <QPolygonF>
#include <QStringList>
+#define _TIMER
+#ifdef _TIMER
+#include <OSD_Timer.hxx>
+#endif
+
#define PYTHON_BATHYMETRY_ID "KIND_BATHYMETRY"
#define PYTHON_BATHYMETRY_ID "KIND_BATHYMETRY"
@@
-81,14
+86,20
@@
void HYDROData_Bathymetry::SetAltitudePoints( const AltitudePoints& thePoints )
aCoordsArray->SetValue( i * 3 + 1, aPoint.Y() );
aCoordsArray->SetValue( i * 3 + 2, aPoint.Z() );
}
aCoordsArray->SetValue( i * 3 + 1, aPoint.Y() );
aCoordsArray->SetValue( i * 3 + 2, aPoint.Z() );
}
+
+ SetToUpdate( true );
}
HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() const
{
AltitudePoints aPoints;
}
HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() const
{
AltitudePoints aPoints;
+ TDF_Label aLabel = myLab.FindChild( DataTag_AltitudePoints, false );
+ if ( aLabel.IsNull() )
+ return aPoints;
+
Handle(TDataStd_RealArray) aCoordsArray;
Handle(TDataStd_RealArray) aCoordsArray;
- if ( !
myLab.FindChild( DataTag_AltitudePoints )
.FindAttribute( TDataStd_RealArray::GetID(), aCoordsArray ) )
+ if ( !
aLabel
.FindAttribute( TDataStd_RealArray::GetID(), aCoordsArray ) )
return aPoints;
for ( int i = aCoordsArray->Lower(), n = aCoordsArray->Upper(); i <= n; )
return aPoints;
for ( int i = aCoordsArray->Lower(), n = aCoordsArray->Upper(); i <= n; )
@@
-109,8
+120,12
@@
HYDROData_Bathymetry::AltitudePoints HYDROData_Bathymetry::GetAltitudePoints() c
void HYDROData_Bathymetry::RemoveAltitudePoints()
{
void HYDROData_Bathymetry::RemoveAltitudePoints()
{
- TDF_Label aLab = myLab.FindChild( DataTag_AltitudePoints );
- aLab.ForgetAllAttributes();
+ TDF_Label aLabel = myLab.FindChild( DataTag_AltitudePoints, false );
+ if ( !aLabel.IsNull() )
+ {
+ aLabel.ForgetAllAttributes();
+ SetToUpdate( true );
+ }
}
void interpolateAltitudeForPoints( const gp_XY& thePoint,
}
void interpolateAltitudeForPoints( const gp_XY& thePoint,
@@
-352,13
+367,18
@@
bool HYDROData_Bathymetry::importFromXYZFile( QFile& theFile,
// 2. X(float) Y(float) Z(float)
// ...
// 2. X(float) Y(float) Z(float)
// ...
+#ifdef _TIMER
+ OSD_Timer aTimer;
+ aTimer.Start();
+#endif
+
while ( !theFile.atEnd() )
{
QString aLine = theFile.readLine().simplified();
if ( aLine.isEmpty() )
continue;
while ( !theFile.atEnd() )
{
QString aLine = theFile.readLine().simplified();
if ( aLine.isEmpty() )
continue;
- QStringList aValues = aLine.split(
QRegExp( "\\s+" )
, QString::SkipEmptyParts );
+ QStringList aValues = aLine.split(
' '
, QString::SkipEmptyParts );
if ( aValues.length() < 3 )
return false;
if ( aValues.length() < 3 )
return false;
@@
-370,9
+390,10
@@
bool HYDROData_Bathymetry::importFromXYZFile( QFile& theFile,
bool isXOk = false, isYOk = false, isZOk = false;
bool isXOk = false, isYOk = false, isZOk = false;
+ // We automaticaly convert the z value to a negative number
aPoint.SetX( anX.toDouble( &isXOk ) );
aPoint.SetY( anY.toDouble( &isYOk ) );
aPoint.SetX( anX.toDouble( &isXOk ) );
aPoint.SetY( anY.toDouble( &isYOk ) );
- aPoint.SetZ( aZ.toDouble( &isZOk ) );
+ aPoint.SetZ(
-
aZ.toDouble( &isZOk ) );
if ( !isXOk || !isYOk || !isZOk )
return false;
if ( !isXOk || !isYOk || !isZOk )
return false;
@@
-380,6
+401,12
@@
bool HYDROData_Bathymetry::importFromXYZFile( QFile& theFile,
thePoints << aPoint;
}
thePoints << aPoint;
}
+#ifdef _TIMER
+ aTimer.Stop();
+ std::ofstream stream( "W:/HYDRO/WORK/log.txt", std::ofstream::out );
+ aTimer.Show( stream );
+#endif
+
return true;
}
return true;
}