File indexing completed on 2026-09-28 09:20:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _GeomGridEval_OtherSurface_HeaderFile
0015 #define _GeomGridEval_OtherSurface_HeaderFile
0016
0017 #include <Adaptor3d_Surface.hxx>
0018 #include <Geom_Surface.hxx>
0019 #include <GeomGridEval.hxx>
0020 #include <NCollection_Array1.hxx>
0021 #include <NCollection_Array2.hxx>
0022 #include <Standard.hxx>
0023 #include <Standard_DefineAlloc.hxx>
0024
0025 #include <variant>
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 class GeomGridEval_OtherSurface
0042 {
0043 public:
0044 DEFINE_STANDARD_ALLOC
0045
0046
0047
0048 GeomGridEval_OtherSurface(const Adaptor3d_Surface* theSurface)
0049 : mySurface(theSurface)
0050 {
0051 }
0052
0053
0054
0055 GeomGridEval_OtherSurface(const occ::handle<Geom_Surface>& theSurface)
0056 : mySurface(theSurface)
0057 {
0058 }
0059
0060
0061 GeomGridEval_OtherSurface(const GeomGridEval_OtherSurface&) = delete;
0062 GeomGridEval_OtherSurface& operator=(const GeomGridEval_OtherSurface&) = delete;
0063 GeomGridEval_OtherSurface(GeomGridEval_OtherSurface&&) = delete;
0064 GeomGridEval_OtherSurface& operator=(GeomGridEval_OtherSurface&&) = delete;
0065
0066
0067
0068
0069
0070 Standard_EXPORT NCollection_Array2<gp_Pnt> EvaluateGrid(
0071 const NCollection_Array1<double>& theUParams,
0072 const NCollection_Array1<double>& theVParams) const;
0073
0074
0075
0076
0077
0078 Standard_EXPORT NCollection_Array2<GeomGridEval::SurfD1> EvaluateGridD1(
0079 const NCollection_Array1<double>& theUParams,
0080 const NCollection_Array1<double>& theVParams) const;
0081
0082
0083
0084
0085
0086 Standard_EXPORT NCollection_Array2<GeomGridEval::SurfD2> EvaluateGridD2(
0087 const NCollection_Array1<double>& theUParams,
0088 const NCollection_Array1<double>& theVParams) const;
0089
0090
0091
0092
0093
0094 Standard_EXPORT NCollection_Array2<GeomGridEval::SurfD3> EvaluateGridD3(
0095 const NCollection_Array1<double>& theUParams,
0096 const NCollection_Array1<double>& theVParams) const;
0097
0098
0099
0100
0101
0102
0103
0104 Standard_EXPORT NCollection_Array2<gp_Vec> EvaluateGridDN(
0105 const NCollection_Array1<double>& theUParams,
0106 const NCollection_Array1<double>& theVParams,
0107 int theNU,
0108 int theNV) const;
0109
0110 private:
0111
0112 void evaluateD0(double theU, double theV, gp_Pnt& thePoint) const;
0113
0114
0115 void evaluateD1(double theU, double theV, gp_Pnt& thePoint, gp_Vec& theD1U, gp_Vec& theD1V) const;
0116
0117
0118 void evaluateD2(double theU,
0119 double theV,
0120 gp_Pnt& thePoint,
0121 gp_Vec& theD1U,
0122 gp_Vec& theD1V,
0123 gp_Vec& theD2U,
0124 gp_Vec& theD2V,
0125 gp_Vec& theD2UV) const;
0126
0127
0128 void evaluateD3(double theU,
0129 double theV,
0130 gp_Pnt& thePoint,
0131 gp_Vec& theD1U,
0132 gp_Vec& theD1V,
0133 gp_Vec& theD2U,
0134 gp_Vec& theD2V,
0135 gp_Vec& theD2UV,
0136 gp_Vec& theD3U,
0137 gp_Vec& theD3V,
0138 gp_Vec& theD3UUV,
0139 gp_Vec& theD3UVV) const;
0140
0141
0142 gp_Vec evaluateDN(double theU, double theV, int theNU, int theNV) const;
0143
0144 private:
0145
0146 std::variant<const Adaptor3d_Surface*, occ::handle<Geom_Surface>> mySurface;
0147 };
0148
0149 #endif