Salome HOME
SIP: HYDROData_Profile is included.
[modules/hydro.git] / src / HYDROPy / HYDROData_Profile.sip
index cfd37d46aebc174ad81d10550cc3462cea7b5238..e25057b4a69038d6925c5aba701de423e21031a7 100644 (file)
 
 class HYDROData_Profile : public HYDROData_Object
 {
+public:
+
+  typedef gp_XYZ                       ProfilePoint;
+  typedef NCollection_Sequence<gp_XYZ> ProfilePoints;
+
 %TypeHeaderCode
 #include "HYDROData_Profile.h"
 %End
@@ -65,84 +70,27 @@ public:
    * Set first(left) point for profile.
    * \param thePoint the point
    */
-  void SetLeftPoint( const QPointF& thePoint ) [void (const gp_XY&)];
-  %MethodCode
-  
-    // The C++ API gets the gp_XY object, we convert it from QPointF.
-    gp_XY aPoint( a0->x(), a0->y() );
-    
-    Py_BEGIN_ALLOW_THREADS
-    if ( sipSelfWasArg )
-    {
-      sipCpp->HYDROData_Profile::SetLeftPoint( aPoint );
-    }
-    else
-    {
-      sipCpp->SetLeftPoint( aPoint );
-    }
-    Py_END_ALLOW_THREADS
-  %End
+  void SetLeftPoint( const gp_XY& thePoint );
 
   /**
    * Returns first(left) point of profile.
    * \param thePoint[out] profile first point
    * \return true if point has been set
    */
-  bool GetLeftPoint( QPointF& thePoint ) const [bool (gp_XY&)];
-  %MethodCode
+  bool GetLeftPoint( gp_XY& thePoint ) const;
   
-    // The C++ API gets the gp_XY object, then we convert it to QPointF.
-    gp_XY aPoint();
-    
-    Py_BEGIN_ALLOW_THREADS
-    sipRes = sipSelfWasArg ? sipCpp->HYDROData_Profile::GetLeftPoint( aPoint ) : 
-                             sipCpp->GetLeftPoint( aPoint );
-    Py_END_ALLOW_THREADS
-    
-    a0->SetX( aPoint.X() );
-    a0->SetY( aPoint.Y() );
-  %End
-
   /**
    * Set last(right) point for profile.
    * \param thePoint the point
    */
-  void SetRightPoint( const QPointF& thePoint ) [void (const gp_XY&)];
-  %MethodCode
-  
-    // The C++ API gets the gp_XY object, we convert it from QPointF.
-    gp_XY aPoint( a0->x(), a0->y() );
-    
-    Py_BEGIN_ALLOW_THREADS
-    {
-      sipCpp->HYDROData_Profile::SetRightPoint( aPoint );
-    }
-    else
-    {
-      sipCpp->SetRightPoint( aPoint );
-    }
-    Py_END_ALLOW_THREADS
-  %End
+  void SetRightPoint( const gp_XY& thePoint );
 
   /**
    * Returns last(right) point of profile.
    * \param thePoint[out] profile last point
    * \return true if point has been set
    */
-  bool GetRightPoint( QPointF& thePoint ) const [bool (gp_XY&)];
-  %MethodCode
-  
-    // The C++ API gets the gp_XY object, then we convert it to QPointF.
-    gp_XY aPoint();
-    
-    Py_BEGIN_ALLOW_THREADS
-    sipRes = sipSelfWasArg ? sipCpp->HYDROData_Profile::GetRightPoint( aPoint ) : 
-                             sipCpp->GetRightPoint( aPoint );
-    Py_END_ALLOW_THREADS
-    
-    a0->SetX( aPoint.X() );
-    a0->SetY( aPoint.Y() );
-  %End
+  bool GetRightPoint( gp_XY& thePoint ) const;
 
 
   /**
@@ -156,7 +104,7 @@ public:
     Handle(HYDROData_ProfileUZ) aRefProfileUZ;
     
     Py_BEGIN_ALLOW_THREADS
-    aRefProfileUZ = sipSelfWasArg ? sipCpp->HYDROData_ImmersibleZone::GetProfileUZ() : 
+    aRefProfileUZ = sipSelfWasArg ? sipCpp->HYDROData_Profile::GetProfileUZ() : 
                                    sipCpp->GetProfileUZ();
     Py_END_ALLOW_THREADS
     
@@ -181,13 +129,13 @@ public:
    * Replace current profile parametric points by new one.
    * \param thePoints the list with new points in parametric form
    */
-  void SetParametricPoints( SIP_PYLIST thePoints ) [void ( const HYDROData_ProfileUZ::PointsList& )];
+  void SetParametricPoints( const HYDROData_ProfileUZ::PointsList& thePoints );
 
   /**
    * Returns profile points in parametric form.
    * \return points list
    */
-  SIP_PYLIST GetParametricPoints() const [HYDROData_ProfileUZ::PointsList ()];
+  HYDROData_ProfileUZ::PointsList GetParametricPoints() const;
 
 
   /**
@@ -195,14 +143,14 @@ public:
    * First and last points will be automatically updated.
    * \param thePoints the list with new profile points
    */
-  void SetProfilePoints( const SIP_PYLIST thePoints ) [void ( const ProfilePoints& )];
+  void SetProfilePoints( const ProfilePoints thePoints );
 
   /**
    * Returns profile points.
    * Empty sequence is returned if first or last point was not set.
    * \return profile points list
    */
-  SIP_PYLIST GetProfilePoints() const [ProfilePoints ()];
+  ProfilePoints GetProfilePoints() const;
 
 
 public:
@@ -212,12 +160,12 @@ public:
    * Stores the profile file path
    * \param theFilePath profile file path
    */
-  void SetFilePath( const QString& theFilePath ) [void ( const TCollection_AsciiString& )];
+  void SetFilePath( const TCollection_AsciiString& theFilePath );
 
   /**
    * Returns uploaded profile file path
    */
-  QString GetFilePath() const [TCollection_AsciiString ()];
+  TCollection_AsciiString GetFilePath() const;
 
   /**
    * Imports Profile data from file. The supported file types:
@@ -225,26 +173,34 @@ public:
    *  - georeferenced presentation of profile (3 points in line X,Y,Z)
    * Create as many objects as many profiles in the file are defined.
    * \param theFileName the path to file
-   * \return \c true if file has been successfully read
-   */
-  static bool ImportFromFile( HYDROData_Document theDoc,
-                              const QString& theFileName )
-  [bool ( const Handle_HYDROData_Document&,
-          const TCollection_AsciiString& )];
-
+   * \return \c number of successfully imported profiles
+   */
+  /*static int ImportFromFile( HYDROData_Document theDoc,
+                             const TCollection_AsciiString&    theFileName,
+                             NCollection_Sequence<int>&        theBadProfilesIds )
+  [int ImportFromFile( const Handle(HYDROData_Document)& ,
+                              const TCollection_AsciiString&    ,
+                              NCollection_Sequence<int>&         )];
+  MethodCode
+    Handle(HYDROData_Document) aRef =
+      Handle(HYDROData_Document)::DownCast( createHandle( a0 ) );
+    if ( !aRef.IsNull() )
+    {
+      Py_BEGIN_ALLOW_THREADS
+      sipRes = sipSelfWasArg ? sipCpp->HYDROData_Profile::ImportFromFile( aRef, a1, a2 ):
+                               sipCpp->ImportFromFile( aRef, a1, a2 );
+      Py_END_ALLOW_THREADS
+    }
+  End
+*/
   /**
    * Imports Profile data from file.
    * \param theFileName the path to file
+   * \param theIsRead set to true if at least one non empty string was read from file
    * \return \c true if file has been successfully read
    */
-  virtual bool ImportFromFile( const QString& theFileName ) [ bool ( const TCollection_AsciiString& ) ];
-
-  /**
-   * Imports Profile data from file. 
-   * \param theFile file to read
-   * \return \c true if file has been successfully read
-   */
-//  virtual bool ImportFromFile( OSD_File& theFile );
+  virtual bool ImportFromFile( const TCollection_AsciiString& theFileName,
+                               bool*                          theIsRead = 0 );
 
 protected:
   /**