File indexing completed on 2026-09-20 09:17:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _HLRBRep_ThePolygonOfInterCSurf_HeaderFile
0018 #define _HLRBRep_ThePolygonOfInterCSurf_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Bnd_Box.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <gp_Pnt.hxx>
0027 #include <NCollection_Array1.hxx>
0028 #include <NCollection_HArray1.hxx>
0029 class Standard_OutOfRange;
0030 class gp_Lin;
0031 class HLRBRep_LineTool;
0032 class Bnd_Box;
0033 class gp_Pnt;
0034
0035 class HLRBRep_ThePolygonOfInterCSurf
0036 {
0037 public:
0038 DEFINE_STANDARD_ALLOC
0039
0040 Standard_EXPORT HLRBRep_ThePolygonOfInterCSurf(const gp_Lin& Curve, const int NbPnt);
0041
0042 Standard_EXPORT HLRBRep_ThePolygonOfInterCSurf(const gp_Lin& Curve,
0043 const double U1,
0044 const double U2,
0045 const int NbPnt);
0046
0047 Standard_EXPORT HLRBRep_ThePolygonOfInterCSurf(const gp_Lin& Curve,
0048 const NCollection_Array1<double>& Upars);
0049
0050
0051 const Bnd_Box& Bounding() const { return TheBnd; }
0052
0053 double DeflectionOverEstimation() const { return TheDeflection; }
0054
0055 void SetDeflectionOverEstimation(const double x)
0056 {
0057 TheDeflection = x;
0058 TheBnd.Enlarge(TheDeflection);
0059 }
0060
0061 void Closed(const bool flag) { ClosedPolygon = flag; }
0062
0063
0064 bool Closed() const { return false; }
0065
0066
0067
0068
0069 int NbSegments() const { return NbPntIn - 1; }
0070
0071
0072 const gp_Pnt& BeginOfSeg(const int theIndex) const { return ThePnts(theIndex); }
0073
0074
0075 const gp_Pnt& EndOfSeg(const int theIndex) const { return ThePnts(theIndex + 1); }
0076
0077
0078
0079 double InfParameter() const { return Binf; }
0080
0081
0082
0083 double SupParameter() const { return Bsup; }
0084
0085
0086
0087 Standard_EXPORT double ApproxParamOnCurve(const int Index, const double ParamOnLine) const;
0088
0089 Standard_EXPORT void Dump() const;
0090
0091 protected:
0092 Standard_EXPORT void Init(const gp_Lin& Curve);
0093
0094 Standard_EXPORT void Init(const gp_Lin& Curve, const NCollection_Array1<double>& Upars);
0095
0096 private:
0097 Bnd_Box TheBnd;
0098 double TheDeflection;
0099 int NbPntIn;
0100 NCollection_Array1<gp_Pnt> ThePnts;
0101 bool ClosedPolygon;
0102 double Binf;
0103 double Bsup;
0104 occ::handle<NCollection_HArray1<double>> myParams;
0105 };
0106
0107 #endif