File indexing completed on 2026-09-13 09:16:54
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _IMeshData_PCurve_HeaderFile
0017 #define _IMeshData_PCurve_HeaderFile
0018
0019 #include <IMeshData_ParametersList.hxx>
0020 #include <Standard_Type.hxx>
0021 #include <IMeshData_Face.hxx>
0022
0023 class gp_Pnt2d;
0024
0025
0026
0027 class IMeshData_PCurve : public IMeshData_ParametersList
0028 {
0029 public:
0030
0031 ~IMeshData_PCurve() override = default;
0032
0033
0034 Standard_EXPORT virtual void InsertPoint(const int thePosition,
0035 const gp_Pnt2d& thePoint,
0036 const double theParamOnPCurve) = 0;
0037
0038
0039 Standard_EXPORT virtual void AddPoint(const gp_Pnt2d& thePoint,
0040 const double theParamOnPCurve) = 0;
0041
0042
0043 Standard_EXPORT virtual gp_Pnt2d& GetPoint(const int theIndex) = 0;
0044
0045
0046 Standard_EXPORT virtual int& GetIndex(const int theIndex) = 0;
0047
0048
0049 Standard_EXPORT virtual void RemovePoint(const int theIndex) = 0;
0050
0051
0052 bool IsForward() const { return (myOrientation != TopAbs_REVERSED); }
0053
0054
0055 bool IsInternal() const { return (myOrientation == TopAbs_INTERNAL); }
0056
0057
0058 TopAbs_Orientation GetOrientation() const { return myOrientation; }
0059
0060
0061 const IMeshData::IFacePtr& GetFace() const { return myDFace; }
0062
0063 DEFINE_STANDARD_RTTIEXT(IMeshData_PCurve, IMeshData_ParametersList)
0064
0065 protected:
0066
0067 IMeshData_PCurve(const IMeshData::IFacePtr& theDFace, const TopAbs_Orientation theOrientation)
0068 : myDFace(theDFace),
0069 myOrientation(theOrientation)
0070 {
0071 }
0072
0073 private:
0074 IMeshData::IFacePtr myDFace;
0075 TopAbs_Orientation myOrientation;
0076 };
0077
0078 #endif