Open CASCADE Technology 7.8.2.dev
ChFi3d_ChBuilder Class Reference

construction tool for 3D chamfers on edges (on a solid). More...

#include <ChFi3d_ChBuilder.hxx>

Inheritance diagram for ChFi3d_ChBuilder:

Public Member Functions

 ChFi3d_ChBuilder (const TopoDS_Shape &S, const Standard_Real Ta=1.0e-2)
 initializes the Builder with the Shape for the computation of chamfers
 
void Add (const TopoDS_Edge &E)
 initializes a contour with the edge <E> as first (the next are found by propagation ). The two distances (parameters of the chamfer) must be set after. if the edge <E> has more than 2 adjacent faces
 
void Add (const Standard_Real Dis, const TopoDS_Edge &E)
 initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis> if the edge <E> has more than 2 adjacent faces
 
void SetDist (const Standard_Real Dis, const Standard_Integer IC, const TopoDS_Face &F)
 set the distance <Dis> of the fillet contour of index <IC> in the DS with <Dis> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>
 
void GetDist (const Standard_Integer IC, Standard_Real &Dis) const
 gives the distances <Dis> of the fillet contour of index <IC> in the DS
 
void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge &E, const TopoDS_Face &F)
 initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis1> and <Dis2> if the edge <E> has more than 2 adjacent faces
 
void SetDists (const Standard_Real Dis1, const Standard_Real Dis2, const Standard_Integer IC, const TopoDS_Face &F)
 set the distances <Dis1> and <Dis2> of the fillet contour of index <IC> in the DS with <Dis1> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>
 
void Dists (const Standard_Integer IC, Standard_Real &Dis1, Standard_Real &Dis2) const
 gives the distances <Dis1> and <Dis2> of the fillet contour of index <IC> in the DS
 
void AddDA (const Standard_Real Dis, const Standard_Real Angle, const TopoDS_Edge &E, const TopoDS_Face &F)
 initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis1> and <Angle> if the edge <E> has more than 2 adjacent faces
 
void SetDistAngle (const Standard_Real Dis, const Standard_Real Angle, const Standard_Integer IC, const TopoDS_Face &F)
 set the distance <Dis> and <Angle> of the fillet contour of index <IC> in the DS with <Dis> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>
 
void GetDistAngle (const Standard_Integer IC, Standard_Real &Dis, Standard_Real &Angle) const
 gives the distances <Dis> and <Angle> of the fillet contour of index <IC> in the DS
 
void SetMode (const ChFiDS_ChamfMode theMode)
 set the mode of shamfer
 
ChFiDS_ChamfMethod IsChamfer (const Standard_Integer IC) const
 renvoi la methode des chanfreins utilisee
 
ChFiDS_ChamfMode Mode () const
 returns the mode of chamfer used
 
void ResetContour (const Standard_Integer IC)
 Reset tous rayons du contour IC.
 
void Simulate (const Standard_Integer IC)
 
Standard_Integer NbSurf (const Standard_Integer IC) const
 
Handle< ChFiDS_SecHArray1 > Sect (const Standard_Integer IC, const Standard_Integer IS) const
 
virtual void SimulSurf (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Curve2d > &PC1, const Handle< BRepAdaptor_Surface > &Sref1, const Handle< BRepAdaptor_Curve2d > &PCref1, Standard_Boolean &Decroch1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const TopAbs_Orientation Or2, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst, const math_Vector &Soldep) override
 
virtual void SimulSurf (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const TopAbs_Orientation Or1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Handle< BRepAdaptor_Curve2d > &PC2, const Handle< BRepAdaptor_Surface > &Sref2, const Handle< BRepAdaptor_Curve2d > &PCref2, Standard_Boolean &Decroch2, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst, const math_Vector &Soldep) override
 
virtual void SimulSurf (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Curve2d > &PC1, const Handle< BRepAdaptor_Surface > &Sref1, const Handle< BRepAdaptor_Curve2d > &PCref1, Standard_Boolean &Decroch1, const TopAbs_Orientation Or1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Handle< BRepAdaptor_Curve2d > &PC2, const Handle< BRepAdaptor_Surface > &Sref2, const Handle< BRepAdaptor_Curve2d > &PCref2, Standard_Boolean &Decroch2, const TopAbs_Orientation Or2, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP1, const Standard_Boolean RecRst1, const Standard_Boolean RecP2, const Standard_Boolean RecRst2, const math_Vector &Soldep) override
 
