Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Initial merge of branch 'BR_HYDRO_IMPS_2016' into BR_PORTING_OCCT_7
[modules/hydro.git]
/
src
/
HYDROData
/
HYDROData_TopoCurve.h
diff --git
a/src/HYDROData/HYDROData_TopoCurve.h
b/src/HYDROData/HYDROData_TopoCurve.h
index f7439467086a4a39a294bc60e69b75848e28545b..5bba3b28faa2ecee23acdb9e8920ee7dbddb3953 100644
(file)
--- 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
// 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 <deque>
#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 <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;
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
{
//! 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.
HYDROData_TopoCurve(const TopoDS_Edge& theEdge) {myEdges.push_back(theEdge);}
//! Initializes the curve by the wire.
- //! Returns 'false' if the wire is not 1 m
o
nifold or
+ //! Returns 'false' if the wire is not 1 m
a
nifold or
//! is disconnected or is empty.
HYDRODATA_EXPORT bool Initialize(const TopoDS_Wire& theWire);
//! 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.
//! 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<TopoDS_Edge>::iterator& theEdgePosition,
const double theParameter,
HYDROData_TopoCurve& theCurve);
const std::list<TopoDS_Edge>::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.
//! 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<std::list<double> >& theParameters,
std::deque<HYDROData_TopoCurve>& theCurves) const;
const std::deque<std::list<double> >& theParameters,
std::deque<HYDROData_TopoCurve>& theCurves) const;
@@
-149,7
+155,7
@@
public:
std::deque<HYDROData_TopoCurve>& theCurves)
{
HYDROData_TopoCurve aCurve;
std::deque<HYDROData_TopoCurve>& theCurves)
{
HYDROData_TopoCurve aCurve;
- if (
!
aCurve.Initialize(theWire))
+ if (aCurve.Initialize(theWire))
{
return aCurve.Connect(theTolerance, theCurves);
}
{
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.
const double theDeflection, HYDROData_TopoCurve& theCurve) const;
//! Calculates the values of the curve in its knots.
- //! Returns 'false' if a curve edge has a non
identity location or a non
forward
+ //! 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;
//! orientation or has no a B-spline representation.
HYDRODATA_EXPORT bool ValuesInKnots(std::list<gp_XYZ>& theValues) const;