File indexing completed on 2025-01-18 10:03:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _Extrema_GlobOptFuncCQuadric_HeaderFile
0015 #define _Extrema_GlobOptFuncCQuadric_HeaderFile
0016
0017
0018 #include <Adaptor3d_Surface.hxx>
0019 #include <math_MultipleVarFunction.hxx>
0020 #include <GeomAbs_SurfaceType.hxx>
0021 #include <gp_Pln.hxx>
0022 #include <gp_Cylinder.hxx>
0023 #include <gp_Cone.hxx>
0024 #include <gp_Sphere.hxx>
0025 #include <gp_Torus.hxx>
0026
0027
0028
0029 class Extrema_GlobOptFuncCQuadric : public math_MultipleVarFunction
0030 {
0031 public:
0032
0033
0034 Standard_EXPORT Extrema_GlobOptFuncCQuadric(const Adaptor3d_Curve *C);
0035
0036 Standard_EXPORT Extrema_GlobOptFuncCQuadric(const Adaptor3d_Curve *C,
0037 const Standard_Real theTf,
0038 const Standard_Real theTl);
0039
0040 Standard_EXPORT Extrema_GlobOptFuncCQuadric(const Adaptor3d_Curve *C,
0041 const Adaptor3d_Surface *S);
0042
0043 Standard_EXPORT void LoadQuad(const Adaptor3d_Surface *S,
0044 const Standard_Real theUf,
0045 const Standard_Real theUl,
0046 const Standard_Real theVf,
0047 const Standard_Real theVl);
0048
0049 Standard_EXPORT virtual Standard_Integer NbVariables() const;
0050
0051 Standard_EXPORT virtual Standard_Boolean Value(const math_Vector &theX,
0052 Standard_Real &theF);
0053
0054 Standard_EXPORT void QuadricParameters(const math_Vector& theCT,
0055 math_Vector& theUV) const;
0056
0057 private:
0058
0059 Standard_Boolean checkInputData(const math_Vector &X,
0060 Standard_Real &ct);
0061
0062 void value(Standard_Real ct,
0063 Standard_Real &F);
0064
0065
0066 const Adaptor3d_Curve *myC;
0067 const Adaptor3d_Surface *myS;
0068 GeomAbs_SurfaceType mySType;
0069 gp_Pln myPln;
0070 gp_Cone myCone;
0071 gp_Cylinder myCylinder;
0072 gp_Sphere mySphere;
0073 gp_Torus myTorus;
0074 gp_Pnt myPTrim[4];
0075
0076 Standard_Real myTf;
0077 Standard_Real myTl;
0078 Standard_Real myUf;
0079 Standard_Real myUl;
0080 Standard_Real myVf;
0081 Standard_Real myVl;
0082
0083 };
0084
0085 #endif