#include <QPainterPath>
#include <QVariant>
-#define _DEVDEBUG_
+//#define _DEVDEBUG_
#include "HYDRO_trace.hxx"
#include <BRepTools.hxx>
#include <sstream>
return getUniqueSectionName( aNamesSeq );
}
-IMPLEMENT_STANDARD_HANDLE(HYDROData_PolylineXY, HYDROData_IPolyline)
IMPLEMENT_STANDARD_RTTIEXT(HYDROData_PolylineXY, HYDROData_IPolyline)
HYDROData_PolylineXY::HYDROData_PolylineXY()
double d1= ProjectPointToCurve(aEndPs[1].XYZ(), adaptorOldCurve,p[1]);
double d2= ProjectPointToCurve(midPnt.XYZ(), adaptorOldCurve, p[2]);
DEBTRACE("d0: "<<d0<<" d1: "<<d1<<" d2: "<<d2<<" p0: "<<p[0]<<" p1: "<<p[1]<<" p2: "<<p[2]);
- if ((d0 < 1.e-3) and (d1 < 1.e-3) and (d2 < 1.e-3)) // we got the good old curve (and the good section)
+ if ((d0 < 1.e-3) && (d1 < 1.e-3) && (d2 < 1.e-3)) // we got the good old curve (and the good section)
{
double pmin = p[0];
double pmax = p[1];
bool forward = true;
- if (! isOldSectionclosed) // no need to check first and last points on an open curve
+ DEBTRACE("isOldSectionclosed: " << isOldSectionclosed);
+ if (!isOldSectionclosed) // no need to check first and last points on an open curve
{
- pmin = p[1];
- pmax = p[0];
- forward = false;
+ if (pmin > 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)
{
HYDROData_PolylineXY::PointsList aSectPoints = theOldPolyline->GetPoints(isec, false);
int nbPoints = aSectPoints.Length();
+ DEBTRACE("nbPoints " << nbPoints);
if (forward)
for (int i=1; i<=nbPoints; i++)
{
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);
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);
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();
*/
bool HYDROData_PolylineXY::IsClosed(const bool theIsSimpleCheck) const
{
- //DEBTRACE("IsClosed " << theIsSimpleCheck << " " << GetName());
+ DEBTRACE("IsClosed " << theIsSimpleCheck << " " << GetName());
bool anIsClosed = false;
TopoDS_Shape aShape = GetShape();
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)
}
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);
}
}
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)
}
if (aSeqEdges->Length() > 1)
{
- //DEBTRACE(aSeqEdges->Length());
+ DEBTRACE(aSeqEdges->Length());
ShapeAnalysis_FreeBounds::ConnectEdgesToWires(aSeqEdges, 1E-5, Standard_False, aSeqWires);
}
aConnectedWires = aSeqWires;