File indexing completed on 2025-01-18 10:03:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepLProp_SLProps_HeaderFile
0018 #define _BRepLProp_SLProps_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <BRepAdaptor_Surface.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <gp_Pnt.hxx>
0026 #include <gp_Vec.hxx>
0027 #include <gp_Dir.hxx>
0028 #include <LProp_Status.hxx>
0029 class LProp_BadContinuity;
0030 class Standard_DomainError;
0031 class Standard_OutOfRange;
0032 class LProp_NotDefined;
0033 class BRepAdaptor_Surface;
0034 class BRepLProp_SurfaceTool;
0035 class gp_Pnt;
0036 class gp_Vec;
0037 class gp_Dir;
0038
0039
0040
0041 class BRepLProp_SLProps
0042 {
0043 public:
0044
0045 DEFINE_STANDARD_ALLOC
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 Standard_EXPORT BRepLProp_SLProps(const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, const Standard_Integer N, const Standard_Real Resolution);
0059
0060
0061
0062 Standard_EXPORT BRepLProp_SLProps(const BRepAdaptor_Surface& S, const Standard_Integer N, const Standard_Real Resolution);
0063
0064
0065
0066
0067 Standard_EXPORT BRepLProp_SLProps(const Standard_Integer N, const Standard_Real Resolution);
0068
0069
0070
0071 Standard_EXPORT void SetSurface (const BRepAdaptor_Surface& S);
0072
0073
0074
0075 Standard_EXPORT void SetParameters (const Standard_Real U, const Standard_Real V);
0076
0077
0078 Standard_EXPORT const gp_Pnt& Value() const;
0079
0080
0081
0082 Standard_EXPORT const gp_Vec& D1U();
0083
0084
0085
0086 Standard_EXPORT const gp_Vec& D1V();
0087
0088
0089
0090 Standard_EXPORT const gp_Vec& D2U();
0091
0092
0093
0094 Standard_EXPORT const gp_Vec& D2V();
0095
0096
0097
0098 Standard_EXPORT const gp_Vec& DUV();
0099
0100
0101
0102
0103 Standard_EXPORT Standard_Boolean IsTangentUDefined();
0104
0105
0106 Standard_EXPORT void TangentU (gp_Dir& D);
0107
0108
0109
0110
0111 Standard_EXPORT Standard_Boolean IsTangentVDefined();
0112
0113
0114 Standard_EXPORT void TangentV (gp_Dir& D);
0115
0116
0117 Standard_EXPORT Standard_Boolean IsNormalDefined();
0118
0119
0120 Standard_EXPORT const gp_Dir& Normal();
0121
0122
0123 Standard_EXPORT Standard_Boolean IsCurvatureDefined();
0124
0125
0126
0127 Standard_EXPORT Standard_Boolean IsUmbilic();
0128
0129
0130 Standard_EXPORT Standard_Real MaxCurvature();
0131
0132
0133 Standard_EXPORT Standard_Real MinCurvature();
0134
0135
0136
0137 Standard_EXPORT void CurvatureDirections (gp_Dir& MaxD, gp_Dir& MinD);
0138
0139
0140 Standard_EXPORT Standard_Real MeanCurvature();
0141
0142
0143 Standard_EXPORT Standard_Real GaussianCurvature();
0144
0145
0146
0147
0148 protected:
0149
0150
0151
0152
0153
0154 private:
0155
0156
0157
0158 BRepAdaptor_Surface mySurf;
0159 Standard_Real myU;
0160 Standard_Real myV;
0161 Standard_Integer myDerOrder;
0162 Standard_Integer myCN;
0163 Standard_Real myLinTol;
0164 gp_Pnt myPnt;
0165 gp_Vec myD1u;
0166 gp_Vec myD1v;
0167 gp_Vec myD2u;
0168 gp_Vec myD2v;
0169 gp_Vec myDuv;
0170 gp_Dir myNormal;
0171 Standard_Real myMinCurv;
0172 Standard_Real myMaxCurv;
0173 gp_Dir myDirMinCurv;
0174 gp_Dir myDirMaxCurv;
0175 Standard_Real myMeanCurv;
0176 Standard_Real myGausCurv;
0177 Standard_Integer mySignificantFirstDerivativeOrderU;
0178 Standard_Integer mySignificantFirstDerivativeOrderV;
0179 LProp_Status myUTangentStatus;
0180 LProp_Status myVTangentStatus;
0181 LProp_Status myNormalStatus;
0182 LProp_Status myCurvatureStatus;
0183
0184
0185 };
0186
0187
0188
0189
0190
0191
0192
0193 #endif