mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0024023: Revamp the OCCT Handle -- ambiguity
Code corrected to avoid ambiguous situations due to changed implementation of Handle (overloaded methods accepting handles of different types). In Adaptor3d_CurveOnSurface added method Load() with two parameters, allowing to avoid ambiguity of cast of handles when calling separate methods Load() for curve and surface, replacing by single call. In DrawTrSurf and IGESData_IGESWriter, template variants of methods Set() and Send(), respectively, are added to avoid ambiguity when these methods are called with handles to derived types (using SFINAE). In NCollection_DefineHSequence, method Append() accepting handle to another HSequence is made template, to be available only if argument has compatible type.
This commit is contained in:
@@ -506,10 +506,10 @@ is
|
||||
Spine : Spine from ChFiDS;
|
||||
HS1, HS3 : HSurface from BRepAdaptor;
|
||||
P1, P3 : Pnt2d from gp;
|
||||
I1 : in out TopolTool from Adaptor3d;
|
||||
I1 : TopolTool from Adaptor3d;
|
||||
HS2, HS4 : HSurface from BRepAdaptor;
|
||||
P2, P4 : Pnt2d from gp;
|
||||
I2 : in out TopolTool from Adaptor3d;
|
||||
I2 : TopolTool from Adaptor3d;
|
||||
MaxStep : Real from Standard;
|
||||
Fleche : Real from Standard;
|
||||
TolGuide : Real from Standard;
|
||||
|
@@ -618,8 +618,8 @@ void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
|
||||
//function : ChFi3d_InterPlaneEdge
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
|
||||
Handle(Adaptor3d_HCurve)& C,
|
||||
Standard_Boolean ChFi3d_InterPlaneEdge (const Handle(Adaptor3d_HSurface)& Plan,
|
||||
const Handle(Adaptor3d_HCurve)& C,
|
||||
Standard_Real& W,
|
||||
const Standard_Boolean Sens,
|
||||
const Standard_Real tolc)
|
||||
@@ -1320,8 +1320,8 @@ void ChFi3d_ComputePCurv(const Handle(Geom_Curve)& C3d,
|
||||
Standard_Real& tolreached,
|
||||
const Standard_Boolean reverse)
|
||||
{
|
||||
/*szv:static*/ Handle(GeomAdaptor_HSurface) hs(new GeomAdaptor_HSurface(S));
|
||||
/*szv:static*/ Handle(GeomAdaptor_HCurve) hc(new GeomAdaptor_HCurve(C3d,Pardeb,Parfin));
|
||||
Handle(Adaptor3d_HSurface) hs(new GeomAdaptor_HSurface(S));
|
||||
Handle(Adaptor3d_HCurve) hc(new GeomAdaptor_HCurve(C3d,Pardeb,Parfin));
|
||||
ChFi3d_ComputePCurv(hc,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,reverse);
|
||||
}
|
||||
//=======================================================================
|
||||
@@ -1433,7 +1433,7 @@ Handle(GeomFill_Boundary) ChFi3d_mkbound(const Handle(Geom_Surface)& s,
|
||||
const Standard_Real ta,
|
||||
const Standard_Boolean isfreeboundary)
|
||||
{
|
||||
Handle(GeomAdaptor_HSurface) HS = new GeomAdaptor_HSurface(s);
|
||||
Handle(Adaptor3d_HSurface) HS = new GeomAdaptor_HSurface(s);
|
||||
return ChFi3d_mkbound(HS,p1,p2,t3d,ta,isfreeboundary);
|
||||
}
|
||||
//=======================================================================
|
||||
@@ -1636,7 +1636,8 @@ void ChFi3d_ComputeArete(const ChFiDS_CommonPoint& P1,
|
||||
if(IFlag != 1) {
|
||||
hs->ChangeSurface().Load(Surf);
|
||||
hc->ChangeCurve().Load(C3d,Pardeb,Parfin);
|
||||
ChFi3d_ComputePCurv(hc,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,Standard_False);
|
||||
const Handle(Adaptor3d_HCurve)& aHCurve = hc; // to avoid ambiguity
|
||||
ChFi3d_ComputePCurv(aHCurve,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,Standard_False);
|
||||
}
|
||||
else{
|
||||
Pcurv = new Geom2d_Line(UV1,gp_Vec2d(UV1,UV2));
|
||||
@@ -1665,7 +1666,8 @@ void ChFi3d_ComputeArete(const ChFiDS_CommonPoint& P1,
|
||||
if(IFlag != 1) {
|
||||
hs->ChangeSurface().Load(Surf);
|
||||
hc->ChangeCurve().Load(C3d,Pardeb,Parfin);
|
||||
ChFi3d_ComputePCurv(hc,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,Standard_False);
|
||||
const Handle(Adaptor3d_HCurve)& aHCurve = hc; // to avoid ambiguity
|
||||
ChFi3d_ComputePCurv(aHCurve,UV1,UV2,Pcurv,hs,Pardeb,Parfin,tol3d,tolreached,Standard_False);
|
||||
}
|
||||
else{
|
||||
Pcurv = new Geom2d_Line(UV1,gp_Vec2d(UV1,UV2));
|
||||
@@ -3011,8 +3013,8 @@ static void CurveCleaner(Handle(Geom_BSplineCurve)& BS,
|
||||
// <wholeCurv> means that the resulting curve is restricted by
|
||||
// boundaries of input surfaces (eap 30 May occ354)
|
||||
//=======================================================================
|
||||
Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)& S1,
|
||||
Handle(Adaptor3d_HSurface)& S2,
|
||||
Standard_Boolean ChFi3d_ComputeCurves(const Handle(Adaptor3d_HSurface)& S1,
|
||||
const Handle(Adaptor3d_HSurface)& S2,
|
||||
const TColStd_Array1OfReal& Pardeb,
|
||||
const TColStd_Array1OfReal& Parfin,
|
||||
Handle(Geom_Curve)& C3d,
|
||||
@@ -3488,10 +3490,10 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)& S1,
|
||||
//
|
||||
//=======================================================================
|
||||
|
||||
Standard_Boolean ChFi3d_IntCS(Handle(Adaptor3d_HSurface)& S,
|
||||
Handle(Adaptor3d_HCurve)& C,
|
||||
gp_Pnt2d& p2dS,
|
||||
Standard_Real& wc)
|
||||
Standard_Boolean ChFi3d_IntCS(const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_HCurve)& C,
|
||||
gp_Pnt2d& p2dS,
|
||||
Standard_Real& wc)
|
||||
{
|
||||
IntCurveSurface_HInter Intersection;
|
||||
|
||||
|
@@ -152,8 +152,8 @@ void ChFi3d_BoundSrf(GeomAdaptor_Surface& S,
|
||||
const Standard_Real vmax,
|
||||
const Standard_Boolean checknaturalbounds = Standard_True);
|
||||
|
||||
Standard_Boolean ChFi3d_InterPlaneEdge (Handle(Adaptor3d_HSurface)& Plan,
|
||||
Handle(Adaptor3d_HCurve)& C,
|
||||
Standard_Boolean ChFi3d_InterPlaneEdge (const Handle(Adaptor3d_HSurface)& Plan,
|
||||
const Handle(Adaptor3d_HCurve)& C,
|
||||
Standard_Real& W,
|
||||
const Standard_Boolean Sens,
|
||||
const Standard_Real tolc);
|
||||
@@ -433,8 +433,8 @@ TopoDS_Edge ChFi3d_EdgeFromV1(const TopoDS_Vertex& V1,
|
||||
Standard_Real ChFi3d_ConvTol2dToTol3d(const Handle(Adaptor3d_HSurface)& S,
|
||||
const Standard_Real tol2d);
|
||||
|
||||
Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)& S1,
|
||||
Handle(Adaptor3d_HSurface)& S2,
|
||||
Standard_Boolean ChFi3d_ComputeCurves(const Handle(Adaptor3d_HSurface)& S1,
|
||||
const Handle(Adaptor3d_HSurface)& S2,
|
||||
const TColStd_Array1OfReal& Pardeb,
|
||||
const TColStd_Array1OfReal& Parfin,
|
||||
Handle(Geom_Curve)& C3d,
|
||||
@@ -446,8 +446,8 @@ Standard_Boolean ChFi3d_ComputeCurves(Handle(Adaptor3d_HSurface)& S1,
|
||||
const Standard_Boolean wholeCurv
|
||||
= Standard_True);
|
||||
|
||||
Standard_Boolean ChFi3d_IntCS(Handle(Adaptor3d_HSurface)& S,
|
||||
Handle(Adaptor3d_HCurve)& C,
|
||||
Standard_Boolean ChFi3d_IntCS(const Handle(Adaptor3d_HSurface)& S,
|
||||
const Handle(Adaptor3d_HCurve)& C,
|
||||
gp_Pnt2d& p2dS,
|
||||
Standard_Real& wc);
|
||||
|
||||
|
@@ -587,12 +587,12 @@ CallPerformSurf(Handle(ChFiDS_Stripe)& Stripe,
|
||||
const Handle(BRepAdaptor_HSurface)& HS3,
|
||||
const gp_Pnt2d& pp1,
|
||||
const gp_Pnt2d& pp3,
|
||||
Handle(Adaptor3d_TopolTool)& It1,
|
||||
const Handle(Adaptor3d_TopolTool)& It1,
|
||||
const Handle(BRepAdaptor_HSurface)& HS2,
|
||||
const Handle(BRepAdaptor_HSurface)& HS4,
|
||||
const gp_Pnt2d& pp2,
|
||||
const gp_Pnt2d& pp4,
|
||||
Handle(Adaptor3d_TopolTool)& It2,
|
||||
const Handle(Adaptor3d_TopolTool)& It2,
|
||||
const Standard_Real MaxStep,
|
||||
const Standard_Real Fleche,
|
||||
const Standard_Real /*TolGuide*/,
|
||||
@@ -616,8 +616,8 @@ CallPerformSurf(Handle(ChFiDS_Stripe)& Stripe,
|
||||
HSon1 = HS1;
|
||||
HSon2 = HS2;
|
||||
// Definition of the domain of path It1, It2
|
||||
It1->Initialize(HS1);
|
||||
It2->Initialize(HS2);
|
||||
It1->Initialize((const Handle(Adaptor3d_HSurface)&)HSon1);
|
||||
It2->Initialize((const Handle(Adaptor3d_HSurface)&)HSon2);
|
||||
|
||||
|
||||
TopAbs_Orientation Or1 = HS1->ChangeSurface().Face().Orientation();
|
||||
@@ -659,14 +659,14 @@ CallPerformSurf(Handle(ChFiDS_Stripe)& Stripe,
|
||||
Standard_Boolean reprise = Standard_False;
|
||||
if (! HS3.IsNull()) {
|
||||
HSon1 = HS3;
|
||||
It1->Initialize(HS3);
|
||||
It1->Initialize((const Handle(Adaptor3d_HSurface)&)HS3);
|
||||
Or1 = HS3->ChangeSurface().Face().Orientation();
|
||||
Soldep(1) = pp3.X(); Soldep(2) = pp3.Y();
|
||||
reprise = Standard_True;
|
||||
}
|
||||
else if (! HS4.IsNull()) {
|
||||
HSon2 = HS4;
|
||||
It2->Initialize(HS4);
|
||||
It2->Initialize((const Handle(Adaptor3d_HSurface)&)HS4);
|
||||
Or2 = HS4->ChangeSurface().Face().Orientation();
|
||||
Soldep(3) = pp4.X(); Soldep(4) = pp4.Y();
|
||||
reprise = Standard_True;
|
||||
@@ -842,7 +842,7 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)& Stripe,
|
||||
f1forward.Orientation(TopAbs_FORWARD);
|
||||
f2forward.Orientation(TopAbs_FORWARD);
|
||||
PC = BRep_Tool::CurveOnSurface(cured,f1forward,Uf,Ul);
|
||||
I1->Initialize(HS1);
|
||||
I1->Initialize((const Handle(Adaptor3d_HSurface)&)HS1);
|
||||
PC->D1(woned, P1, derive);
|
||||
// There are ponts on the border, and internal points are found
|
||||
if (derive.Magnitude() > Precision::PConfusion()) {
|
||||
@@ -866,7 +866,8 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)& Stripe,
|
||||
if(f1.IsSame(f2)) cured.Orientation(TopAbs_REVERSED);
|
||||
PC = BRep_Tool::CurveOnSurface(cured,f2forward,Uf,Ul);
|
||||
P2 = PC->Value(woned);
|
||||
I2->Initialize(HS2);
|
||||
const Handle(Adaptor3d_HSurface)& HSon2 = HS2; // to avoid ambiguity
|
||||
I2->Initialize(HSon2);
|
||||
|
||||
SolDep(1) = P1.X(); SolDep(2) = P1.Y();
|
||||
SolDep(3) = P2.X(); SolDep(4) = P2.Y();
|
||||
@@ -908,8 +909,10 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)& Stripe,
|
||||
P1 = PC->Value(woned);
|
||||
PC = BRep_Tool::CurveOnSurface(cured,f2forward,Uf,Ul);
|
||||
P2 = PC->Value(woned);
|
||||
I1->Initialize(HS1);
|
||||
I2->Initialize(HS2);
|
||||
const Handle(Adaptor3d_HSurface)& HSon1 = HS1; // to avoid ambiguity
|
||||
const Handle(Adaptor3d_HSurface)& HSon2 = HS2; // to avoid ambiguity
|
||||
I1->Initialize(HSon1);
|
||||
I2->Initialize(HSon2);
|
||||
SolDep(1) = P1.X(); SolDep(2) = P1.Y();
|
||||
SolDep(3) = P2.X(); SolDep(4) = P2.Y();
|
||||
const BRepAdaptor_Curve& Ced = Spine->CurrentElementarySpine(iedge);
|
||||
@@ -947,8 +950,10 @@ void ChFi3d_Builder::StartSol(const Handle(ChFiDS_Stripe)& Stripe,
|
||||
Stripe->OrientationOnFace1(),
|
||||
Stripe->OrientationOnFace2(),
|
||||
RC);
|
||||
I1->Initialize(HS1);
|
||||
I2->Initialize(HS2);
|
||||
const Handle(Adaptor3d_HSurface)& HSon1 = HS1; // to avoid ambiguity
|
||||
const Handle(Adaptor3d_HSurface)& HSon2 = HS2; // to avoid ambiguity
|
||||
I1->Initialize(HSon1);
|
||||
I2->Initialize(HSon2);
|
||||
if(PerformFirstSection(Spine,HGuide,Choix,HS1,HS2,
|
||||
I1,I2,w,SolDep,Pos1,Pos2)){
|
||||
P1.SetCoord(SolDep(1),SolDep(2));
|
||||
@@ -2047,9 +2052,11 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
|
||||
else Standard_Failure::Raise("PerformSetOfSurfOnElSpine : Chaining is impossible.");
|
||||
}
|
||||
|
||||
// Definition of the domain of path It1, It2
|
||||
It1->Initialize(HS1);
|
||||
It2->Initialize(HS2);
|
||||
// Definition of the domain of patch It1, It2
|
||||
const Handle(Adaptor3d_HSurface)& HSon1 = HS1; // to avoid ambiguity
|
||||
const Handle(Adaptor3d_HSurface)& HSon2 = HS2; // to avoid ambiguity
|
||||
It1->Initialize(HSon1);
|
||||
It2->Initialize(HSon2);
|
||||
|
||||
// Calculate one (several if singularity) SurfaData
|
||||
SD = new ChFiDS_SurfData();
|
||||
@@ -2151,11 +2158,13 @@ void ChFi3d_Builder::PerformSetOfSurfOnElSpine
|
||||
SD->ChangeIndexOfS2(DStr.AddShape(HS2->ChangeSurface().Face()));
|
||||
decroch1 = 0;
|
||||
}
|
||||
else{
|
||||
else{
|
||||
const Handle(Adaptor3d_TopolTool)& aTT1 = It1; // to avoid ambiguity
|
||||
const Handle(Adaptor3d_TopolTool)& aTT2 = It2; // to avoid ambiguity
|
||||
CallPerformSurf(Stripe, Simul, SeqSD, SD,
|
||||
HGuide,Spine,
|
||||
HS1, HS3, pp1, pp3, It1,
|
||||
HS2, HS4, pp2, pp4, It2,
|
||||
HS1, HS3, pp1, pp3, aTT1,
|
||||
HS2, HS4, pp2, pp4, aTT2,
|
||||
MaxStep,locfleche,tolesp,
|
||||
First,Last,Inside,Inside,forward,
|
||||
RecS1,RecS2,Soldep,intf,intl,
|
||||
@@ -2334,8 +2343,10 @@ void ChFi3d_Builder::PerformSetOfKPart(Handle(ChFiDS_Stripe)& Stripe,
|
||||
Or1 = HS1->ChangeSurface().Face().Orientation();
|
||||
Or2 = HS2->ChangeSurface().Face().Orientation();
|
||||
ChFi3d::NextSide(Or1,Or2,RefOr1,RefOr2,RefChoix);
|
||||
It1->Initialize(HS1);
|
||||
It2->Initialize(HS2);
|
||||
const Handle(Adaptor3d_HSurface)& HSon1 = HS1; // to avoid ambiguity
|
||||
const Handle(Adaptor3d_HSurface)& HSon2 = HS2; // to avoid ambiguity
|
||||
It1->Initialize(HSon1);
|
||||
It2->Initialize(HSon2);
|
||||
|
||||
Handle(ChFiDS_SurfData) SD = new ChFiDS_SurfData();
|
||||
ChFiDS_SequenceOfSurfData LSD;
|
||||
|
@@ -771,8 +771,7 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
BRepBlend_SurfRstConstRad func(HS2,HS1,PC1,HGuide);
|
||||
func.Set(HSref1,PCref1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS1);
|
||||
HC->ChangeCurve().Load(PC1);
|
||||
HC->ChangeCurve().Load(PC1, HS1);
|
||||
BRepBlend_SurfCurvConstRadInv finvc(HS2,HC,HGuide);
|
||||
BRepBlend_SurfPointConstRadInv finvp(HS2,HGuide);
|
||||
BRepBlend_ConstRadInv finv(HS2,HSref1,HGuide);
|
||||
@@ -814,8 +813,7 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
else {
|
||||
BRepBlend_SurfRstEvolRad func(HS2,HS1,PC1,HGuide,fsp->Law(HGuide));
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS1);
|
||||
HC->ChangeCurve().Load(PC1);
|
||||
HC->ChangeCurve().Load(PC1, HS1);
|
||||
BRepBlend_SurfCurvEvolRadInv finvc(HS2,HC,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_SurfPointEvolRadInv finvp(HS2,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_EvolRadInv finv(HS2,HSref1,HGuide,fsp->Law(HGuide));
|
||||
@@ -908,8 +906,7 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
BRepBlend_SurfRstConstRad func(HS1,HS2,PC2,HGuide);
|
||||
func.Set(HSref2,PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS2);
|
||||
HC->ChangeCurve().Load(PC2);
|
||||
HC->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvConstRadInv finvc(HS1,HC,HGuide);
|
||||
BRepBlend_SurfPointConstRadInv finvp(HS1,HGuide);
|
||||
BRepBlend_ConstRadInv finv(HS1,HSref2,HGuide);
|
||||
@@ -949,8 +946,7 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
else {
|
||||
BRepBlend_SurfRstEvolRad func(HS1,HS2,PC2,HGuide,fsp->Law(HGuide));
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS2);
|
||||
HC->ChangeCurve().Load(PC2);
|
||||
HC->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvEvolRadInv finvc(HS1,HC,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_SurfPointEvolRadInv finvp(HS1,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_EvolRadInv finv(HS1,HSref2,HGuide,fsp->Law(HGuide));
|
||||
@@ -1053,11 +1049,9 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
BRepBlend_RstRstConstRad func(HS1, PC1, HS2, PC2, HGuide);
|
||||
func.Set(HSref1, PCref1, HSref2, PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC1 = new Adaptor3d_HCurveOnSurface();
|
||||
HC1->ChangeCurve().Load(HS1);
|
||||
HC1->ChangeCurve().Load(PC1);
|
||||
HC1->ChangeCurve().Load(PC1, HS1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC2 = new Adaptor3d_HCurveOnSurface();
|
||||
HC2->ChangeCurve().Load(HS2);
|
||||
HC2->ChangeCurve().Load(PC2);
|
||||
HC2->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvConstRadInv finv1(HSref1, HC2, HGuide);
|
||||
BRepBlend_CurvPointRadInv finvp1(HGuide, HC2);
|
||||
BRepBlend_SurfCurvConstRadInv finv2(HSref2, HC1, HGuide);
|
||||
@@ -1103,11 +1097,9 @@ void ChFi3d_FilBuilder::SimulSurf(Handle(ChFiDS_SurfData)& Data,
|
||||
BRepBlend_RstRstEvolRad func(HS1,PC1, HS2, PC2, HGuide, fsp->Law(HGuide));
|
||||
func.Set(HSref1, PCref1, HSref2, PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC1 = new Adaptor3d_HCurveOnSurface();
|
||||
HC1->ChangeCurve().Load(HS1);
|
||||
HC1->ChangeCurve().Load(PC1);
|
||||
HC1->ChangeCurve().Load(PC1, HS1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC2 = new Adaptor3d_HCurveOnSurface();
|
||||
HC2->ChangeCurve().Load(HS2);
|
||||
HC2->ChangeCurve().Load(PC2);
|
||||
HC2->ChangeCurve().Load(PC2, HS2);
|
||||
|
||||
BRepBlend_SurfCurvEvolRadInv finv1(HSref1, HC2, HGuide, fsp->Law(HGuide));
|
||||
BRepBlend_CurvPointRadInv finvp1(HGuide, HC2);
|
||||
@@ -1369,8 +1361,7 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_SurfRstConstRad func(HS2,HS1,PC1,HGuide);
|
||||
func.Set(HSref1,PCref1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS1);
|
||||
HC->ChangeCurve().Load(PC1);
|
||||
HC->ChangeCurve().Load(PC1, HS1);
|
||||
BRepBlend_SurfCurvConstRadInv finvc(HS2,HC,HGuide);
|
||||
BRepBlend_SurfPointConstRadInv finvp(HS2,HGuide);
|
||||
BRepBlend_ConstRadInv finv(HS2,HSref1,HGuide);
|
||||
@@ -1403,8 +1394,7 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_SurfRstEvolRad func(HS2,HS1,PC1,HGuide,fsp->Law(HGuide));
|
||||
func.Set(HSref1,PCref1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS1);
|
||||
HC->ChangeCurve().Load(PC1);
|
||||
HC->ChangeCurve().Load(PC1, HS1);
|
||||
BRepBlend_SurfCurvEvolRadInv finvc(HS2,HC,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_SurfPointEvolRadInv finvp(HS2,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_EvolRadInv finv(HS2,HSref1,HGuide,fsp->Law(HGuide));
|
||||
@@ -1476,8 +1466,7 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_SurfRstConstRad func(HS1,HS2,PC2,HGuide);
|
||||
func.Set(HSref2,PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS2);
|
||||
HC->ChangeCurve().Load(PC2);
|
||||
HC->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvConstRadInv finvc(HS1,HC,HGuide);
|
||||
BRepBlend_SurfPointConstRadInv finvp(HS1,HGuide);
|
||||
BRepBlend_ConstRadInv finv(HS1,HSref2,HGuide);
|
||||
@@ -1510,8 +1499,7 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_SurfRstEvolRad func(HS1,HS2,PC2,HGuide,fsp->Law(HGuide));
|
||||
func.Set(HSref2,PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC = new Adaptor3d_HCurveOnSurface();
|
||||
HC->ChangeCurve().Load(HS2);
|
||||
HC->ChangeCurve().Load(PC2);
|
||||
HC->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvEvolRadInv finvc(HS1,HC,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_SurfPointEvolRadInv finvp(HS1,HGuide,fsp->Law(HGuide));
|
||||
BRepBlend_EvolRadInv finv(HS1,HSref2,HGuide,fsp->Law(HGuide));
|
||||
@@ -1595,11 +1583,9 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_RstRstConstRad func(HS1, PC1, HS2, PC2, HGuide);
|
||||
func.Set(HSref1, PCref1, HSref2, PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC1 = new Adaptor3d_HCurveOnSurface();
|
||||
HC1->ChangeCurve().Load(HS1);
|
||||
HC1->ChangeCurve().Load(PC1);
|
||||
HC1->ChangeCurve().Load(PC1, HS1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC2 = new Adaptor3d_HCurveOnSurface();
|
||||
HC2->ChangeCurve().Load(HS2);
|
||||
HC2->ChangeCurve().Load(PC2);
|
||||
HC2->ChangeCurve().Load(PC2, HS2);
|
||||
BRepBlend_SurfCurvConstRadInv finv1(HSref1, HC2, HGuide);
|
||||
BRepBlend_CurvPointRadInv finvp1(HGuide, HC2);
|
||||
BRepBlend_SurfCurvConstRadInv finv2(HSref2, HC1, HGuide);
|
||||
@@ -1637,11 +1623,9 @@ void ChFi3d_FilBuilder::PerformSurf(ChFiDS_SequenceOfSurfData& SeqData
|
||||
BRepBlend_RstRstEvolRad func(HS1,PC1, HS2, PC2, HGuide, fsp->Law(HGuide));
|
||||
func.Set(HSref1, PCref1, HSref2, PCref2);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC1 = new Adaptor3d_HCurveOnSurface();
|
||||
HC1->ChangeCurve().Load(HS1);
|
||||
HC1->ChangeCurve().Load(PC1);
|
||||
HC1->ChangeCurve().Load(PC1, HS1);
|
||||
Handle(Adaptor3d_HCurveOnSurface) HC2 = new Adaptor3d_HCurveOnSurface();
|
||||
HC2->ChangeCurve().Load(HS2);
|
||||
HC2->ChangeCurve().Load(PC2);
|
||||
HC2->ChangeCurve().Load(PC2, HS2);
|
||||
|
||||
BRepBlend_SurfCurvEvolRadInv finv1(HSref1, HC2, HGuide, fsp->Law(HGuide));
|
||||
BRepBlend_CurvPointRadInv finvp1(HGuide, HC2);
|
||||
|
Reference in New Issue
Block a user