virtual Standard_Boolean PerformSurf (ChFiDS_SequenceOfSurfData &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecOnS1, const Standard_Boolean RecOnS2, const math_Vector &Soldep, Standard_Integer &Intf, Standard_Integer &Intl) override
 Methode, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer).
 
virtual void PerformSurf (ChFiDS_SequenceOfSurfData &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Curve2d > &PC1, const Handle< BRepAdaptor_Surface > &Sref1, const Handle< BRepAdaptor_Curve2d > &PCref1, Standard_Boolean &Decroch1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const TopAbs_Orientation Or2, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst, const math_Vector &Soldep) override
 Method, implemented in the inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.
 
virtual void PerformSurf (ChFiDS_SequenceOfSurfData &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const TopAbs_Orientation Or1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Handle< BRepAdaptor_Curve2d > &PC2, const Handle< BRepAdaptor_Surface > &Sref2, const Handle< BRepAdaptor_Curve2d > &PCref2, Standard_Boolean &Decroch2, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst, const math_Vector &Soldep) override
 Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.
 
virtual void PerformSurf (ChFiDS_SequenceOfSurfData &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Curve2d > &PC1, const Handle< BRepAdaptor_Surface > &Sref1, const Handle< BRepAdaptor_Curve2d > &PCref1, Standard_Boolean &Decroch1, const TopAbs_Orientation Or1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Handle< BRepAdaptor_Curve2d > &PC2, const Handle< BRepAdaptor_Surface > &Sref2, const Handle< BRepAdaptor_Curve2d > &PCref2, Standard_Boolean &Decroch2, const TopAbs_Orientation Or2, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP1, const Standard_Boolean RecRst1, const Standard_Boolean RecP2, const Standard_Boolean RecRst2, const math_Vector &Soldep) override
 Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/edge.
 
- Public Member Functions inherited from ChFi3d_Builder
virtual ~ChFi3d_Builder ()
 
void SetParams (const Standard_Real Tang, const Standard_Real Tesp, const Standard_Real T2d, const Standard_Real TApp3d, const Standard_Real TolApp2d, const Standard_Real Fleche)
 
void SetContinuity (const GeomAbs_Shape InternalContinuity, const Standard_Real AngularTolerance)
 
void Remove (const TopoDS_Edge &E)
 extracts from the list the contour containing edge E.
 
Standard_Integer Contains (const TopoDS_Edge &E) const
 gives the number of the contour containing E or 0 if E does not belong to any contour.
 
Standard_Integer Contains (const TopoDS_Edge &E, Standard_Integer &IndexInSpine) const
 gives the number of the contour containing E or 0 if E does not belong to any contour. Sets in IndexInSpine the index of E in the contour if it's found
 
Standard_Integer NbElements () const
 gives the number of disjoint contours on which the fillets are calculated
 
Handle< ChFiDS_SpineValue (const Standard_Integer I) const
 gives the n'th set of edges (contour) if I >NbElements()
 
Standard_Real Length (const Standard_Integer IC) const
 returns the length of the contour of index IC.
 
TopoDS_Vertex FirstVertex (const Standard_Integer IC) const
 returns the First vertex V of the contour of index IC.
 
TopoDS_Vertex LastVertex (const Standard_Integer IC) const
 returns the Last vertex V of the contour of index IC.
 
Standard_Real Abscissa (const Standard_Integer IC, const TopoDS_Vertex &V) const
 returns the abscissa of the vertex V on the contour of index IC.
 
Standard_Real RelativeAbscissa (const Standard_Integer IC, const TopoDS_Vertex &V) const
 returns the relative abscissa([0.,1.]) of the vertex V on the contour of index IC.
 
Standard_Boolean ClosedAndTangent (const Standard_Integer IC) const
 returns true if the contour of index IC is closed an tangent.
 
Standard_Boolean Closed (const Standard_Integer IC) const
 returns true if the contour of index IC is closed
 
void Compute ()
 general calculation of geometry on all edges, topologic reconstruction.
 
Standard_Boolean IsDone () const
 returns True if the computation is success
 
TopoDS_Shape Shape () const
 if (Isdone()) makes the result. if (!Isdone())
 
