-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015 EDF-R&D
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
}
%End
- typedef gp_XYZ AltitudePoint;
- typedef NCollection_Sequence<gp_XYZ> AltitudePoints;
+public:
+ struct AltitudePoint
+ {
+ double X;
+ double Y;
+ double Z;
+ };
+ typedef std::vector<HYDROData_Bathymetry::AltitudePoint> AltitudePoints;
%TypeHeaderCode
%End
public:
- // Public methods to work with Bathymetry altitudes.
-
- /**
- * Returns altitude for given point.
- * \param thePoint the point to examine
- * \return altitude value
- */
- double GetAltitudeForPoint( const gp_XY& thePoint );
-
- /**
- * Replace current altitude points by new one.
- * \param thePoints the altitude points list
- */
- virtual void SetAltitudePoints( const HYDROData_Bathymetry::AltitudePoints& );
-
- /**
- * Returns altitude points list.
- * \return points list
- */
+ virtual void SetAltitudePoints( const HYDROData_Bathymetry::AltitudePoints& );
HYDROData_Bathymetry::AltitudePoints GetAltitudePoints() const;
- /**
- * Remove all altitude points.
- */
- void RemoveAltitudePoints();
+ NCollection_Sequence<double> GetAltitudesForPoints( const NCollection_Sequence<double>& theCoordsX,
+ const NCollection_Sequence<double>& theCoordsY,
+ int theMethod = 0) const
+ [NCollection_Sequence<double> ( const NCollection_Sequence<gp_XY>&, int)];
+ %MethodCode
+ NCollection_Sequence<gp_XY> aPnts;
+
+ int aLen = qMin( a0->Length(), a1->Length() );
+ for ( int i = 1; i <= aLen; ++i )
+ {
+ gp_XY aPnt( a0->Value( i ), a1->Value( i ) );
+ aPnts.Append( aPnt );
+ }
+
+ int aMethod = a2;
+
+ NCollection_Sequence<double> aRes;
+ Py_BEGIN_ALLOW_THREADS
+ aRes = sipSelfWasArg ? sipCpp->HYDROData_Bathymetry::GetAltitudesForPoints( aPnts, aMethod ) :
+ sipCpp->GetAltitudesForPoints( aPnts, aMethod );
+ Py_END_ALLOW_THREADS
+
+ sipRes = new NCollection_Sequence<double>( aRes );
+ %End
+
+
+ void RemoveAltitudePoints();
public:
- // Public methods to work with files.
-
- /**
- * Set flag indicating needs to invert altitude values
- * \param theIsInverted new invert value
- * \param theIsUpdate flag indicating necessity to update points
- */
- void SetAltitudesInverted( const bool theIsInverted,
- const bool theIsUpdate = true );
-
- /**
- * Returns flag indicating needs to invert altitude values.
- */
- bool IsAltitudesInverted() const;
-
- /**
- * Imports Bathymetry data from file. The supported file types:
- * - xyz
- * \param theFileName the path to file
- * \return \c true if file has been successfully read
- */
- bool ImportFromFile( const TCollection_AsciiString& theFileName );
+ void SetAltitudesInverted( const bool theIsInverted, const bool theIsUpdate = true );
+ bool IsAltitudesInverted() const;
+ bool ImportFromFiles( const QStringList& theFileNames );
+ bool ImportFromFile( const QString& theFileName );
protected:
-
- /**
- * Creates new object in the internal data structure. Use higher level objects
- * to create objects with real content.
- */
HYDROData_Bathymetry();
-
- /**
- * Destructs properties of the object and object itself, removes it from the document.
- */
~HYDROData_Bathymetry();
};