for (k=1; k<=NbVPoles; k++) {
// pour les courbes rationnelles il faut maintenant diviser
// les poles par leurs poids respectifs
- tabPoles->ChangeValue(j,k).
- SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
- tabWeights->SetValue(j,k,newtabP2d->Value(k).X());
+ tabPoles->ChangeValue(j,k).SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
+ Standard_Real aWeight = newtabP2d->Value(k).X();
+ if (aWeight < gp::Resolution()) {
+ done = Standard_False;
+ return;
+ }
+ tabWeights->SetValue(j,k,aWeight);
}
}
for (k=1; k<=NbVPoles; k++) {
// pour les courbes rationnelles il faut maintenant diviser
// les poles par leurs poids respectifs
- tabPoles->ChangeValue(j,k).
- SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
- tabWeights->SetValue(j,k,newtabP2d->Value(k).X());
+ tabPoles->ChangeValue(j,k).SetXYZ(newtabP(k).XYZ()/newtabP2d->Value(k).X());
+ Standard_Real aWeight = newtabP2d->Value(k).X();
+ if (aWeight < gp::Resolution()) {
+ done = Standard_False;
+ return;
+ }
+ tabWeights->SetValue(j,k,aWeight);
}
}
//purpose : constructor with no parameters.
//=======================================================================
-GeomFill_Pipe::GeomFill_Pipe() : myExchUV(Standard_False),myKPart(Standard_False)
+GeomFill_Pipe::GeomFill_Pipe() : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
}
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom_Curve)& Path,
const Standard_Real Radius)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path, Radius);
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom_Curve)& Path,
const Handle(Geom_Curve)& FirstSect,
const GeomFill_Trihedron Option)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path, FirstSect, Option);
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom2d_Curve)& Path,
const Handle(Geom_Surface)& Support,
const Handle(Geom_Curve)& FirstSect)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path, Support, FirstSect);
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom_Curve)& Path,
const Handle(Geom_Curve)& FirstSect,
const Handle(Geom_Curve)& LastSect)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path, FirstSect, LastSect);
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom_Curve)& Path,
const TColGeom_SequenceOfCurve& NSections)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path, NSections);
GeomFill_Pipe::GeomFill_Pipe(const Handle(Geom_Curve)& Path,
const Handle(Geom_Curve)& Curve1,
const gp_Dir& Direction)
- : myExchUV(Standard_False), myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False), myKPart(Standard_False)
{
Init(Path, Curve1, Direction);
}
const Handle(Geom_Curve)& Curve1,
const Handle(Geom_Curve)& Curve2,
const Standard_Real Radius)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Handle(GeomAdaptor_HCurve) AdpPath =
const Handle(Adaptor3d_HCurve)& Curve1,
const Handle(Adaptor3d_HCurve)& Curve2,
const Standard_Real Radius)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
{
Init();
Init(Path,Curve1,Curve2,Radius);
const Handle(Geom_Curve)& FirstSect,
const Standard_Boolean byACR,
const Standard_Boolean rotat)
- : myExchUV(Standard_False),myKPart(Standard_False)
+ : myIsDone(Standard_False),myExchUV(Standard_False),myKPart(Standard_False)
// Path : trajectoire
// Guide : courbe guide
// FirstSect : section
App.UDegree(),
App.VDegree());
myError = App.MaxErrorOnSurf();
+ myIsDone = Standard_True;
}
- else {
- Standard_ConstructionError::Raise
- ("GeomFill_Pipe::Perform : Cannot make a surface");
- }
+ //else {
+ // Standard_ConstructionError::Raise ("GeomFill_Pipe::Perform : Cannot make a surface");
+ //}
}
}
else if ( (! myLoc.IsNull()) && (! mySec.IsNull()) ) {
if (Sweep.IsDone()) {
mySurface = Sweep.Surface();
myError = Sweep.ErrorOnSurface();
+ myIsDone = Standard_True;
}
- else {
- Standard_ConstructionError::Raise
- ("GeomFill_Pipe::Perform : Cannot make a surface");
- }
+ //else {
+ // Standard_ConstructionError::Raise ("GeomFill_Pipe::Perform : Cannot make a surface");
+ //}
}
else {
Perform(Standard_True, Polynomial);
myAdpPath->FirstParameter(),
myAdpPath->LastParameter());
Ok = Standard_True; //C'est bien un cylindre
+ myIsDone = Standard_True;
}
// ----------- Cas du tore ----------------------------------
else if (myAdpPath->GetType() == GeomAbs_Circle &&
myAdpPath->FirstParameter(),myAdpPath->LastParameter(),VV1,VV2);
myExchUV = Standard_True;
Ok = Standard_True;
+ myIsDone = Standard_True;
}
return Ok;
#endif
}
#endif
- StdFail_NotDone::Raise("Pipe : App not done");
+ //StdFail_NotDone::Raise("Pipe : App not done");
}
else {
Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots,
App.VDegree());
Standard_Real t2d;
App.TolReached(myError, t2d);
+ myIsDone = Standard_True;
}
}