const TopTools_ListOfShapeGenerated (const TopoDS_Shape &EouV)
 Advanced function for the history.
 
Standard_Integer NbFaultyContours () const
 Returns the number of contours on which the calculation has failed.
 
Standard_Integer FaultyContour (const Standard_Integer I) const
 Returns the number of I'th contour on which the calculation has failed.
 
Standard_Integer NbComputedSurfaces (const Standard_Integer IC) const
 Returns the number of surfaces calculated on the contour IC.
 
Handle< Geom_SurfaceComputedSurface (const Standard_Integer IC, const Standard_Integer IS) const
 Returns the IS'th surface calculated on the contour IC.
 
Standard_Integer NbFaultyVertices () const
 Returns the number of vertices on which the calculation has failed.
 
TopoDS_Vertex FaultyVertex (const Standard_Integer IV) const
 Returns the IV'th vertex on which the calculation has failed.
 
Standard_Boolean HasResult () const
 returns True if a partial result has been calculated
 
TopoDS_Shape BadShape () const
 if (HasResult()) returns partial result if (!HasResult())
 
ChFiDS_ErrorStatus StripeStatus (const Standard_Integer IC) const
 for the stripe IC ,indication on the cause of failure WalkingFailure,TwistedSurface,Error, Ok
 
void Reset ()
 Reset all results of compute and returns the algorithm in the state of the last acquisition to enable modification of contours or areas.
 
Handle< TopOpeBRepBuild_HBuilderBuilder () const
 Returns the Builder of topologic operations.
 
Standard_Boolean SplitKPart (const Handle< ChFiDS_SurfData > &Data, ChFiDS_SequenceOfSurfData &SetData, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Iedge, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, Standard_Boolean &Intf, Standard_Boolean &Intl)
 Method, implemented in the inheritants, calculates the elements of construction of the surface (fillet or chamfer).
 
Standard_Boolean PerformTwoCornerbyInter (const Standard_Integer Index)
 

Protected Member Functions

void SimulKPart (const Handle< ChFiDS_SurfData > &SD) const override
 
Standard_Boolean SimulSurf (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Standard_Integer Choix, const Handle< BRepAdaptor_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecOnS1, const Standard_Boolean RecOnS2, const math_Vector &Soldep, Standard_Integer &Intf, Standard_Integer &Intl) override
 
Standard_Boolean PerformFirstSection (const Handle< ChFiDS_Spine > &S, const Handle< ChFiDS_ElSpine > &HGuide, const Standard_Integer Choix, Handle< BRepAdaptor_Surface > &S1, Handle< BRepAdaptor_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_TopolTool > &I2, const Standard_Real Par, math_Vector &SolDep, TopAbs_State &Pos1, TopAbs_State &Pos2) const override
 
void PerformTwoCorner (const Standard_Integer Index) override
 computes the intersection of two chamfers on the vertex of index <Index> in myVDataMap.
 
void PerformThreeCorner (const Standard_Integer Index) override
 computes the intersection of three chamfers on the vertex of index <Index> in myVDataMap.
 
void ExtentOneCorner (const TopoDS_Vertex &V, const Handle< ChFiDS_Stripe > &S) override
 extends the spine of the Stripe at the extremity of the vertex <V>.
 
void ExtentTwoCorner (const TopoDS_Vertex &V, const ChFiDS_ListOfStripe &LS) override
 extends the spine of the 2 stripes of <LS> at the extremity of the vertex <V>
 
void ExtentThreeCorner (const TopoDS_Vertex &V, const ChFiDS_ListOfStripe &LS) override
 extends the spine of the 2 stripes of <LS> at the extremity of the vertex <V>
 
void SetRegul () override
 set the regularities
 
- Protected Member Functions inherited from ChFi3d_Builder
 ChFi3d_Builder (const TopoDS_Shape &S, const Standard_Real Ta)
 
Standard_Boolean SimulData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_ElSpine > &AdditionalGuide, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, Blend_Function &Func, Blend_FuncInv &FInv, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const math_Vector &Soldep, const Standard_Integer NbSecMin, const Standard_Boolean RecOnS1=Standard_False, const Standard_Boolean RecOnS2=Standard_False)
 
