File indexing completed on 2026-09-19 09:26:59
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Adaptor3d_TopolTool_HeaderFile
0018 #define _Adaptor3d_TopolTool_HeaderFile
0019
0020 #include <Adaptor2d_Line2d.hxx>
0021 #include <Adaptor3d_HVertex.hxx>
0022 #include <Adaptor3d_Surface.hxx>
0023 #include <NCollection_Array1.hxx>
0024 #include <NCollection_HArray1.hxx>
0025 #include <TopAbs_State.hxx>
0026 #include <TopAbs_Orientation.hxx>
0027
0028 class Adaptor3d_HVertex;
0029
0030
0031
0032
0033
0034 class Adaptor3d_TopolTool : public Standard_Transient
0035 {
0036
0037 public:
0038 Standard_EXPORT Adaptor3d_TopolTool();
0039
0040 Standard_EXPORT Adaptor3d_TopolTool(const occ::handle<Adaptor3d_Surface>& Surface);
0041
0042 Standard_EXPORT virtual void Initialize();
0043
0044 Standard_EXPORT virtual void Initialize(const occ::handle<Adaptor3d_Surface>& S);
0045
0046 Standard_EXPORT virtual void Initialize(const occ::handle<Adaptor2d_Curve2d>& Curve);
0047
0048 Standard_EXPORT virtual void Init();
0049
0050 Standard_EXPORT virtual bool More();
0051
0052 Standard_EXPORT virtual occ::handle<Adaptor2d_Curve2d> Value();
0053
0054 Standard_EXPORT virtual void Next();
0055
0056 Standard_EXPORT virtual void InitVertexIterator();
0057
0058 Standard_EXPORT virtual bool MoreVertex();
0059
0060 Standard_EXPORT virtual occ::handle<Adaptor3d_HVertex> Vertex();
0061
0062 Standard_EXPORT virtual void NextVertex();
0063
0064 Standard_EXPORT virtual TopAbs_State Classify(const gp_Pnt2d& P,
0065 const double Tol,
0066 const bool ReacdreOnPeriodic = true);
0067
0068 Standard_EXPORT virtual bool IsThePointOn(const gp_Pnt2d& P,
0069 const double Tol,
0070 const bool ReacdreOnPeriodic = true);
0071
0072
0073
0074
0075
0076
0077 Standard_EXPORT virtual TopAbs_Orientation Orientation(const occ::handle<Adaptor2d_Curve2d>& C);
0078
0079
0080
0081
0082
0083 Standard_EXPORT virtual TopAbs_Orientation Orientation(const occ::handle<Adaptor3d_HVertex>& V);
0084
0085
0086
0087
0088 Standard_EXPORT virtual bool Identical(const occ::handle<Adaptor3d_HVertex>& V1,
0089 const occ::handle<Adaptor3d_HVertex>& V2);
0090
0091
0092
0093 Standard_EXPORT virtual bool Has3d() const;
0094
0095
0096 Standard_EXPORT virtual double Tol3d(const occ::handle<Adaptor2d_Curve2d>& C) const;
0097
0098
0099 Standard_EXPORT virtual double Tol3d(const occ::handle<Adaptor3d_HVertex>& V) const;
0100
0101
0102 Standard_EXPORT virtual gp_Pnt Pnt(const occ::handle<Adaptor3d_HVertex>& V) const;
0103
0104 Standard_EXPORT virtual void ComputeSamplePoints();
0105
0106
0107 Standard_EXPORT virtual int NbSamplesU();
0108
0109
0110 Standard_EXPORT virtual int NbSamplesV();
0111
0112
0113 Standard_EXPORT virtual int NbSamples();
0114
0115
0116
0117 Standard_EXPORT void UParameters(NCollection_Array1<double>& theArray) const;
0118
0119
0120
0121 Standard_EXPORT void VParameters(NCollection_Array1<double>& theArray) const;
0122
0123 Standard_EXPORT virtual void SamplePoint(const int Index, gp_Pnt2d& P2d, gp_Pnt& P3d);
0124
0125 Standard_EXPORT virtual bool DomainIsInfinite();
0126
0127 Standard_EXPORT virtual void* Edge() const;
0128
0129
0130
0131
0132
0133
0134
0135 Standard_EXPORT virtual void SamplePnts(const double theDefl,
0136 const int theNUmin,
0137 const int theNVmin);
0138
0139
0140
0141
0142
0143
0144 Standard_EXPORT virtual void BSplSamplePnts(const double theDefl,
0145 const int theNUmin,
0146 const int theNVmin);
0147
0148
0149 Standard_EXPORT virtual bool IsUniformSampling() const;
0150
0151
0152
0153
0154
0155 Standard_EXPORT static void GetConeApexParam(const gp_Cone& theC, double& theU, double& theV);
0156
0157 DEFINE_STANDARD_RTTIEXT(Adaptor3d_TopolTool, Standard_Transient)
0158
0159 protected:
0160 occ::handle<Adaptor3d_Surface> myS;
0161 int myNbSamplesU;
0162 int myNbSamplesV;
0163 occ::handle<NCollection_HArray1<double>> myUPars;
0164 occ::handle<NCollection_HArray1<double>> myVPars;
0165
0166 private:
0167 int nbRestr;
0168 int idRestr;
0169 double Uinf;
0170 double Usup;
0171 double Vinf;
0172 double Vsup;
0173 occ::handle<Adaptor2d_Line2d> myRestr[4];
0174 int nbVtx;
0175 int idVtx;
0176 occ::handle<Adaptor3d_HVertex> myVtx[2];
0177 };
0178
0179 #endif