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
HYDROData_ArtificialObject.sip
HYDROData_Obstacle.sip
HYDROData_NaturalObject.sip
+ HYDROData_River.sip
HYDROData_Image.sip
HYDROData_Bathymetry.sip
HYDROData_ImmersibleZone.sip
%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
--- /dev/null
+// 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();
+};
--- /dev/null
+// 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();
+};
%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.
*/
*/
static QColor DefaultBorderColor();
-
- /**
- * Sets the 3d shape of the object.
- */
-// virtual void SetShape3D( const TopoDS_Shape& theShape );
-
public:
/**
--- /dev/null
+// 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();
+};
--- /dev/null
+// 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();
+};
--- /dev/null
+// 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();
+};
--- /dev/null
+// 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();
+};
--- /dev/null
+// 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();
+};