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