Salome HOME
first part of the porting on OCCT 7.0
[modules/hydro.git] / src / HYDROData / HYDROData_TopoCurve.h
index a145b5f65b084300f9964622e0ce42a4daac8b04..5bba3b28faa2ecee23acdb9e8920ee7dbddb3953 100644 (file)
@@ -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
 #define HYDRODATA_TOPOCURVE_H
 
 #include <deque>
-#include <Handle_Geom_BSplineCurve.hxx>
+#include <Geom_BSplineCurve.hxx>
 #include <HYDROData.h>
 #include <list>
 #include <TopExp.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Vertex.hxx>
+#include <gp_XYZ.hxx>
+#include <Adaptor3d_Curve.hxx>
 
 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);
 
@@ -72,7 +75,7 @@ public:
   //! Cuts the curve in the given parameter of the given edge and
   //! fills the cut part.
   //! Returns 'true' if:
-  //! -  the curve is open and was splitted into two parts or
+  //! -  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<TopoDS_Edge>::iterator& theEdgePosition,
@@ -152,7 +155,7 @@ public:
     std::deque<HYDROData_TopoCurve>& theCurves)
   {
     HYDROData_TopoCurve aCurve;
-    if (!aCurve.Initialize(theWire))
+    if (aCurve.Initialize(theWire))
     {
       return aCurve.Connect(theTolerance, theCurves);
     }
@@ -168,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<gp_XYZ>& theValues) const;