File indexing completed on 2026-06-06 08:36:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Geom2dHatch_Hatcher_HeaderFile
0018 #define _Geom2dHatch_Hatcher_HeaderFile
0019
0020 #include <Standard.hxx>
0021
0022 #include <Geom2dAdaptor_Curve.hxx>
0023 #include <Geom2dHatch_Intersector.hxx>
0024 #include <Geom2dHatch_Elements.hxx>
0025 #include <Geom2dHatch_Hatchings.hxx>
0026 #include <TopAbs_Orientation.hxx>
0027 #include <HatchGen_ErrorStatus.hxx>
0028
0029 class HatchGen_PointOnHatching;
0030 class HatchGen_Domain;
0031
0032
0033 #ifdef Status
0034 #undef Status
0035 #endif
0036
0037 class Geom2dHatch_Hatcher
0038 {
0039 public:
0040 DEFINE_STANDARD_ALLOC
0041
0042
0043 Standard_EXPORT Geom2dHatch_Hatcher(const Geom2dHatch_Intersector& Intersector,
0044 const Standard_Real Confusion2d,
0045 const Standard_Real Confusion3d,
0046 const Standard_Boolean KeepPnt = Standard_False,
0047 const Standard_Boolean KeepSeg = Standard_False);
0048
0049
0050 Standard_EXPORT void Intersector(const Geom2dHatch_Intersector& Intersector);
0051
0052
0053 const Geom2dHatch_Intersector& Intersector();
0054
0055
0056 Geom2dHatch_Intersector& ChangeIntersector();
0057
0058
0059 Standard_EXPORT void Confusion2d(const Standard_Real Confusion);
0060
0061
0062
0063
0064 Standard_Real Confusion2d() const;
0065
0066
0067 Standard_EXPORT void Confusion3d(const Standard_Real Confusion);
0068
0069
0070
0071
0072 Standard_Real Confusion3d() const;
0073
0074
0075 Standard_EXPORT void KeepPoints(const Standard_Boolean Keep);
0076
0077
0078 Standard_Boolean KeepPoints() const;
0079
0080
0081 Standard_EXPORT void KeepSegments(const Standard_Boolean Keep);
0082
0083
0084 Standard_Boolean KeepSegments() const;
0085
0086
0087 void Clear();
0088
0089
0090 const Geom2dAdaptor_Curve& ElementCurve(const Standard_Integer IndE) const;
0091
0092
0093 Standard_EXPORT Standard_Integer
0094 AddElement(const Geom2dAdaptor_Curve& Curve,
0095 const TopAbs_Orientation Orientation = TopAbs_FORWARD);
0096
0097
0098 Standard_Integer AddElement(const Handle(Geom2d_Curve)& Curve,
0099 const TopAbs_Orientation Orientation = TopAbs_FORWARD)
0100 {
0101 Geom2dAdaptor_Curve aGAC(Curve);
0102 return AddElement(aGAC, Orientation);
0103 }
0104
0105
0106 Standard_EXPORT void RemElement(const Standard_Integer IndE);
0107
0108
0109 Standard_EXPORT void ClrElements();
0110
0111
0112 const Geom2dAdaptor_Curve& HatchingCurve(const Standard_Integer IndH) const;
0113
0114
0115 Standard_EXPORT Standard_Integer AddHatching(const Geom2dAdaptor_Curve& Curve);
0116
0117
0118 Standard_EXPORT void RemHatching(const Standard_Integer IndH);
0119
0120
0121 Standard_EXPORT void ClrHatchings();
0122
0123
0124
0125 Standard_Integer NbPoints(const Standard_Integer IndH) const;
0126
0127
0128
0129 const HatchGen_PointOnHatching& Point(const Standard_Integer IndH,
0130 const Standard_Integer IndP) const;
0131
0132
0133
0134 Standard_EXPORT void Trim();
0135
0136
0137
0138 Standard_EXPORT Standard_Integer Trim(const Geom2dAdaptor_Curve& Curve);
0139
0140
0141
0142 Standard_EXPORT void Trim(const Standard_Integer IndH);
0143
0144
0145 Standard_EXPORT void ComputeDomains();
0146
0147
0148 Standard_EXPORT void ComputeDomains(const Standard_Integer IndH);
0149
0150
0151
0152 Standard_Boolean TrimDone(const Standard_Integer IndH) const;
0153
0154
0155
0156 Standard_Boolean TrimFailed(const Standard_Integer IndH) const;
0157
0158
0159
0160 Standard_Boolean IsDone() const;
0161
0162
0163
0164 Standard_Boolean IsDone(const Standard_Integer IndH) const;
0165
0166
0167 HatchGen_ErrorStatus Status(const Standard_Integer IndH) const;
0168
0169
0170
0171
0172 Standard_Integer NbDomains(const Standard_Integer IndH) const;
0173
0174
0175 Standard_EXPORT const HatchGen_Domain& Domain(const Standard_Integer IndH,
0176 const Standard_Integer IDom) const;
0177
0178
0179 Standard_EXPORT void Dump() const;
0180
0181 protected:
0182
0183 Geom2dHatch_Element& Element(const Standard_Integer IndE);
0184
0185
0186 Geom2dHatch_Hatching& Hatching(const Standard_Integer IndH);
0187
0188 private:
0189
0190
0191 Standard_EXPORT Standard_Boolean Trim(const Standard_Integer IndH, const Standard_Integer IndE);
0192
0193
0194
0195 Standard_EXPORT Standard_Boolean GlobalTransition(HatchGen_PointOnHatching& Point);
0196
0197 Geom2dHatch_Intersector myIntersector;
0198 Standard_Real myConfusion2d;
0199 Standard_Real myConfusion3d;
0200 Standard_Boolean myKeepPoints;
0201 Standard_Boolean myKeepSegments;
0202 Standard_Integer myNbElements;
0203 Geom2dHatch_Elements myElements;
0204 Standard_Integer myNbHatchings;
0205 Geom2dHatch_Hatchings myHatchings;
0206 };
0207
0208 #include <Geom2dHatch_Hatcher.lxx>
0209
0210 #endif