File indexing completed on 2025-01-18 10:03:41
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
0036 DEFINE_STANDARD_ALLOC
0037
0038
0039 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox();
0040
0041 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(const Handle(Adaptor3d_Surface)& PS, const IntSurf_Quadric& IS);
0042
0043 Standard_EXPORT GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox(const IntSurf_Quadric& IS);
0044
0045 void Set (const Handle(Adaptor3d_Surface)& PS);
0046
0047 void SetImplicitSurface (const IntSurf_Quadric& IS);
0048
0049 void Set (const Standard_Real Tolerance);
0050
0051 Standard_EXPORT Standard_Integer NbVariables() const;
0052
0053 Standard_EXPORT Standard_Integer NbEquations() const;
0054
0055 Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
0056
0057 Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
0058
0059 Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
0060
0061 Standard_Real Root() const;
0062
0063
0064
0065 Standard_Real Tolerance() const;
0066
0067 const gp_Pnt& Point() const;
0068
0069 Standard_EXPORT Standard_Boolean IsTangent();
0070
0071 const gp_Vec& Direction3d();
0072
0073 const gp_Dir2d& Direction2d();
0074
0075 const Handle(Adaptor3d_Surface)& PSurface() const;
0076
0077 const IntSurf_Quadric& ISurface() const;
0078
0079
0080
0081
0082 protected:
0083
0084
0085
0086
0087
0088 private:
0089
0090
0091
0092 Standard_Address surf;
0093 Standard_Address func;
0094 Standard_Real u;
0095 Standard_Real v;
0096 Standard_Real tol;
0097 gp_Pnt pntsol;
0098 Standard_Real valf;
0099 Standard_Boolean computed;
0100 Standard_Boolean tangent;
0101 Standard_Real tgdu;
0102 Standard_Real tgdv;
0103 gp_Vec gradient;
0104 Standard_Boolean derived;
0105 gp_Vec d1u;
0106 gp_Vec d1v;
0107 gp_Vec d3d;
0108 gp_Dir2d d2d;
0109
0110
0111 };
0112
0113 #define ThePSurface Handle(Adaptor3d_Surface)
0114 #define ThePSurface_hxx <Adaptor3d_Surface.hxx>
0115 #define ThePSurfaceTool Adaptor3d_HSurfaceTool
0116 #define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
0117 #define TheISurface IntSurf_Quadric
0118 #define TheISurface_hxx <IntSurf_Quadric.hxx>
0119 #define TheISurfaceTool IntSurf_QuadricTool
0120 #define TheISurfaceTool_hxx <IntSurf_QuadricTool.hxx>
0121 #define IntImp_ZerImpFunc GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox
0122 #define IntImp_ZerImpFunc_hxx <GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx>
0123
0124 #include <IntImp_ZerImpFunc.lxx>
0125
0126 #undef ThePSurface
0127 #undef ThePSurface_hxx
0128 #undef ThePSurfaceTool
0129 #undef ThePSurfaceTool_hxx
0130 #undef TheISurface
0131 #undef TheISurface_hxx
0132 #undef TheISurfaceTool
0133 #undef TheISurfaceTool_hxx
0134 #undef IntImp_ZerImpFunc
0135 #undef IntImp_ZerImpFunc_hxx
0136
0137
0138
0139
0140 #endif