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_FreeBoundsProperties_HeaderFile
0018 #define _ShapeAnalysis_FreeBoundsProperties_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <TopoDS_Shape.hxx>
0025 #include <ShapeAnalysis_HSequenceOfFreeBounds.hxx>
0026 #include <Standard_Integer.hxx>
0027 class ShapeAnalysis_FreeBoundData;
0028 class TopoDS_Wire;
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050 class ShapeAnalysis_FreeBoundsProperties
0051 {
0052 public:
0053
0054 DEFINE_STANDARD_ALLOC
0055
0056
0057
0058 Standard_EXPORT ShapeAnalysis_FreeBoundsProperties();
0059
0060
0061
0062 Standard_EXPORT ShapeAnalysis_FreeBoundsProperties(const TopoDS_Shape& shape, const Standard_Real tolerance, const Standard_Boolean splitclosed = Standard_False, const Standard_Boolean splitopen = Standard_False);
0063
0064
0065
0066 Standard_EXPORT ShapeAnalysis_FreeBoundsProperties(const TopoDS_Shape& shape, const Standard_Boolean splitclosed = Standard_False, const Standard_Boolean splitopen = Standard_False);
0067
0068
0069
0070 Standard_EXPORT void Init (const TopoDS_Shape& shape, const Standard_Real tolerance, const Standard_Boolean splitclosed = Standard_False, const Standard_Boolean splitopen = Standard_False);
0071
0072
0073
0074 Standard_EXPORT void Init (const TopoDS_Shape& shape, const Standard_Boolean splitclosed = Standard_False, const Standard_Boolean splitopen = Standard_False);
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086 Standard_EXPORT Standard_Boolean Perform();
0087
0088
0089 Standard_Boolean IsLoaded() const;
0090
0091
0092 TopoDS_Shape Shape() const;
0093
0094
0095 Standard_Real Tolerance() const;
0096
0097
0098 Standard_Integer NbFreeBounds() const;
0099
0100
0101 Standard_Integer NbClosedFreeBounds() const;
0102
0103
0104 Standard_Integer NbOpenFreeBounds() const;
0105
0106
0107 Handle(ShapeAnalysis_HSequenceOfFreeBounds) ClosedFreeBounds() const;
0108
0109
0110 Handle(ShapeAnalysis_HSequenceOfFreeBounds) OpenFreeBounds() const;
0111
0112
0113
0114 Handle(ShapeAnalysis_FreeBoundData) ClosedFreeBound (const Standard_Integer index) const;
0115
0116
0117
0118 Handle(ShapeAnalysis_FreeBoundData) OpenFreeBound (const Standard_Integer index) const;
0119
0120 Standard_EXPORT Standard_Boolean DispatchBounds();
0121
0122 Standard_EXPORT Standard_Boolean CheckContours (const Standard_Real prec = 0.0);
0123
0124 Standard_EXPORT Standard_Boolean CheckNotches (const Standard_Real prec = 0.0);
0125
0126 Standard_EXPORT Standard_Boolean CheckNotches (Handle(ShapeAnalysis_FreeBoundData)& fbData, const Standard_Real prec = 0.0);
0127
0128 Standard_EXPORT Standard_Boolean CheckNotches (const TopoDS_Wire& freebound, const Standard_Integer num, TopoDS_Wire& notch, Standard_Real& distMax, const Standard_Real prec = 0.0);
0129
0130 Standard_EXPORT Standard_Boolean FillProperties (Handle(ShapeAnalysis_FreeBoundData)& fbData, const Standard_Real prec = 0.0);
0131
0132
0133
0134
0135 protected:
0136
0137
0138
0139
0140
0141 private:
0142
0143
0144
0145 TopoDS_Shape myShape;
0146 Standard_Real myTolerance;
0147 Standard_Boolean mySplitClosed;
0148 Standard_Boolean mySplitOpen;
0149 Handle(ShapeAnalysis_HSequenceOfFreeBounds) myClosedFreeBounds;
0150 Handle(ShapeAnalysis_HSequenceOfFreeBounds) myOpenFreeBounds;
0151
0152
0153 };
0154
0155
0156 #include <ShapeAnalysis_FreeBoundsProperties.lxx>
0157
0158
0159
0160
0161
0162 #endif