Standard_Boolean SimulData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &HGuide, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor2d_Curve2d > &PC2, const Handle< Adaptor3d_TopolTool > &I2, Standard_Boolean &Decroch, Blend_SurfRstFunction &Func, Blend_FuncInv &FInv, Blend_SurfPointFuncInv &FInvP, Blend_SurfCurvFuncInv &FInvC, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const math_Vector &Soldep, const Standard_Integer NbSecMin, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst)
 
Standard_Boolean SimulData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &HGuide, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor2d_Curve2d > &PC1, const Handle< Adaptor3d_TopolTool > &I1, Standard_Boolean &Decroch1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor2d_Curve2d > &PC2, const Handle< Adaptor3d_TopolTool > &I2, Standard_Boolean &Decroch2, Blend_RstRstFunction &Func, Blend_SurfCurvFuncInv &FInv1, Blend_CurvPointFuncInv &FInvP1, Blend_SurfCurvFuncInv &FInv2, Blend_CurvPointFuncInv &FInvP2, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const math_Vector &Soldep, const Standard_Integer NbSecMin, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP1, const Standard_Boolean RecRst1, const Standard_Boolean RecP2, const Standard_Boolean RecRst2)
 
Standard_Boolean PerformElement (const Handle< ChFiDS_Spine > &CElement, const Standard_Real Offset, const TopoDS_Face &theFirstFace)
 
void PerformExtremity (const Handle< ChFiDS_Spine > &CElement)
 
void PerformSetOfSurf (Handle< ChFiDS_Stripe > &S, const Standard_Boolean Simul=Standard_False)
 
void PerformSetOfKPart (Handle< ChFiDS_Stripe > &S, const Standard_Boolean Simul=Standard_False)
 
void PerformSetOfKGen (Handle< ChFiDS_Stripe > &S, const Standard_Boolean Simul=Standard_False)
 
void Trunc (const Handle< ChFiDS_SurfData > &SD, const Handle< ChFiDS_Spine > &Spine, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_Surface > &S2, const Standard_Integer iedge, const Standard_Boolean isfirst, const Standard_Integer cntlFiOnS)
 
void CallPerformSurf (Handle< ChFiDS_Stripe > &Stripe, const Standard_Boolean Simul, ChFiDS_SequenceOfSurfData &SeqSD, Handle< ChFiDS_SurfData > &SD, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, const Handle< BRepAdaptor_Surface > &HS1, const Handle< BRepAdaptor_Surface > &HS3, const gp_Pnt2d &P1, const gp_Pnt2d &P3, const Handle< Adaptor3d_TopolTool > &I1, const Handle< BRepAdaptor_Surface > &HS2, const Handle< BRepAdaptor_Surface > &HS4, const gp_Pnt2d &P2, const gp_Pnt2d &P4, const Handle< Adaptor3d_TopolTool > &I2, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecOnS1, const Standard_Boolean RecOnS2, math_Vector &Soldep, Standard_Integer &Intf, Standard_Integer &Intl, Handle< BRepAdaptor_Surface > &Surf1, Handle< BRepAdaptor_Surface > &Surf2)
 
void PerformMoreThreeCorner (const Standard_Integer Index, const Standard_Integer nbcourb)
 
Standard_Boolean SearchFace (const Handle< ChFiDS_Spine > &Sp, const ChFiDS_CommonPoint &Pc, const TopoDS_Face &FRef, TopoDS_Face &FVoi) const
 
Standard_Boolean StripeOrientations (const Handle< ChFiDS_Spine > &Sp, TopAbs_Orientation &Or1, TopAbs_Orientation &Or2, Standard_Integer &ChoixConge) const
 
Standard_Boolean ComputeData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &Guide, const Handle< ChFiDS_Spine > &Spine, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor3d_TopolTool > &I2, Blend_Function &Func, Blend_FuncInv &FInv, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const math_Vector &Soldep, Standard_Integer &Intf, Standard_Integer &Intl, Standard_Boolean &Gd1, Standard_Boolean &Gd2, Standard_Boolean &Gf1, Standard_Boolean &Gf2, const Standard_Boolean RecOnS1=Standard_False, const Standard_Boolean RecOnS2=Standard_False)
 Calculates a Line of contact face/face.
 
