TColGeom_SequenceOfCurve scur;
Curves(scur);
- Standard_Real locmin;
- Standard_Real locmax;
Standard_Real mf, Mf, mu, Mu;
TopAbs_Orientation Orifuntil = TopAbs_INTERNAL;
}
{
-// Find sens, locmin, locmax, FFrom, FUntil
- locmin = RealFirst();
- locmax = RealLast();
+// Find sens, FFrom, FUntil
for (Standard_Integer jj=1; jj<=scur.Length(); jj++) {
if (ASI1.IsDone() && ASI2.IsDone()) {
if (ASI1.NbPoints(jj) <= 0) {
}
mu = ASI2.Point(jj,1).Parameter();
Mu = ASI2.Point(jj,ASI2.NbPoints(jj)).Parameter();
- if (scur(jj)->IsPeriodic()) {
- Standard_Real period = scur(jj)->Period();
- locmin = mf;
- locmax = ElCLib::InPeriod(Mu,locmin,locmin+period);
- }
- else {
+ if (!scur(jj)->IsPeriodic()) {
Standard_Integer ku, kf;
if (! (mu > Mf || mf > Mu)) { //overlapping intervals
sens = 1;
kf = 1;
ku = ASI2.NbPoints(jj);
- locmin = mf;
- locmax = Max(Mf, Mu);
}
else if (mu > Mf) {
if (sens == -1) {
sens = 1;
kf = 1;
ku = ASI2.NbPoints(jj);
- locmin = mf;
- locmax = Mu;
}
else {
if (sens == 1) {
sens = -1;
kf = ASI1.NbPoints(jj);
ku = 1;
- locmin = mu;
- locmax = Mf;
}
if (Oriffrom == TopAbs_INTERNAL) {
TopAbs_Orientation Oript = ASI1.Point(jj,kf).Orientation();
Standard_Integer ku;
if (sens == -1) {
ku = 1;
- locmax = -ASI2.Point(jj,ku).Parameter();
- locmin = 0.;
}
else {
ku = ASI2.NbPoints(jj);
- locmin = 0;
- locmax = ASI2.Point(jj,ku).Parameter();
}
if (Orifuntil == TopAbs_INTERNAL && sens != 0) {
TopAbs_Orientation Oript = ASI2.Point(jj,ku).Orientation();
}
}
else {
- locmin = 0.;
- locmax = RealLast();
sens = 1;
break;
}