File indexing completed on 2025-01-18 10:04:54
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ShapeAnalysis_FreeBoundData_HeaderFile
0018 #define _ShapeAnalysis_FreeBoundData_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <TopoDS_Wire.hxx>
0023 #include <Standard_Real.hxx>
0024 #include <TopTools_HSequenceOfShape.hxx>
0025 #include <TopTools_DataMapOfShapeReal.hxx>
0026 #include <Standard_Transient.hxx>
0027 #include <Standard_Integer.hxx>
0028
0029
0030 class ShapeAnalysis_FreeBoundData;
0031 DEFINE_STANDARD_HANDLE(ShapeAnalysis_FreeBoundData, Standard_Transient)
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 class ShapeAnalysis_FreeBoundData : public Standard_Transient
0050 {
0051
0052 public:
0053
0054
0055
0056 Standard_EXPORT ShapeAnalysis_FreeBoundData();
0057
0058
0059 Standard_EXPORT ShapeAnalysis_FreeBoundData(const TopoDS_Wire& freebound);
0060
0061
0062
0063 Standard_EXPORT void Clear();
0064
0065
0066 void SetFreeBound (const TopoDS_Wire& freebound);
0067
0068
0069 void SetArea (const Standard_Real area);
0070
0071
0072 void SetPerimeter (const Standard_Real perimeter);
0073
0074
0075 void SetRatio (const Standard_Real ratio);
0076
0077
0078 void SetWidth (const Standard_Real width);
0079
0080
0081 Standard_EXPORT void AddNotch (const TopoDS_Wire& notch, const Standard_Real width);
0082
0083
0084 TopoDS_Wire FreeBound() const;
0085
0086
0087 Standard_Real Area() const;
0088
0089
0090 Standard_Real Perimeter() const;
0091
0092
0093 Standard_Real Ratio() const;
0094
0095
0096 Standard_Real Width() const;
0097
0098
0099 Standard_Integer NbNotches() const;
0100
0101
0102 Handle(TopTools_HSequenceOfShape) Notches() const;
0103
0104
0105 TopoDS_Wire Notch (const Standard_Integer index) const;
0106
0107
0108
0109 Standard_EXPORT Standard_Real NotchWidth (const Standard_Integer index) const;
0110
0111
0112
0113 Standard_EXPORT Standard_Real NotchWidth (const TopoDS_Wire& notch) const;
0114
0115
0116
0117
0118 DEFINE_STANDARD_RTTIEXT(ShapeAnalysis_FreeBoundData,Standard_Transient)
0119
0120 protected:
0121
0122
0123
0124
0125 private:
0126
0127
0128 TopoDS_Wire myBound;
0129 Standard_Real myArea;
0130 Standard_Real myPerimeter;
0131 Standard_Real myRatio;
0132 Standard_Real myWidth;
0133 Handle(TopTools_HSequenceOfShape) myNotches;
0134 TopTools_DataMapOfShapeReal myNotchesParams;
0135
0136
0137 };
0138
0139
0140 #include <ShapeAnalysis_FreeBoundData.lxx>
0141
0142
0143
0144
0145
0146 #endif