X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_PolylineXY.cxx;h=1741bb6ea1df83ccd1bb8f520a405457d3ae81ea;hb=13c7ed055a9a73b66e0dee04c7a561868b41baf8;hp=c36a6c7ff77edba8f13997fdc979e8fc4a74b633;hpb=95a58c6f6d03e925872ff59cea6ba65ddf6ec29f;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_PolylineXY.cxx b/src/HYDROData/HYDROData_PolylineXY.cxx index c36a6c7f..1741bb6e 100644 --- a/src/HYDROData/HYDROData_PolylineXY.cxx +++ b/src/HYDROData/HYDROData_PolylineXY.cxx @@ -82,7 +82,7 @@ #include #include -#define _DEVDEBUG_ +//#define _DEVDEBUG_ #include "HYDRO_trace.hxx" #include #include @@ -126,7 +126,6 @@ TCollection_AsciiString getUniqueSectionName( const Handle(TDataStd_ExtStringLis return getUniqueSectionName( aNamesSeq ); } -IMPLEMENT_STANDARD_HANDLE(HYDROData_PolylineXY, HYDROData_IPolyline) IMPLEMENT_STANDARD_RTTIEXT(HYDROData_PolylineXY, HYDROData_IPolyline) HYDROData_PolylineXY::HYDROData_PolylineXY() @@ -500,44 +499,49 @@ bool convertEdgesToSections( const TopoDS_Edge& double d1= ProjectPointToCurve(aEndPs[1].XYZ(), adaptorOldCurve,p[1]); double d2= ProjectPointToCurve(midPnt.XYZ(), adaptorOldCurve, p[2]); DEBTRACE("d0: "< pmax) + { + pmin = p[1]; + pmax = p[0]; + forward = false; + } } else // old section closed: check if we use first or last points... { - if((pmin < pmax) and((abs(pmin - pfirst)> 1.e-3) and (abs(pmax - plast) >1.e-3))) // internal points forward + if((pmin < pmax) && ((std::abs(pmin - pfirst)> 1.e-3) && (std::abs(pmax - plast) >1.e-3))) // internal points forward forward = true; - else if ((pmin > pmax) and((abs(pmin - plast)> 1.e-3) and (abs(pmax - pfirst) >1.e-3))) // internal points reverse + else if ((pmin > pmax) && ((std::abs(pmin - plast)> 1.e-3) && (std::abs(pmax - pfirst) >1.e-3))) // internal points reverse { pmin = p[1]; pmax = p[0]; forward = false; } - else if ((abs(pmin - plast) <1.e-3) and (p[2] < pmax)) // forward, replace pmin par pfirst + else if ((std::abs(pmin - plast) <1.e-3) && (p[2] < pmax)) // forward, replace pmin par pfirst pmin = pfirst; - else if ((abs(pmin - plast) <1.e-3) and (p[2] > pmax)) // reverse + else if ((std::abs(pmin - plast) <1.e-3) && (p[2] > pmax)) // reverse { pmin = p[1]; pmax = p[0]; forward = false; } - else if ((abs(pmax - pfirst) <1.e-3) and (p[2] < pmin)) // reverse + else if ((std::abs(pmax - pfirst) <1.e-3) && (p[2] < pmin)) // reverse { pmin = p[1]; pmax = p[0]; forward = false; } - else if ((abs(pmax - pfirst) <1.e-3) and (p[2] > pmin)) // forward, replace pmax par plast + else if ((std::abs(pmax - pfirst) <1.e-3) && (p[2] > pmin)) // forward, replace pmax par plast pmax = plast; } + DEBTRACE("forward: "<< forward << " pmin " << pmin << " pmax " << pmax); HYDROData_PolylineXY::Point aFirstPoint, aLastPoint; if (forward) { @@ -553,6 +557,7 @@ bool convertEdgesToSections( const TopoDS_Edge& HYDROData_PolylineXY::PointsList aSectPoints = theOldPolyline->GetPoints(isec, false); int nbPoints = aSectPoints.Length(); + DEBTRACE("nbPoints " << nbPoints); if (forward) for (int i=1; i<=nbPoints; i++) { @@ -560,7 +565,7 @@ bool convertEdgesToSections( const TopoDS_Edge& gp_XYZ p(aPoint.X(), aPoint.Y(), 0); double param =-1; double d = ProjectPointToCurve(p, adaptorOldCurve, param); - if ((param > pmin) and (param < pmax)) + if ((param > pmin) && (param < pmax)) { DEBTRACE("param: " << param); aPointsList.Append(aPoint); @@ -573,7 +578,7 @@ bool convertEdgesToSections( const TopoDS_Edge& gp_XYZ p(aPoint.X(), aPoint.Y(), 0); double param =-1; double d = ProjectPointToCurve(p, adaptorOldCurve, param); - if ((param > pmin) and (param < pmax)) + if ((param > pmin) && (param < pmax)) { DEBTRACE("param: " << param); aPointsList.Append(aPoint); @@ -618,9 +623,9 @@ bool HYDROData_PolylineXY::ImportShape( const TopoDS_Shape& theShape, if ( theShape.IsNull() ) return false; - std::string brepName = this->GetName().toStdString(); - brepName += ".brep"; - BRepTools::Write( theShape, brepName.c_str() ); + //std::string brepName = this->GetName().toStdString(); + //brepName += ".brep"; + //BRepTools::Write( theShape, brepName.c_str() ); RemoveSections(); @@ -884,7 +889,7 @@ void HYDROData_PolylineXY::setEditable( const bool theIsEditable ) */ bool HYDROData_PolylineXY::IsClosed(const bool theIsSimpleCheck) const { - //DEBTRACE("IsClosed " << theIsSimpleCheck << " " << GetName()); + DEBTRACE("IsClosed " << theIsSimpleCheck << " " << GetName()); bool anIsClosed = false; TopoDS_Shape aShape = GetShape(); @@ -910,7 +915,7 @@ bool HYDROData_PolylineXY::IsClosed(const bool theIsSimpleCheck) const anIsClosed = BRep_Tool::IsClosed(aWires.First()); else { - //DEBTRACE("aNbWires " << aNbWires); + DEBTRACE("aNbWires " << aNbWires); Handle(TopTools_HSequenceOfShape) aSeqWires = new TopTools_HSequenceOfShape; Handle(TopTools_HSequenceOfShape) aSeqEdges = new TopTools_HSequenceOfShape; for (int i = 1; i <= aNbWires; ++i) @@ -922,11 +927,11 @@ bool HYDROData_PolylineXY::IsClosed(const bool theIsSimpleCheck) const } if (aSeqEdges->Length() > 1) { - //DEBTRACE(aSeqEdges->Length()); + DEBTRACE(aSeqEdges->Length()); ShapeAnalysis_FreeBounds::ConnectEdgesToWires(aSeqEdges, 1E-5, Standard_False, aSeqWires); if (aSeqWires->Length() == 1) { - //DEBTRACE(aSeqWires->Length()); + DEBTRACE(aSeqWires->Length()); const TopoDS_Wire& aPolylineWire = TopoDS::Wire(aSeqWires->Value(1)); anIsClosed = BRep_Tool::IsClosed(aPolylineWire); } @@ -953,7 +958,7 @@ int HYDROData_PolylineXY::GetNbConnectedWires(Handle(TopTools_HSequenceOfShape)& } else { - //DEBTRACE("aNbWires " << aNbWires); + DEBTRACE("aNbWires " << aNbWires); Handle(TopTools_HSequenceOfShape) aSeqWires = new TopTools_HSequenceOfShape; Handle(TopTools_HSequenceOfShape) aSeqEdges = new TopTools_HSequenceOfShape; for (int i = 1; i <= aNbWires; ++i) @@ -965,7 +970,7 @@ int HYDROData_PolylineXY::GetNbConnectedWires(Handle(TopTools_HSequenceOfShape)& } if (aSeqEdges->Length() > 1) { - //DEBTRACE(aSeqEdges->Length()); + DEBTRACE(aSeqEdges->Length()); ShapeAnalysis_FreeBounds::ConnectEdgesToWires(aSeqEdges, 1E-5, Standard_False, aSeqWires); } aConnectedWires = aSeqWires;