Warning, file /include/opencascade/HLRBRep_SurfaceTool.hxx was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _HLRBRep_SurfaceTool_HeaderFile
0018 #define _HLRBRep_SurfaceTool_HeaderFile
0019
0020 #include <Adaptor3d_Curve.hxx>
0021 #include <Adaptor3d_Surface.hxx>
0022 #include <GeomAbs_Shape.hxx>
0023 #include <NCollection_Array1.hxx>
0024 #include <gp_Pnt.hxx>
0025 #include <gp_Vec.hxx>
0026 #include <GeomAbs_SurfaceType.hxx>
0027 #include <gp_Pln.hxx>
0028 #include <gp_Cylinder.hxx>
0029 #include <gp_Cone.hxx>
0030 #include <gp_Torus.hxx>
0031 #include <gp_Sphere.hxx>
0032 #include <gp_Ax1.hxx>
0033 #include <gp_Dir.hxx>
0034
0035 class gp_Pnt;
0036 class gp_Vec;
0037 class Geom_BezierSurface;
0038 class Geom_BSplineSurface;
0039 class HLRBRep_Surface;
0040
0041 class HLRBRep_SurfaceTool
0042 {
0043 public:
0044 DEFINE_STANDARD_ALLOC
0045
0046 static double FirstUParameter(const HLRBRep_Surface* theSurf);
0047
0048 static double FirstVParameter(const HLRBRep_Surface* theSurf);
0049
0050 static double LastUParameter(const HLRBRep_Surface* theSurf);
0051
0052 static double LastVParameter(const HLRBRep_Surface* theSurf);
0053
0054 static int NbUIntervals(const HLRBRep_Surface* theSurf, const GeomAbs_Shape theSh);
0055
0056 static int NbVIntervals(const HLRBRep_Surface* theSurf, const GeomAbs_Shape theSh);
0057
0058 static void UIntervals(const HLRBRep_Surface* theSurf,
0059 NCollection_Array1<double>& theT,
0060 const GeomAbs_Shape theSh);
0061
0062 static void VIntervals(const HLRBRep_Surface* theSurf,
0063 NCollection_Array1<double>& theT,
0064 const GeomAbs_Shape theSh);
0065
0066
0067 static occ::handle<Adaptor3d_Surface> UTrim(const HLRBRep_Surface* theSurf,
0068 const double theFirst,
0069 const double theLast,
0070 const double theTol);
0071
0072
0073 static occ::handle<Adaptor3d_Surface> VTrim(const HLRBRep_Surface* theSurf,
0074 const double theFirst,
0075 const double theLast,
0076 const double theTol);
0077
0078 static bool IsUClosed(const HLRBRep_Surface* theSurf);
0079
0080 static bool IsVClosed(const HLRBRep_Surface* theSurf);
0081
0082 static bool IsUPeriodic(const HLRBRep_Surface* theSurf);
0083
0084 static double UPeriod(const HLRBRep_Surface* theSurf);
0085
0086 static bool IsVPeriodic(const HLRBRep_Surface* theSurf);
0087
0088 static double VPeriod(const HLRBRep_Surface* theSurf);
0089
0090 static gp_Pnt Value(const HLRBRep_Surface* theSurf, const double theU, const double theV);
0091
0092 static void D0(const HLRBRep_Surface* theSurf,
0093 const double theU,
0094 const double theV,
0095 gp_Pnt& theP);
0096
0097 static void D1(const HLRBRep_Surface* theSurf,
0098 const double theU,
0099 const double theV,
0100 gp_Pnt& theP,
0101 gp_Vec& theD1U,
0102 gp_Vec& theD1V);
0103
0104 static void D2(const HLRBRep_Surface* theSurf,
0105 const double theU,
0106 const double theV,
0107 gp_Pnt& theP,
0108 gp_Vec& theD1U,
0109 gp_Vec& theD1V,
0110 gp_Vec& theD2U,
0111 gp_Vec& theD2V,
0112 gp_Vec& theD2UV);
0113
0114 static void D3(const HLRBRep_Surface* theSurf,
0115 const double theU,
0116 const double theV,
0117 gp_Pnt& theP,
0118 gp_Vec& theD1U,
0119 gp_Vec& theD1V,
0120 gp_Vec& theD2U,
0121 gp_Vec& theD2V,
0122 gp_Vec& theD2UV,
0123 gp_Vec& theD3U,
0124 gp_Vec& theD3V,
0125 gp_Vec& theD3UUV,
0126 gp_Vec& theD3UVV);
0127
0128 static gp_Vec DN(const HLRBRep_Surface* theSurf,
0129 const double theU,
0130 const double theV,
0131 const int theNu,
0132 const int theNv);
0133
0134 static double UResolution(const HLRBRep_Surface* theSurf, const double theR3d);
0135
0136 static double VResolution(const HLRBRep_Surface* theSurf, const double theR3d);
0137
0138 static GeomAbs_SurfaceType GetType(const HLRBRep_Surface* theSurf);
0139
0140 static gp_Pln Plane(const HLRBRep_Surface* theSurf);
0141
0142 static gp_Cylinder Cylinder(const HLRBRep_Surface* theSurf);
0143
0144 static gp_Cone Cone(const HLRBRep_Surface* theSurf);
0145
0146 static gp_Torus Torus(const HLRBRep_Surface* theSurf);
0147
0148 static gp_Sphere Sphere(const HLRBRep_Surface* theSurf);
0149
0150 static occ::handle<Geom_BezierSurface> Bezier(const HLRBRep_Surface* theSurf);
0151
0152 static occ::handle<Geom_BSplineSurface> BSpline(const HLRBRep_Surface* theSurf);
0153
0154 static gp_Ax1 AxeOfRevolution(const HLRBRep_Surface* theSurf);
0155
0156 static gp_Dir Direction(const HLRBRep_Surface* theSurf);
0157
0158 static occ::handle<Adaptor3d_Curve> BasisCurve(const HLRBRep_Surface* theSurf);
0159
0160 static occ::handle<Adaptor3d_Surface> BasisSurface(const HLRBRep_Surface* theSurf);
0161
0162 static double OffsetValue(const HLRBRep_Surface* theSurf);
0163
0164 Standard_EXPORT static int NbSamplesU(const HLRBRep_Surface* theSurf);
0165
0166 Standard_EXPORT static int NbSamplesV(const HLRBRep_Surface* theSurf);
0167
0168 Standard_EXPORT static int NbSamplesU(const HLRBRep_Surface* theSurf,
0169 const double theU1,
0170 const double theU2);
0171
0172 Standard_EXPORT static int NbSamplesV(const HLRBRep_Surface* theSurf,
0173 const double theV1,
0174 const double theV2);
0175 };
0176
0177 #include <HLRBRep_SurfaceTool.lxx>
0178
0179 #endif