X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_TopoCurve.h;h=5bba3b28faa2ecee23acdb9e8920ee7dbddb3953;hb=926110b557c276a493e3b6066bb0a598b124d36b;hp=f7439467086a4a39a294bc60e69b75848e28545b;hpb=6e864f284319c3e57ba99b17384dfa13b853c0bf;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_TopoCurve.h b/src/HYDROData/HYDROData_TopoCurve.h index f7439467..5bba3b28 100644 --- a/src/HYDROData/HYDROData_TopoCurve.h +++ b/src/HYDROData/HYDROData_TopoCurve.h @@ -1,8 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -24,16 +20,23 @@ #define HYDRODATA_TOPOCURVE_H #include -#include +#include #include #include #include #include #include +#include +#include class TopoDS_Wire; -//! The type represents a 1 monifold connected topo curve +//! Get the parameter of the projected point on the curve, and return the distance of the original point +double ProjectPointToCurve(const gp_XYZ& thePoint, + const Adaptor3d_Curve& theCurve, + double& theParameter); + +//! The type represents a 1 manifold connected topo curve //! with forward orientation. class HYDROData_TopoCurve { @@ -45,7 +48,7 @@ public: HYDROData_TopoCurve(const TopoDS_Edge& theEdge) {myEdges.push_back(theEdge);} //! Initializes the curve by the wire. - //! Returns 'false' if the wire is not 1 monifold or + //! Returns 'false' if the wire is not 1 manifold or //! is disconnected or is empty. HYDRODATA_EXPORT bool Initialize(const TopoDS_Wire& theWire); @@ -71,7 +74,10 @@ public: //! Cuts the curve in the given parameter of the given edge and //! fills the cut part. - HYDRODATA_EXPORT void Cut( + //! Returns 'true' if: + //! - the curve is open and was split into two parts or + //! - the curve is closed and was cut into an open curve. + HYDRODATA_EXPORT bool Cut( const std::list::iterator& theEdgePosition, const double theParameter, HYDROData_TopoCurve& theCurve); @@ -87,7 +93,7 @@ public: //! Cuts the curve at the parameters. //! Each parameter vector list corresponds to the curve edge and //! is ordered in the ascending order. - HYDRODATA_EXPORT void Cut( + HYDRODATA_EXPORT bool Cut( const std::deque >& theParameters, std::deque& theCurves) const; @@ -149,7 +155,7 @@ public: std::deque& theCurves) { HYDROData_TopoCurve aCurve; - if (!aCurve.Initialize(theWire)) + if (aCurve.Initialize(theWire)) { return aCurve.Connect(theTolerance, theCurves); } @@ -165,7 +171,7 @@ public: const double theDeflection, HYDROData_TopoCurve& theCurve) const; //! Calculates the values of the curve in its knots. - //! Returns 'false' if a curve edge has a nonidentity location or a nonforward + //! Returns 'false' if a curve edge has a non-identity location or a non-forward //! orientation or has no a B-spline representation. HYDRODATA_EXPORT bool ValuesInKnots(std::list& theValues) const;