Standard_Boolean ComputeData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &HGuide, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_TopolTool > &I1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor2d_Curve2d > &PC2, const Handle< Adaptor3d_TopolTool > &I2, Standard_Boolean &Decroch, Blend_SurfRstFunction &Func, Blend_FuncInv &FInv, Blend_SurfPointFuncInv &FInvP, Blend_SurfCurvFuncInv &FInvC, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const math_Vector &Soldep, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP, const Standard_Boolean RecS, const Standard_Boolean RecRst)
 Calculates a Line of contact edge/face.
 
Standard_Boolean ComputeData (Handle< ChFiDS_SurfData > &Data, const Handle< ChFiDS_ElSpine > &HGuide, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor2d_Curve2d > &PC1, const Handle< Adaptor3d_TopolTool > &I1, Standard_Boolean &Decroch1, const Handle< Adaptor3d_Surface > &S2, const Handle< Adaptor2d_Curve2d > &PC2, const Handle< Adaptor3d_TopolTool > &I2, Standard_Boolean &Decroch2, Blend_RstRstFunction &Func, Blend_SurfCurvFuncInv &FInv1, Blend_CurvPointFuncInv &FInvP1, Blend_SurfCurvFuncInv &FInv2, Blend_CurvPointFuncInv &FInvP2, const Standard_Real PFirst, const Standard_Real MaxStep, const Standard_Real Fleche, const Standard_Real TolGuide, Standard_Real &First, Standard_Real &Last, const math_Vector &Soldep, const Standard_Boolean Inside, const Standard_Boolean Appro, const Standard_Boolean Forward, const Standard_Boolean RecP1, const Standard_Boolean RecRst1, const Standard_Boolean RecP2, const Standard_Boolean RecRst2)
 Calculates a Line of contact edge/edge.
 
Standard_Boolean CompleteData (Handle< ChFiDS_SurfData > &Data, Blend_Function &Func, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_Surface > &S2, const TopAbs_Orientation Or1, const Standard_Boolean Gd1, const Standard_Boolean Gd2, const Standard_Boolean Gf1, const Standard_Boolean Gf2, const Standard_Boolean Reversed=Standard_False)
 
Standard_Boolean CompleteData (Handle< ChFiDS_SurfData > &Data, Blend_SurfRstFunction &Func, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_Surface > &S2, const TopAbs_Orientation Or, const Standard_Boolean Reversed)
 
Standard_Boolean CompleteData (Handle< ChFiDS_SurfData > &Data, Blend_RstRstFunction &Func, Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_Surface > &S2, const TopAbs_Orientation Or)
 
Standard_Boolean StoreData (Handle< ChFiDS_SurfData > &Data, const AppBlend_Approx &Approx, const Handle< BRepBlend_Line > &Lin, const Handle< Adaptor3d_Surface > &S1, const Handle< Adaptor3d_Surface > &S2, const TopAbs_Orientation Or1, const Standard_Boolean Gd1, const Standard_Boolean Gd2, const Standard_Boolean Gf1, const Standard_Boolean Gf2, const Standard_Boolean Reversed=Standard_False)
 
Standard_Boolean CompleteData (Handle< ChFiDS_SurfData > &Data, const Handle< Geom_Surface > &Surfcoin, const Handle< Adaptor3d_Surface > &S1, const Handle< Geom2d_Curve > &PC1, const Handle< Adaptor3d_Surface > &S2, const Handle< Geom2d_Curve > &PC2, const TopAbs_Orientation Or, const Standard_Boolean On1, const Standard_Boolean Gd1, const Standard_Boolean Gd2, const Standard_Boolean Gf1, const Standard_Boolean Gf2)
 

Additional Inherited Members

- Protected Attributes inherited from ChFi3d_Builder
Standard_Real tolappangle
 
Standard_Real tolesp
 
Standard_Real tol2d
 
Standard_Real tolapp3d
 
Standard_Real tolapp2d
 
Standard_Real fleche
 
GeomAbs_Shape myConti
 
ChFiDS_Map myEFMap
 
ChFiDS_Map myESoMap
 
ChFiDS_Map myEShMap
 
ChFiDS_Map myVFMap
 
ChFiDS_Map myVEMap
 
Handle< TopOpeBRepDS_HDataStructuremyDS
 
Handle< TopOpeBRepBuild_HBuildermyCoup
 
ChFiDS_ListOfStripe myListStripe
 
ChFiDS_StripeMap myVDataMap
 
ChFiDS_Regularities myRegul
 
