File indexing completed on 2026-09-17 09:20:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_HeaderFile
0018 #define _GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_HeaderFile
0019
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <gp_Pnt.hxx>
0022 #include <gp_Vec.hxx>
0023 #include <gp_Dir2d.hxx>
0024 #include <math_FunctionSetWithDerivatives.hxx>
0025 #include <math_Vector.hxx>
0026
0027 class Adaptor3d_HSurfaceTool;
0028 class IntSurf_Quadric;
0029 class IntSurf_QuadricTool;
0030 class math_Matrix;
0031
0032 class GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox : public math_FunctionSetWithDerivatives
0033 {
0034 public:
0035 DEFINE_STANDARD_ALLOC
0036
0037 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox();
0038
0039 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(
0040 const occ::handle<Adaptor3d_Surface>& PS,
0041 const IntSurf_Quadric& IS);
0042
0043 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(const IntSurf_Quadric& IS);
0044
0045 void Set(const occ::handle<Adaptor3d_Surface>& PS);
0046
0047 void SetImplicitSurface(const IntSurf_Quadric& IS);
0048
0049 void Set(const double Tolerance);
0050
0051 Standard_EXPORT int NbVariables() const override;
0052
0053 Standard_EXPORT int NbEquations() const override;
0054
0055 Standard_EXPORT bool Value(const math_Vector& X, math_Vector& F) override;
0056
0057 Standard_EXPORT bool Derivatives(const math_Vector& X, math_Matrix& D) override;
0058
0059 Standard_EXPORT bool Values(const math_Vector& X, math_Vector& F, math_Matrix& D) override;
0060
0061 double Root() const;
0062
0063
0064
0065 double Tolerance() const;
0066
0067 const gp_Pnt& Point() const;
0068
0069 Standard_EXPORT bool IsTangent();
0070
0071 const gp_Vec& Direction3d();
0072
0073 const gp_Dir2d& Direction2d();
0074
0075 const occ::handle<Adaptor3d_Surface>& PSurface() const;
0076
0077 const IntSurf_Quadric& ISurface() const;
0078
0079 private:
0080 void* surf;
0081 void* func;
0082 double u;
0083 double v;
0084 double tol;
0085 gp_Pnt pntsol;
0086 double valf;
0087 bool computed;
0088 bool tangent;
0089 double tgdu;
0090 double tgdv;
0091 gp_Vec gradient;
0092 bool derived;
0093 gp_Vec d1u;
0094 gp_Vec d1v;
0095 gp_Vec d3d;
0096 gp_Dir2d d2d;
0097 };
0098
0099 #define ThePSurface occ::handle<Adaptor3d_Surface>
0100 #define ThePSurface_hxx <Adaptor3d_Surface.hxx>
0101 #define ThePSurfaceTool Adaptor3d_HSurfaceTool
0102 #define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
0103 #define TheISurface IntSurf_Quadric
0104 #define TheISurface_hxx <IntSurf_Quadric.hxx>
0105 #define TheISurfaceTool IntSurf_QuadricTool
0106 #define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
0107 #define IntImp_ZerImpFunc GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
0108 #define IntImp_ZerImpFunc_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
0109
0110 #include <IntImp_ZerImpFunc.lxx>
0111
0112 #undef ThePSurface
0113 #undef ThePSurface_hxx
0114 #undef ThePSurfaceTool
0115 #undef ThePSurfaceTool_hxx
0116 #undef TheISurface
0117 #undef TheISurface_hxx
0118 #undef TheISurfaceTool
0119 #undef TheISurfaceTool_hxx
0120 #undef IntImp_ZerImpFunc
0121 #undef IntImp_ZerImpFunc_hxx
0122
0123 #endif