]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
New objects have been wrapped for Python.
authorrkv <rkv@opencascade.com>
Fri, 27 Dec 2013 08:07:02 +0000 (08:07 +0000)
committerrkv <rkv@opencascade.com>
Fri, 27 Dec 2013 08:07:02 +0000 (08:07 +0000)
src/HYDROPy/CMakeLists.txt
src/HYDROPy/HYDROData.sip
src/HYDROPy/HYDROData_Channel.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_Digue.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_Obstacle.sip
src/HYDROPy/HYDROData_ObstacleAltitude.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_Polyline3D.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_Profile.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_River.sip [new file with mode: 0644]
src/HYDROPy/HYDROData_Stream.sip [new file with mode: 0644]

index 2ae650a535fefd85bf0f281ddc5676be171765ac..d1f9d1446c3d69543504f912157c56acb920d1c5 100644 (file)
@@ -53,6 +53,31 @@ SET(_sip_files
   HYDROData.sip
 )
 
+#TODO: new files include like this:
+#  HYDROData_Entity.sip
+#  HYDROData_IPolyline.sip
+#  HYDROData_IAltitudeObject.sip
+##  HYDROData_ObstacleAltitude.sip
+#  HYDROData_Object.sip
+##  HYDROData_Profile.sip
+##  HYDROData_Polyline3D.sip
+#  HYDROData_ProfileUZ.sip
+#  HYDROData_PolylineXY.sip
+#  HYDROData_ArtificialObject.sip
+#  HYDROData_Obstacle.sip
+##  HYDROData_Channel.sip
+##  HYDROData_Digue.sip
+#  HYDROData_NaturalObject.sip
+#  HYDROData_River.sip
+##  HYDROData_Stream.sip
+#  HYDROData_Image.sip
+#  HYDROData_Bathymetry.sip
+#  HYDROData_ImmersibleZone.sip
+#  HYDROData_Zone.sip
+#  HYDROData_Region.sip
+#  HYDROData_CalculationCase.sip
+#  HYDROData_Document.sip
+
 SET(_sip_files2
   HYDROData_Entity.sip
   HYDROData_IPolyline.sip
@@ -63,6 +88,7 @@ SET(_sip_files2
   HYDROData_ArtificialObject.sip
   HYDROData_Obstacle.sip
   HYDROData_NaturalObject.sip
+  HYDROData_River.sip
   HYDROData_Image.sip
   HYDROData_Bathymetry.sip
   HYDROData_ImmersibleZone.sip
index 2e9f91301d45d590099ed3510f640a03147d5fbd..13a1c7bef45f988e4a7771328583ea8650fd7a19 100644 (file)
@@ -54,12 +54,19 @@ See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 %Include HYDROData_Entity.sip
 %Include HYDROData_IPolyline.sip
 %Include HYDROData_IAltitudeObject.sip
+//Include HYDROData_ObstacleAltitude.sip
 %Include HYDROData_Object.sip
+//Include HYDROData_Profile.sip
+//Include HYDROData_Polyline3D.sip
 %Include HYDROData_ProfileUZ.sip
 %Include HYDROData_PolylineXY.sip
 %Include HYDROData_ArtificialObject.sip
 %Include HYDROData_Obstacle.sip
+//Include HYDROData_Channel.sip
+//Include HYDROData_Digue.sip
 %Include HYDROData_NaturalObject.sip
+%Include HYDROData_River.sip
+//Include HYDROData_Stream.sip
 %Include HYDROData_Image.sip
 %Include HYDROData_PolylineXY.sip
 %Include HYDROData_Bathymetry.sip
diff --git a/src/HYDROPy/HYDROData_Channel.sip b/src/HYDROPy/HYDROData_Channel.sip
new file mode 100644 (file)
index 0000000..6c81449
--- /dev/null
@@ -0,0 +1,92 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_Channel.h"
+%End
+
+class HYDROData_Channel : public HYDROData_ArtificialObject
+{
+%TypeHeaderCode
+#include "HYDROData_Channel.h"
+%End
+
+public:
+  /**
+   * Returns default filling color for new channel.
+   */
+  static QColor DefaultFillingColor();
+
+  /**
+   * Returns default border color for new channel.
+   */
+  static QColor DefaultBorderColor();
+
+
+public:      
+  // Public methods to work with Channel
+  
+  /**
+   * Sets reference guide line object for channel.
+   */
+  virtual bool SetGuideLine( const Handle(HYDROData_Polyline3D)& theGuideLine );
+
+  /**
+   * Returns reference guide line object of channel.
+   */
+  virtual Handle(HYDROData_Polyline3D) GetGuideLine() const;
+
+  /**
+   * Remove reference guide line object from channel.
+   */
+  virtual void RemoveGuideLine();
+
+
+  /**
+   * Sets reference profile object for channel.
+   */
+  virtual bool SetProfile( const Handle(HYDROData_Profile)& theProfile );
+
+  /**
+   * Returns reference profile object of channel.
+   */
+  virtual Handle(HYDROData_Profile) GetProfile() const;
+
+  /**
+   * Remove reference profile object from channel.
+   */
+  virtual void RemoveProfile();
+
+
+protected:
+
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_Channel();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  virtual ~HYDROData_Channel();
+};
diff --git a/src/HYDROPy/HYDROData_Digue.sip b/src/HYDROPy/HYDROData_Digue.sip
new file mode 100644 (file)
index 0000000..3e90127
--- /dev/null
@@ -0,0 +1,55 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_Digue.h"
+%End
+
+class HYDROData_Digue : public HYDROData_Channel
+{
+%TypeHeaderCode
+#include "HYDROData_Digue.h"
+%End
+
+public:
+  /**
+   * Returns default filling color for new digue.
+   */
+  static QColor DefaultFillingColor();
+
+  /**
+   * Returns default border color for new digue.
+   */
+  static QColor DefaultBorderColor();
+
+protected:
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_Digue();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  virtual ~HYDROData_Digue();
+};
index d7d4211f70eb9d7330e6395581b1789116fa4b7a..06063fd1d4610786a90479d47d9b40922a596fda 100644 (file)
@@ -31,16 +31,6 @@ class HYDROData_Obstacle : public HYDROData_ArtificialObject
 %End
 
 public:
-  /**
-   * Returns the top shape of the object.
-   */
-//  virtual TopoDS_Shape GetTopShape() const;
-
-  /**
-   * Returns the 3d shape of the object.
-   */
-//  virtual TopoDS_Shape GetShape3D() const;
-
   /**
    * Returns default filling color for new obstacle.
    */
@@ -51,12 +41,6 @@ public:
    */
   static QColor DefaultBorderColor();
 
-
-  /**
-   * Sets the 3d shape of the object.
-   */
-//  virtual void SetShape3D( const TopoDS_Shape& theShape );
-
 public:
 
   /**
diff --git a/src/HYDROPy/HYDROData_ObstacleAltitude.sip b/src/HYDROPy/HYDROData_ObstacleAltitude.sip
new file mode 100644 (file)
index 0000000..64aa35b
--- /dev/null
@@ -0,0 +1,56 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_ObstacleAltitude.h"
+%End
+
+class HYDROData_ObstacleAltitude : public HYDROData_IAltitudeObject
+{
+%TypeHeaderCode
+#include "HYDROData_ObstacleAltitude.h"
+%End
+
+public:      
+
+  // Public methods to work with altitudes.
+
+  /**
+   * Returns altitude for given point.
+   * \param thePoint the point to examine
+   * \return altitude value
+   */
+  virtual double           GetAltitudeForPoint( const gp_XY& thePoint ) const;
+
+protected:
+
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_ObstacleAltitude();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+   ~HYDROData_ObstacleAltitude();
+};
diff --git a/src/HYDROPy/HYDROData_Polyline3D.sip b/src/HYDROPy/HYDROData_Polyline3D.sip
new file mode 100644 (file)
index 0000000..a690c3b
--- /dev/null
@@ -0,0 +1,112 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_Polyline3D.h"
+%End
+
+class HYDROData_Polyline3D : public HYDROData_Object
+{
+%TypeHeaderCode
+#include "HYDROData_Polyline3D.h"
+%End
+
+public:
+  /**
+   * Returns default filling color for new 3D polyline.
+   */
+  static QColor DefaultFillingColor();
+
+  /**
+   * Returns default border color for new 3D polyline.
+   */
+  static QColor DefaultBorderColor();
+
+
+public:      
+  // Public methods to work with 3D polyline
+  
+  /**
+   * Sets reference x,y polyline object for 3D polyline.
+   */
+  virtual bool SetPolylineXY( const Handle(HYDROData_PolylineXY)& thePolyline,
+                              const bool theIsUpdateProfile = true );
+
+  /**
+   * Returns reference x,y polyline object of 3D polyline.
+   */
+  virtual Handle(HYDROData_PolylineXY) GetPolylineXY() const;
+
+  /**
+   * Remove reference x,y polyline object from 3D polyline.
+   */
+  virtual void RemovePolylineXY();
+
+
+  /**
+   * Sets reference u,z profile object for 3D polyline.
+   */
+  virtual bool SetProfileUZ( const Handle(HYDROData_ProfileUZ)& theProfile );
+
+  /**
+   * Returns reference u,z profile object of 3D polyline.
+   */
+  virtual Handle(HYDROData_ProfileUZ) GetProfileUZ() const;
+
+  /**
+   * Remove reference u,z profile object from 3D polyline.
+   */
+  virtual void RemoveProfileUZ();
+
+
+  /**
+   * Set reference bathymetry object for geometry object.
+   * Reimplemented to remove reference u,z profile.
+   */
+  virtual bool SetAltitudeObject( const Handle(HYDROData_IAltitudeObject)& theAltitude );
+
+  /**
+   * Clear the reference bathymetry object for geometry object.
+   * Reimplemented to remove child u,z profile.
+   */
+  virtual void RemoveAltitudeObject();
+
+
+  /**
+   * Returns the child u,z profile which has been generated from bathymetry.
+   */
+  Handle(HYDROData_ProfileUZ) GetChildProfileUZ( const bool theIsCreate = true ) const;
+
+
+protected:
+
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_Polyline3D();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  virtual ~HYDROData_Polyline3D();
+};
diff --git a/src/HYDROPy/HYDROData_Profile.sip b/src/HYDROPy/HYDROData_Profile.sip
new file mode 100644 (file)
index 0000000..cfd37d4
--- /dev/null
@@ -0,0 +1,260 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_Profile.h"
+%End
+
+class HYDROData_Profile : public HYDROData_Object
+{
+%TypeHeaderCode
+#include "HYDROData_Profile.h"
+%End
+
+public:
+  /**
+   * Returns default filling color for new profile.
+   */
+  static QColor DefaultFillingColor();
+
+  /**
+   * Returns default border color for new profile.
+   */
+  static QColor DefaultBorderColor();
+
+
+public:
+
+  /**
+   * Check profile data and returns true if profile is valid.
+   * Validity is determined by:
+   *   - First(left) and Last(right) point was set
+   *   - Parametric points size is more than 1
+   */
+  bool IsValid() const;
+
+  /**
+   * Invalidate profile first and last points.
+   */
+  void Invalidate();
+  
+public:
+
+  // Public methods to work with profile points.
+
+  /**
+   * 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
+
+  /**
+   * 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
+  
+    // 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
+
+  /**
+   * 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
+
+
+  /**
+   * Returns object which store parametric presentation of profile points.
+   * \return profile U,Z
+   */
+  HYDROData_ProfileUZ GetProfileUZ( const bool theIsCreate = true ) const 
+    [Handle_HYDROData_ProfileUZ ( const bool theIsCreate = true )];
+  %MethodCode
+
+    Handle(HYDROData_ProfileUZ) aRefProfileUZ;
+    
+    Py_BEGIN_ALLOW_THREADS
+    aRefProfileUZ = sipSelfWasArg ? sipCpp->HYDROData_ImmersibleZone::GetProfileUZ() : 
+                                   sipCpp->GetProfileUZ();
+    Py_END_ALLOW_THREADS
+    
+    sipRes = (HYDROData_ProfileUZ*)createPointer( aRefProfileUZ );
+  
+  %End
+
+
+  /**
+   * Return number of profile points.
+   * \return number of points
+   */
+  int NbPoints() const;
+
+  /**
+   * Remove all profile points.
+   */
+  void RemovePoints();
+
+
+  /**
+   * 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& )];
+
+  /**
+   * Returns profile points in parametric form.
+   * \return points list
+   */
+  SIP_PYLIST GetParametricPoints() const [HYDROData_ProfileUZ::PointsList ()];
+
+
+  /**
+   * Replace current profile points by new one.
+   * 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& )];
+
+  /**
+   * Returns profile points.
+   * Empty sequence is returned if first or last point was not set.
+   * \return profile points list
+   */
+  SIP_PYLIST GetProfilePoints() const [ProfilePoints ()];
+
+
+public:
+  // Public methods to work with files.
+
+  /**
+   * Stores the profile file path
+   * \param theFilePath profile file path
+   */
+  void SetFilePath( const QString& theFilePath ) [void ( const TCollection_AsciiString& )];
+
+  /**
+   * Returns uploaded profile file path
+   */
+  QString GetFilePath() const [TCollection_AsciiString ()];
+
+  /**
+   * Imports Profile data from file. The supported file types:
+   *  - parametric presentation of profile (2 points in line U,Z)
+   *  - 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& )];
+
+  /**
+   * Imports Profile data from file.
+   * \param theFileName the path to 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 );
+
+protected:
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_Profile();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  ~HYDROData_Profile();
+};
diff --git a/src/HYDROPy/HYDROData_River.sip b/src/HYDROPy/HYDROData_River.sip
new file mode 100644 (file)
index 0000000..1984dd8
--- /dev/null
@@ -0,0 +1,44 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_River.h"
+%End
+
+class HYDROData_River : public HYDROData_NaturalObject
+{
+%TypeHeaderCode
+#include "HYDROData_River.h"
+%End
+
+protected:
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_River();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  virtual ~HYDROData_River();
+};
diff --git a/src/HYDROPy/HYDROData_Stream.sip b/src/HYDROPy/HYDROData_Stream.sip
new file mode 100644 (file)
index 0000000..0fcd433
--- /dev/null
@@ -0,0 +1,149 @@
+// 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
+//
+// 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.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+%ExportedHeaderCode
+#include "HYDROData_Stream.h"
+%End
+
+class HYDROData_Stream : public HYDROData_NaturalObject
+{
+%TypeHeaderCode
+#include "HYDROData_Stream.h"
+%End
+
+public:
+  /**
+   * Update the shape presentations of stream.
+   */
+  virtual void UpdatePrs();
+
+  /**
+   * Returns default filling color for new stream.
+   */
+  static QColor DefaultFillingColor();
+
+  /**
+   * Returns default border color for new stream.
+   */
+  static QColor DefaultBorderColor();
+
+  /**
+   * Returns true if given polyline can be used as stream axis.
+   */
+  static bool IsValidAsAxis( const Handle(HYDROData_PolylineXY)& theAxis );
+
+public:      
+  // Public methods to work with Stream presentation
+  
+  /**
+   * Returns the left edge of the stream.
+   */
+//  virtual TopoDS_Shape GetLeftShape() const;
+
+  /**
+   * Returns the right edge of the stream.
+   */
+//  virtual TopoDS_Shape GetRightShape() const;
+
+  /**
+   * Returns the inlet edge of the stream.
+   */
+//  virtual TopoDS_Shape GetInletShape() const;
+
+  /**
+   * Returns the outlet edge of the stream.
+   */
+//  virtual TopoDS_Shape GetOutletShape() const;
+
+
+public:      
+  // Public methods to work with Stream data fields
+
+  /**
+   * Sets reference hydraulic axis object for stream.
+   */
+  virtual bool SetHydraulicAxis( const Handle(HYDROData_PolylineXY)& theAxis );
+
+  /**
+   * Returns reference hydraulic axis object of stream.
+   */
+  virtual Handle(HYDROData_PolylineXY) GetHydraulicAxis() const;
+
+  /**
+   * Remove reference hydraulic axis object from stream.
+   */
+  virtual void RemoveHydraulicAxis();
+
+  /**
+   * Returns true if profile has the intersection with the given hydraulic axis.
+   * Returns the parameter of inresection point on axis if axis is presented by one curve,
+   * if axis presented by set of edges the <outPar> returns a common length of segments till the intersection point. 
+   */
+  static bool HasIntersection( const Handle(HYDROData_PolylineXY)& theHydAxis, 
+                                                const Handle(HYDROData_Profile)& theProfile, const TopoDS_Face& thePlane,
+                                                                                                                       Standard_Real& outPar);
+
+  /**
+   * Returns true if profile has the intersection with reference hydraulic axis.
+   * Returns the parameter of inresection point on axis if axis is presented by one curve,
+   * if axis presented by set of edges the <outPar> returns a common length of segments till the intersection point. 
+   */
+  virtual bool HasIntersection( const Handle(HYDROData_Profile)& theProfile, const TopoDS_Face& thePlane,
+                                                                                                                        Standard_Real& outPar) const;
+
+   /**
+   * Builds a planar face
+   */
+  virtual bool BuildFace( const Handle(HYDROData_PolylineXY)& theHydAxis, TopoDS_Face& thePlane) const;
+
+  /**
+   * Add new one reference profile object for stream.
+   */
+  virtual bool AddProfile( const Handle(HYDROData_Profile)& theProfile );
+
+  /**
+   * Returns all reference profile objects of stream.
+   */
+  virtual HYDROData_SequenceOfObjects GetProfiles() const;
+
+  /**
+   * Removes reference profile object from stream.
+   */
+  virtual bool RemoveProfile( const Handle(HYDROData_Profile)& theProfile );
+
+  /**
+   * Removes all reference profile objects from stream.
+   */
+  virtual void RemoveProfiles();
+  
+protected:
+  /**
+   * Creates new object in the internal data structure. Use higher level objects 
+   * to create objects with real content.
+   */
+  HYDROData_Stream();
+
+  /**
+   * Destructs properties of the object and object itself, removes it from the document.
+   */
+  virtual ~HYDROData_Stream();
+};