ChFiDS_ListOfStripe badstripes
 
TopTools_ListOfShape badvertices
 
TopTools_DataMapOfShapeListOfInteger myEVIMap
 
TopTools_DataMapOfShapeShape myEdgeFirstFace
 
Standard_Boolean done
 
Standard_Boolean hasresult
 

Detailed Description

construction tool for 3D chamfers on edges (on a solid).

Constructor & Destructor Documentation

◆ ChFi3d_ChBuilder()

ChFi3d_ChBuilder::ChFi3d_ChBuilder ( const TopoDS_Shape & S,
const Standard_Real Ta = 1.0e-2 )

initializes the Builder with the Shape for the computation of chamfers

Member Function Documentation

◆ Add() [1/3]

void ChFi3d_ChBuilder::Add ( const Standard_Real Dis,
const TopoDS_Edge & E )

initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis> if the edge <E> has more than 2 adjacent faces

◆ Add() [2/3]

void ChFi3d_ChBuilder::Add ( const Standard_Real Dis1,
const Standard_Real Dis2,
const TopoDS_Edge & E,
const TopoDS_Face & F )

initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis1> and <Dis2> if the edge <E> has more than 2 adjacent faces

◆ Add() [3/3]

void ChFi3d_ChBuilder::Add ( const TopoDS_Edge & E)

initializes a contour with the edge <E> as first (the next are found by propagation ). The two distances (parameters of the chamfer) must be set after. if the edge <E> has more than 2 adjacent faces

◆ AddDA()

void ChFi3d_ChBuilder::AddDA ( const Standard_Real Dis,
const Standard_Real Angle,
const TopoDS_Edge & E,
const TopoDS_Face & F )

initializes a new contour with the edge <E> as first (the next are found by propagation ), and the distance <Dis1> and <Angle> if the edge <E> has more than 2 adjacent faces

◆ Dists()

void ChFi3d_ChBuilder::Dists ( const Standard_Integer IC,
Standard_Real & Dis1,
Standard_Real & Dis2 ) const

gives the distances <Dis1> and <Dis2> of the fillet contour of index <IC> in the DS

◆ ExtentOneCorner()

void ChFi3d_ChBuilder::ExtentOneCorner ( const TopoDS_Vertex & V,
const Handle< ChFiDS_Stripe > & S )
overrideprotectedvirtual

extends the spine of the Stripe at the extremity of the vertex <V>.

Implements ChFi3d_Builder.

◆ ExtentThreeCorner()

void ChFi3d_ChBuilder::ExtentThreeCorner ( const TopoDS_Vertex & V,
const ChFiDS_ListOfStripe & LS )
overrideprotectedvirtual

extends the spine of the 2 stripes of <LS> at the extremity of the vertex <V>

Implements ChFi3d_Builder.

◆ ExtentTwoCorner()

void ChFi3d_ChBuilder::ExtentTwoCorner ( const TopoDS_Vertex & V,
const ChFiDS_ListOfStripe & LS )
overrideprotectedvirtual

extends the spine of the 2 stripes of <LS> at the extremity of the vertex <V>

Implements ChFi3d_Builder.

◆ GetDist()

void ChFi3d_ChBuilder::GetDist ( const Standard_Integer IC,
Standard_Real & Dis ) const

gives the distances <Dis> of the fillet contour of index <IC> in the DS

◆ GetDistAngle()

void ChFi3d_ChBuilder::GetDistAngle ( const Standard_Integer IC,
Standard_Real & Dis,
Standard_Real & Angle ) const

gives the distances <Dis> and <Angle> of the fillet contour of index <IC> in the DS

◆ IsChamfer()

ChFiDS_ChamfMethod ChFi3d_ChBuilder::IsChamfer ( const Standard_Integer IC) const

renvoi la methode des chanfreins utilisee

◆ Mode()

ChFiDS_ChamfMode ChFi3d_ChBuilder::Mode ( ) const

returns the mode of chamfer used

◆ NbSurf()

Standard_Integer ChFi3d_ChBuilder::NbSurf ( const Standard_Integer IC) const

◆ PerformFirstSection()

