File indexing completed on 2026-09-17 09:19:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _BRepBlend_CSWalking_HeaderFile
0016 #define _BRepBlend_CSWalking_HeaderFile
0017
0018 #include <Adaptor3d_Curve.hxx>
0019 #include <Adaptor3d_Surface.hxx>
0020 #include <BRepBlend_PointOnRst.hxx>
0021 #include <NCollection_Sequence.hxx>
0022 #include <Blend_Point.hxx>
0023 #include <Blend_Status.hxx>
0024 #include <NCollection_Array1.hxx>
0025 #include <NCollection_HArray1.hxx>
0026 #include <math_Vector.hxx>
0027
0028 class BRepBlend_Line;
0029 class Adaptor3d_TopolTool;
0030 class StdFail_NotDone;
0031 class Adaptor3d_HVertex;
0032 class BRepBlend_HCurve2dTool;
0033 class Adaptor3d_HSurfaceTool;
0034 class BRepBlend_HCurveTool;
0035 class BRepBlend_BlendTool;
0036 class BRepBlend_PointOnRst;
0037 class BRepBlend_Extremity;
0038 class Blend_CSFunction;
0039 class IntSurf_Transition;
0040 class gp_Pnt;
0041 class gp_Pnt2d;
0042 class gp_Vec;
0043 class gp_Vec2d;
0044
0045 class BRepBlend_CSWalking
0046 {
0047 public:
0048 DEFINE_STANDARD_ALLOC
0049
0050 Standard_EXPORT BRepBlend_CSWalking(const occ::handle<Adaptor3d_Curve>& Curv,
0051 const occ::handle<Adaptor3d_Surface>& Surf,
0052 const occ::handle<Adaptor3d_TopolTool>& Domain);
0053
0054 Standard_EXPORT void Perform(Blend_CSFunction& F,
0055 const double Pdep,
0056 const double Pmax,
0057 const double MaxStep,
0058 const double Tol3d,
0059 const double TolGuide,
0060 const math_Vector& Soldep,
0061 const double Fleche,
0062 const bool Appro = false);
0063
0064 Standard_EXPORT bool Complete(Blend_CSFunction& F, const double Pmin);
0065
0066 bool IsDone() const;
0067
0068 const occ::handle<BRepBlend_Line>& Line() const;
0069
0070 private:
0071 Standard_EXPORT void InternalPerform(Blend_CSFunction& F, math_Vector& Sol, const double Bound);
0072
0073 Standard_EXPORT void Transition(const occ::handle<Adaptor2d_Curve2d>& A,
0074 const double Param,
0075 IntSurf_Transition& TLine,
0076 IntSurf_Transition& TArc);
0077
0078 Standard_EXPORT void MakeExtremity(BRepBlend_Extremity& Extrem,
0079 const int Index,
0080 const double Param,
0081 const bool IsVtx,
0082 const occ::handle<Adaptor3d_HVertex>& Vtx);
0083
0084 Standard_EXPORT Blend_Status CheckDeflectionOnSurf(const gp_Pnt& Psurf,
0085 const gp_Pnt2d& Ponsurf,
0086 const gp_Vec& Tgsurf,
0087 const gp_Vec2d& Tgonsurf);
0088
0089 Standard_EXPORT Blend_Status CheckDeflectionOnCurv(const gp_Pnt& Pcurv,
0090 const double Poncurv,
0091 const gp_Vec& Tgcurv);
0092
0093 Standard_EXPORT Blend_Status TestArret(Blend_CSFunction& F,
0094 const math_Vector& Sol,
0095 const bool TestDeflection,
0096 const Blend_Status State);
0097
0098 bool done;
0099 occ::handle<BRepBlend_Line> line;
0100 occ::handle<Adaptor3d_Surface> surf;
0101 occ::handle<Adaptor3d_Curve> curv;
0102 occ::handle<Adaptor3d_TopolTool> domain;
0103 double tolpoint3d;
0104 double tolgui;
0105 double pasmax;
0106 double fleche;
0107 double param;
0108 double firstparam;
0109 occ::handle<NCollection_HArray1<double>> firstsol;
0110 Blend_Point previousP;
0111 bool rebrou;
0112 bool iscomplete;
0113 bool comptra;
0114 double sens;
0115 };
0116
0117 #endif