File indexing completed on 2026-06-06 08:35:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _AdvApp2Var_ApproxAFunc2Var_HeaderFile
0018 #define _AdvApp2Var_ApproxAFunc2Var_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Standard_Integer.hxx>
0025 #include <TColStd_HArray1OfReal.hxx>
0026 #include <Standard_Real.hxx>
0027 #include <AdvApp2Var_Context.hxx>
0028 #include <AdvApp2Var_Network.hxx>
0029 #include <AdvApp2Var_Framework.hxx>
0030 #include <Standard_Boolean.hxx>
0031 #include <TColGeom_HArray1OfSurface.hxx>
0032 #include <AdvApp2Var_EvaluatorFunc2Var.hxx>
0033 #include <Standard_OStream.hxx>
0034 class AdvApprox_Cutting;
0035 class AdvApp2Var_Criterion;
0036 class Geom_BSplineSurface;
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084 class AdvApp2Var_ApproxAFunc2Var
0085 {
0086 public:
0087 DEFINE_STANDARD_ALLOC
0088
0089 Standard_EXPORT AdvApp2Var_ApproxAFunc2Var(const Standard_Integer Num1DSS,
0090 const Standard_Integer Num2DSS,
0091 const Standard_Integer Num3DSS,
0092 const Handle(TColStd_HArray1OfReal)& OneDTol,
0093 const Handle(TColStd_HArray1OfReal)& TwoDTol,
0094 const Handle(TColStd_HArray1OfReal)& ThreeDTol,
0095 const Handle(TColStd_HArray2OfReal)& OneDTolFr,
0096 const Handle(TColStd_HArray2OfReal)& TwoDTolFr,
0097 const Handle(TColStd_HArray2OfReal)& ThreeDTolFr,
0098 const Standard_Real FirstInU,
0099 const Standard_Real LastInU,
0100 const Standard_Real FirstInV,
0101 const Standard_Real LastInV,
0102 const GeomAbs_IsoType FavorIso,
0103 const GeomAbs_Shape ContInU,
0104 const GeomAbs_Shape ContInV,
0105 const Standard_Integer PrecisCode,
0106 const Standard_Integer MaxDegInU,
0107 const Standard_Integer MaxDegInV,
0108 const Standard_Integer MaxPatch,
0109 const AdvApp2Var_EvaluatorFunc2Var& Func,
0110 AdvApprox_Cutting& UChoice,
0111 AdvApprox_Cutting& VChoice);
0112
0113 Standard_EXPORT AdvApp2Var_ApproxAFunc2Var(const Standard_Integer Num1DSS,
0114 const Standard_Integer Num2DSS,
0115 const Standard_Integer Num3DSS,
0116 const Handle(TColStd_HArray1OfReal)& OneDTol,
0117 const Handle(TColStd_HArray1OfReal)& TwoDTol,
0118 const Handle(TColStd_HArray1OfReal)& ThreeDTol,
0119 const Handle(TColStd_HArray2OfReal)& OneDTolFr,
0120 const Handle(TColStd_HArray2OfReal)& TwoDTolFr,
0121 const Handle(TColStd_HArray2OfReal)& ThreeDTolFr,
0122 const Standard_Real FirstInU,
0123 const Standard_Real LastInU,
0124 const Standard_Real FirstInV,
0125 const Standard_Real LastInV,
0126 const GeomAbs_IsoType FavorIso,
0127 const GeomAbs_Shape ContInU,
0128 const GeomAbs_Shape ContInV,
0129 const Standard_Integer PrecisCode,
0130 const Standard_Integer MaxDegInU,
0131 const Standard_Integer MaxDegInV,
0132 const Standard_Integer MaxPatch,
0133 const AdvApp2Var_EvaluatorFunc2Var& Func,
0134 const AdvApp2Var_Criterion& Crit,
0135 AdvApprox_Cutting& UChoice,
0136 AdvApprox_Cutting& VChoice);
0137
0138
0139
0140 Standard_Boolean IsDone() const;
0141
0142
0143
0144
0145 Standard_Boolean HasResult() const;
0146
0147
0148 Handle(Geom_BSplineSurface) Surface(const Standard_Integer Index) const;
0149
0150 Standard_Integer UDegree() const;
0151
0152 Standard_Integer VDegree() const;
0153
0154 Standard_Integer NumSubSpaces(const Standard_Integer Dimension) const;
0155
0156
0157 Standard_EXPORT Handle(TColStd_HArray1OfReal) MaxError(const Standard_Integer Dimension) const;
0158
0159
0160 Standard_EXPORT Handle(TColStd_HArray1OfReal) AverageError(
0161 const Standard_Integer Dimension) const;
0162
0163
0164
0165
0166 Standard_EXPORT Handle(TColStd_HArray1OfReal) UFrontError(const Standard_Integer Dimension) const;
0167
0168
0169
0170
0171 Standard_EXPORT Handle(TColStd_HArray1OfReal) VFrontError(const Standard_Integer Dimension) const;
0172
0173
0174 Standard_EXPORT Standard_Real MaxError(const Standard_Integer Dimension,
0175 const Standard_Integer Index) const;
0176
0177
0178 Standard_EXPORT Standard_Real AverageError(const Standard_Integer Dimension,
0179 const Standard_Integer Index) const;
0180
0181
0182 Standard_EXPORT Standard_Real UFrontError(const Standard_Integer Dimension,
0183 const Standard_Integer Index) const;
0184
0185
0186 Standard_EXPORT Standard_Real VFrontError(const Standard_Integer Dimension,
0187 const Standard_Integer Index) const;
0188
0189 Standard_EXPORT Standard_Real CritError(const Standard_Integer Dimension,
0190 const Standard_Integer Index) const;
0191
0192
0193
0194 Standard_EXPORT void Dump(Standard_OStream& o) const;
0195
0196 protected:
0197 private:
0198
0199 Standard_EXPORT void Init();
0200
0201
0202
0203 Standard_EXPORT void InitGrid(const Standard_Integer NbInt);
0204
0205
0206 Standard_EXPORT void Perform(const AdvApprox_Cutting& UChoice,
0207 const AdvApprox_Cutting& VChoice,
0208 const AdvApp2Var_EvaluatorFunc2Var& Func);
0209
0210
0211 Standard_EXPORT void Perform(const AdvApprox_Cutting& UChoice,
0212 const AdvApprox_Cutting& VChoice,
0213 const AdvApp2Var_EvaluatorFunc2Var& Func,
0214 const AdvApp2Var_Criterion& Crit);
0215
0216
0217 Standard_EXPORT void ComputePatches(const AdvApprox_Cutting& UChoice,
0218 const AdvApprox_Cutting& VChoice,
0219 const AdvApp2Var_EvaluatorFunc2Var& Func);
0220
0221
0222 Standard_EXPORT void ComputePatches(const AdvApprox_Cutting& UChoice,
0223 const AdvApprox_Cutting& VChoice,
0224 const AdvApp2Var_EvaluatorFunc2Var& Func,
0225 const AdvApp2Var_Criterion& Crit);
0226
0227
0228 Standard_EXPORT void ComputeConstraints(const AdvApprox_Cutting& UChoice,
0229 const AdvApprox_Cutting& VChoice,
0230 const AdvApp2Var_EvaluatorFunc2Var& Func);
0231
0232
0233 Standard_EXPORT void ComputeConstraints(const AdvApprox_Cutting& UChoice,
0234 const AdvApprox_Cutting& VChoice,
0235 const AdvApp2Var_EvaluatorFunc2Var& Func,
0236 const AdvApp2Var_Criterion& Crit);
0237
0238
0239 Standard_EXPORT void Compute3DErrors();
0240
0241
0242
0243 Standard_EXPORT void ComputeCritError();
0244
0245
0246 Standard_EXPORT void ConvertBS();
0247
0248 Standard_Integer myNumSubSpaces[3];
0249 Handle(TColStd_HArray1OfReal) my1DTolerances;
0250 Handle(TColStd_HArray1OfReal) my2DTolerances;
0251 Handle(TColStd_HArray1OfReal) my3DTolerances;
0252 Handle(TColStd_HArray2OfReal) my1DTolOnFront;
0253 Handle(TColStd_HArray2OfReal) my2DTolOnFront;
0254 Handle(TColStd_HArray2OfReal) my3DTolOnFront;
0255 Standard_Real myFirstParInU;
0256 Standard_Real myLastParInU;
0257 Standard_Real myFirstParInV;
0258 Standard_Real myLastParInV;
0259 GeomAbs_IsoType myFavoriteIso;
0260 GeomAbs_Shape myContInU;
0261 GeomAbs_Shape myContInV;
0262 Standard_Integer myPrecisionCode;
0263 Standard_Integer myMaxDegInU;
0264 Standard_Integer myMaxDegInV;
0265 Standard_Integer myMaxPatches;
0266 AdvApp2Var_Context myConditions;
0267 AdvApp2Var_Network myResult;
0268 AdvApp2Var_Framework myConstraints;
0269 Standard_Boolean myDone;
0270 Standard_Boolean myHasResult;
0271 Handle(TColGeom_HArray1OfSurface) mySurfaces;
0272 Standard_Integer myDegreeInU;
0273 Standard_Integer myDegreeInV;
0274 Handle(TColStd_HArray1OfReal) my1DMaxError;
0275 Handle(TColStd_HArray1OfReal) my1DAverageError;
0276 Handle(TColStd_HArray1OfReal) my1DUFrontError;
0277 Handle(TColStd_HArray1OfReal) my1DVFrontError;
0278 Handle(TColStd_HArray1OfReal) my2DMaxError;
0279 Handle(TColStd_HArray1OfReal) my2DAverageError;
0280 Handle(TColStd_HArray1OfReal) my2DUFrontError;
0281 Handle(TColStd_HArray1OfReal) my2DVFrontError;
0282 Handle(TColStd_HArray1OfReal) my3DMaxError;
0283 Handle(TColStd_HArray1OfReal) my3DAverageError;
0284 Handle(TColStd_HArray1OfReal) my3DUFrontError;
0285 Handle(TColStd_HArray1OfReal) my3DVFrontError;
0286 Standard_Real myCriterionError;
0287 };
0288
0289 #include <AdvApp2Var_ApproxAFunc2Var.lxx>
0290
0291 #endif