Standard_Boolean ChFi3d_ChBuilder::PerformFirstSection ( const Handle< ChFiDS_Spine > & S,
const Handle< ChFiDS_ElSpine > & HGuide,
const Standard_Integer Choix,
Handle< BRepAdaptor_Surface > & S1,
Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< Adaptor3d_TopolTool > & I2,
const Standard_Real Par,
math_Vector & SolDep,
TopAbs_State & Pos1,
TopAbs_State & Pos2 ) const
overrideprotectedvirtual

Implements ChFi3d_Builder.

◆ PerformSurf() [1/4]

virtual void ChFi3d_ChBuilder::PerformSurf ( ChFiDS_SequenceOfSurfData & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Curve2d > & PC1,
const Handle< BRepAdaptor_Surface > & Sref1,
const Handle< BRepAdaptor_Curve2d > & PCref1,
Standard_Boolean & Decroch1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const TopAbs_Orientation Or2,
const Standard_Real MaxStep,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP,
const Standard_Boolean RecS,
const Standard_Boolean RecRst,
const math_Vector & Soldep )
overridevirtual

Method, implemented in the inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.

Reimplemented from ChFi3d_Builder.

◆ PerformSurf() [2/4]

virtual void ChFi3d_ChBuilder::PerformSurf ( ChFiDS_SequenceOfSurfData & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Curve2d > & PC1,
const Handle< BRepAdaptor_Surface > & Sref1,
const Handle< BRepAdaptor_Curve2d > & PCref1,
Standard_Boolean & Decroch1,
const TopAbs_Orientation Or1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Handle< BRepAdaptor_Curve2d > & PC2,
const Handle< BRepAdaptor_Surface > & Sref2,
const Handle< BRepAdaptor_Curve2d > & PCref2,
Standard_Boolean & Decroch2,
const TopAbs_Orientation Or2,
const Standard_Real MaxStep,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP1,
const Standard_Boolean RecRst1,
const Standard_Boolean RecP2,
const Standard_Boolean RecRst2,
const math_Vector & Soldep )
overridevirtual

Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/edge.

Reimplemented from ChFi3d_Builder.

◆ PerformSurf() [3/4]

virtual Standard_Boolean ChFi3d_ChBuilder::PerformSurf ( ChFiDS_SequenceOfSurfData & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Standard_Real MaxStep,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecOnS1,
const Standard_Boolean RecOnS2,
const math_Vector & Soldep,
Standard_Integer & Intf,
Standard_Integer & Intl )
overridevirtual

Methode, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer).

Implements ChFi3d_Builder.

◆ PerformSurf() [4/4]

virtual void ChFi3d_ChBuilder::PerformSurf ( ChFiDS_SequenceOfSurfData & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const TopAbs_Orientation Or1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Handle< BRepAdaptor_Curve2d > & PC2,
const Handle< BRepAdaptor_Surface > & Sref2,
const Handle< BRepAdaptor_Curve2d > & PCref2,
Standard_Boolean & Decroch2,
const Standard_Real MaxStep,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP,
const Standard_Boolean RecS,
const Standard_Boolean RecRst,
const math_Vector & Soldep )
overridevirtual

Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.

Reimplemented from ChFi3d_Builder.

◆ PerformThreeCorner()

void ChFi3d_ChBuilder::PerformThreeCorner ( const Standard_Integer Index)
overrideprotectedvirtual

computes the intersection of three chamfers on the vertex of index <Index> in myVDataMap.

Implements ChFi3d_Builder.

◆ PerformTwoCorner()

void ChFi3d_ChBuilder::PerformTwoCorner ( const Standard_Integer Index)
overrideprotectedvirtual

computes the intersection of two chamfers on the vertex of index <Index> in myVDataMap.

Implements ChFi3d_Builder.

◆ ResetContour()

void ChFi3d_ChBuilder::ResetContour ( const Standard_Integer IC)

Reset tous rayons du contour IC.

◆ Sect()

Handle< ChFiDS_SecHArray1 > ChFi3d_ChBuilder::Sect ( const Standard_Integer IC,
const Standard_Integer IS ) const

◆ SetDist()

void ChFi3d_ChBuilder::SetDist ( const Standard_Real Dis,
const Standard_Integer IC,
const TopoDS_Face & F )

set the distance <Dis> of the fillet contour of index <IC> in the DS with <Dis> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>

◆ SetDistAngle()

void ChFi3d_ChBuilder::SetDistAngle ( const Standard_Real Dis,
const Standard_Real Angle,
const Standard_Integer IC,
const TopoDS_Face & F )

