-// 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
/**
* Update the shape presentations of stream.
*/
- virtual void UpdatePrs();
+ void UpdatePrs();
/**
* Returns default filling color for new stream.
/**
* 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;
-
+ static bool IsValidAsAxis( HYDROData_PolylineXY theAxis )
+ [bool ( const Handle_HYDROData_PolylineXY& )];
+ %MethodCode
+ Handle(HYDROData_PolylineXY) aRef =
+ Handle(HYDROData_PolylineXY)::DownCast( createHandle( a0 ) );
+ if ( !aRef.IsNull() )
+ {
+ Py_BEGIN_ALLOW_THREADS
+ sipRes = HYDROData_Stream::IsValidAsAxis( aRef );
+ Py_END_ALLOW_THREADS
+ }
+ %End
public:
// Public methods to work with Stream data fields
/**
* Sets reference hydraulic axis object for stream.
*/
- virtual bool SetHydraulicAxis( const Handle(HYDROData_PolylineXY)& theAxis );
+ bool SetHydraulicAxis( HYDROData_PolylineXY theAxis )
+ [bool ( const Handle_HYDROData_PolylineXY& )];
+ %MethodCode
+ Handle(HYDROData_PolylineXY) aRef =
+ Handle(HYDROData_PolylineXY)::DownCast( createHandle( a0 ) );
+ if ( !aRef.IsNull() )
+ {
+ Py_BEGIN_ALLOW_THREADS
+ sipRes = sipSelfWasArg ? sipCpp->HYDROData_Stream::SetHydraulicAxis( aRef ):
+ sipCpp->SetHydraulicAxis( aRef );
+ Py_END_ALLOW_THREADS
+ }
+ %End
/**
* Returns reference hydraulic axis object of stream.
*/
- virtual Handle(HYDROData_PolylineXY) GetHydraulicAxis() const;
+ HYDROData_PolylineXY GetHydraulicAxis() const
+ [Handle_HYDROData_PolylineXY ()];
+ %MethodCode
+ Handle(HYDROData_PolylineXY) aRef;
+
+ Py_BEGIN_ALLOW_THREADS
+ aRef = sipSelfWasArg ? sipCpp->HYDROData_Stream::GetHydraulicAxis() :
+ sipCpp->GetHydraulicAxis();
+ Py_END_ALLOW_THREADS
+
+ sipRes = (HYDROData_PolylineXY*)createPointer( aRef );
+ %End
/**
* Remove reference hydraulic axis object from stream.
*/
- virtual void RemoveHydraulicAxis();
+ 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.
+ * Add new one reference profile object for stream.
*/
- static bool HasIntersection( const Handle(HYDROData_PolylineXY)& theHydAxis,
- const Handle(HYDROData_Profile)& theProfile, const TopoDS_Face& thePlane,
- Standard_Real& outPar);
+ bool AddProfile( HYDROData_Profile theProfile )
+ [bool ( const Handle_HYDROData_Profile& )];
+ %MethodCode
+ Handle(HYDROData_Profile) aRef =
+ Handle(HYDROData_Profile)::DownCast( createHandle( a0 ) );
+ if ( !aRef.IsNull() )
+ {
+ Py_BEGIN_ALLOW_THREADS
+ sipRes = sipSelfWasArg ? sipCpp->HYDROData_Stream::AddProfile( aRef ):
+ sipCpp->AddProfile( aRef );
+ Py_END_ALLOW_THREADS
+ }
+ %End
/**
- * 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.
+ * Returns all reference profile objects of stream.
*/
- virtual bool HasIntersection( const Handle(HYDROData_Profile)& theProfile, const TopoDS_Face& thePlane,
- Standard_Real& outPar) const;
+ HYDROData_SequenceOfObjects GetProfiles() const;
- /**
- * Builds a planar face
+ /**
+ * Removes reference profile object from stream.
*/
- virtual bool BuildFace( const Handle(HYDROData_PolylineXY)& theHydAxis, TopoDS_Face& thePlane) const;
+ bool RemoveProfile( HYDROData_Profile theProfile )
+ [bool ( const Handle_HYDROData_Profile& )];
+ %MethodCode
+ Handle(HYDROData_Profile) aRef =
+ Handle(HYDROData_Profile)::DownCast( createHandle( a0 ) );
+ if ( !aRef.IsNull() )
+ {
+ Py_BEGIN_ALLOW_THREADS
+ sipRes = sipSelfWasArg ? sipCpp->HYDROData_Stream::RemoveProfile( aRef ):
+ sipCpp->RemoveProfile( aRef );
+ Py_END_ALLOW_THREADS
+ }
+ %End
/**
- * Add new one reference profile object for stream.
+ * Removes all reference profile objects from stream.
*/
- virtual bool AddProfile( const Handle(HYDROData_Profile)& theProfile );
+ void RemoveProfiles();
/**
- * Returns all reference profile objects of stream.
+ * Generates bottom polyline for stream or update the existing bottom polyline.
*/
- virtual HYDROData_SequenceOfObjects GetProfiles() const;
+ bool GenerateBottomPolyline();
/**
- * Removes reference profile object from stream.
+ * Returns reference bottom polyline object of stream.
+ */
+ HYDROData_Polyline3D GetBottomPolyline() const
+ [Handle_HYDROData_Polyline3D ()];
+ %MethodCode
+ Handle(HYDROData_Polyline3D) aRef;
+
+ Py_BEGIN_ALLOW_THREADS
+ aRef = sipSelfWasArg ? sipCpp->HYDROData_Stream::GetBottomPolyline() :
+ sipCpp->GetBottomPolyline();
+ Py_END_ALLOW_THREADS
+
+ sipRes = (HYDROData_Polyline3D*)createPointer( aRef );
+ %End
+
+ /**
+ * Sets reference bottom polyline object for stream.
*/
- virtual bool RemoveProfile( const Handle(HYDROData_Profile)& theProfile );
+ bool SetBottomPolyline( HYDROData_Polyline3D theBottom )
+ [bool ( const Handle_HYDROData_Polyline3D& )];
+ %MethodCode
+ Handle(HYDROData_Polyline3D) aRef =
+ Handle(HYDROData_Polyline3D)::DownCast( createHandle( a0 ) );
+ if ( !aRef.IsNull() )
+ {
+ Py_BEGIN_ALLOW_THREADS
+ sipRes = sipSelfWasArg ? sipCpp->HYDROData_Stream::SetBottomPolyline( aRef ):
+ sipCpp->SetBottomPolyline( aRef );
+ Py_END_ALLOW_THREADS
+ }
+ %End
/**
- * Removes all reference profile objects from stream.
+ * Add interpolated profiles into the stream.
+ * \param theInterpolator the interpolator
+ * \return true in case of success
*/
- virtual void RemoveProfiles();
-
+ virtual bool Interpolate( HYDROData_IProfilesInterpolator* theInterpolator );
+
protected:
/**
* Creates new object in the internal data structure. Use higher level objects