set the distance <Dis> and <Angle> of the fillet contour of index <IC> in the DS with <Dis> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>

◆ SetDists()

void ChFi3d_ChBuilder::SetDists ( const Standard_Real Dis1,
const Standard_Real Dis2,
const Standard_Integer IC,
const TopoDS_Face & F )

set the distances <Dis1> and <Dis2> of the fillet contour of index <IC> in the DS with <Dis1> on <F>. if the face <F> is not one of common faces of an edge of the contour <IC>

◆ SetMode()

void ChFi3d_ChBuilder::SetMode ( const ChFiDS_ChamfMode theMode)

set the mode of shamfer

◆ SetRegul()

void ChFi3d_ChBuilder::SetRegul ( )
overrideprotectedvirtual

set the regularities

Implements ChFi3d_Builder.

◆ Simulate()

void ChFi3d_ChBuilder::Simulate ( const Standard_Integer IC)

◆ SimulKPart()

void ChFi3d_ChBuilder::SimulKPart ( const Handle< ChFiDS_SurfData > & SD) const
overrideprotectedvirtual

Implements ChFi3d_Builder.

◆ SimulSurf() [1/4]

virtual void ChFi3d_ChBuilder::SimulSurf ( Handle< ChFiDS_SurfData > & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Curve2d > & PC1,
const Handle< BRepAdaptor_Surface > & Sref1,
const Handle< BRepAdaptor_Curve2d > & PCref1,
Standard_Boolean & Decroch1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const TopAbs_Orientation Or2,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP,
const Standard_Boolean RecS,
const Standard_Boolean RecRst,
const math_Vector & Soldep )
overridevirtual

Reimplemented from ChFi3d_Builder.

◆ SimulSurf() [2/4]

virtual void ChFi3d_ChBuilder::SimulSurf ( Handle< ChFiDS_SurfData > & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Curve2d > & PC1,
const Handle< BRepAdaptor_Surface > & Sref1,
const Handle< BRepAdaptor_Curve2d > & PCref1,
Standard_Boolean & Decroch1,
const TopAbs_Orientation Or1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Handle< BRepAdaptor_Curve2d > & PC2,
const Handle< BRepAdaptor_Surface > & Sref2,
const Handle< BRepAdaptor_Curve2d > & PCref2,
Standard_Boolean & Decroch2,
const TopAbs_Orientation Or2,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP1,
const Standard_Boolean RecRst1,
const Standard_Boolean RecP2,
const Standard_Boolean RecRst2,
const math_Vector & Soldep )
overridevirtual

Reimplemented from ChFi3d_Builder.

◆ SimulSurf() [3/4]

Standard_Boolean ChFi3d_ChBuilder::SimulSurf ( Handle< ChFiDS_SurfData > & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecOnS1,
const Standard_Boolean RecOnS2,
const math_Vector & Soldep,
Standard_Integer & Intf,
Standard_Integer & Intl )
overrideprotectedvirtual

Implements ChFi3d_Builder.

◆ SimulSurf() [4/4]

virtual void ChFi3d_ChBuilder::SimulSurf ( Handle< ChFiDS_SurfData > & Data,
const Handle< ChFiDS_ElSpine > & Guide,
const Handle< ChFiDS_Spine > & Spine,
const Standard_Integer Choix,
const Handle< BRepAdaptor_Surface > & S1,
const Handle< Adaptor3d_TopolTool > & I1,
const TopAbs_Orientation Or1,
const Handle< BRepAdaptor_Surface > & S2,
const Handle< Adaptor3d_TopolTool > & I2,
const Handle< BRepAdaptor_Curve2d > & PC2,
const Handle< BRepAdaptor_Surface > & Sref2,
const Handle< BRepAdaptor_Curve2d > & PCref2,
Standard_Boolean & Decroch2,
const Standard_Real Fleche,
const Standard_Real TolGuide,
Standard_Real & First,
Standard_Real & Last,
const Standard_Boolean Inside,
const Standard_Boolean Appro,
const Standard_Boolean Forward,
const Standard_Boolean RecP,
const Standard_Boolean RecS,
const Standard_Boolean RecRst,
const math_Vector & Soldep )
overridevirtual

Reimplemented from ChFi3d_Builder.


The documentation for this class was generated from the following file: