File indexing completed on 2025-01-18 10:03:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepOffsetAPI_ThruSections_HeaderFile
0018 #define _BRepOffsetAPI_ThruSections_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <BRepFill_ThruSectionErrorStatus.hxx>
0025 #include <TopTools_SequenceOfShape.hxx>
0026 #include <TopoDS_Face.hxx>
0027 #include <TopTools_DataMapOfShapeShape.hxx>
0028 #include <TopTools_DataMapOfShapeListOfInteger.hxx>
0029 #include <TopTools_DataMapOfShapeInteger.hxx>
0030 #include <GeomAbs_Shape.hxx>
0031 #include <Approx_ParametrizationType.hxx>
0032 #include <Standard_Integer.hxx>
0033 #include <BRepBuilderAPI_MakeShape.hxx>
0034 #include <TopTools_Array1OfShape.hxx>
0035 #include <NCollection_Handle.hxx>
0036
0037 class TopoDS_Wire;
0038 class TopoDS_Vertex;
0039 class TopoDS_Shape;
0040 class Geom_BSplineSurface;
0041 class BRepFill_Generator;
0042
0043
0044
0045
0046
0047 class BRepOffsetAPI_ThruSections : public BRepBuilderAPI_MakeShape
0048 {
0049 public:
0050
0051 DEFINE_STANDARD_ALLOC
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066 Standard_EXPORT BRepOffsetAPI_ThruSections(const Standard_Boolean isSolid = Standard_False, const Standard_Boolean ruled = Standard_False, const Standard_Real pres3d = 1.0e-06);
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080 Standard_EXPORT void Init (const Standard_Boolean isSolid = Standard_False, const Standard_Boolean ruled = Standard_False, const Standard_Real pres3d = 1.0e-06);
0081
0082
0083
0084
0085 Standard_EXPORT void AddWire (const TopoDS_Wire& wire);
0086
0087
0088
0089
0090
0091
0092 Standard_EXPORT void AddVertex (const TopoDS_Vertex& aVertex);
0093
0094
0095
0096
0097 Standard_EXPORT void CheckCompatibility (const Standard_Boolean check = Standard_True);
0098
0099
0100 Standard_EXPORT void SetSmoothing (const Standard_Boolean UseSmoothing);
0101
0102
0103 Standard_EXPORT void SetParType (const Approx_ParametrizationType ParType);
0104
0105
0106 Standard_EXPORT void SetContinuity (const GeomAbs_Shape C);
0107
0108
0109
0110
0111
0112 Standard_EXPORT void SetCriteriumWeight (const Standard_Real W1, const Standard_Real W2, const Standard_Real W3);
0113
0114
0115 Standard_EXPORT void SetMaxDegree (const Standard_Integer MaxDeg);
0116
0117
0118 Standard_EXPORT Approx_ParametrizationType ParType() const;
0119
0120
0121 Standard_EXPORT GeomAbs_Shape Continuity() const;
0122
0123
0124 Standard_EXPORT Standard_Integer MaxDegree() const;
0125
0126
0127 Standard_EXPORT Standard_Boolean UseSmoothing() const;
0128
0129
0130
0131 Standard_EXPORT void CriteriumWeight (Standard_Real& W1, Standard_Real& W2, Standard_Real& W3) const;
0132
0133 Standard_EXPORT virtual void Build(const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE;
0134
0135
0136 Standard_EXPORT const TopoDS_Shape& FirstShape() const;
0137
0138
0139 Standard_EXPORT const TopoDS_Shape& LastShape() const;
0140
0141
0142
0143
0144
0145
0146 Standard_EXPORT TopoDS_Shape GeneratedFace (const TopoDS_Shape& Edge) const;
0147
0148
0149
0150
0151 Standard_EXPORT void SetMutableInput(const Standard_Boolean theIsMutableInput);
0152
0153
0154
0155
0156
0157 Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE;
0158
0159
0160 const TopTools_ListOfShape& Wires() const
0161 {
0162 return myInputWires;
0163 }
0164
0165 Standard_EXPORT Standard_Boolean IsMutableInput() const;
0166
0167
0168 BRepFill_ThruSectionErrorStatus GetStatus() const
0169 {
0170 return myStatus;
0171 }
0172
0173 protected:
0174
0175
0176
0177
0178
0179 private:
0180
0181
0182 Standard_EXPORT void CreateRuled();
0183
0184 Standard_EXPORT void CreateSmoothed();
0185
0186 Standard_EXPORT Handle(Geom_BSplineSurface) TotalSurf (const TopTools_Array1OfShape& shapes,
0187 const Standard_Integer NbSect,
0188 const Standard_Integer NbEdges,
0189 const Standard_Boolean w1Point,
0190 const Standard_Boolean w2Point,
0191 const Standard_Boolean vClosed) const;
0192
0193
0194 TopTools_ListOfShape myInputWires;
0195 TopTools_SequenceOfShape myWires;
0196 TopTools_DataMapOfShapeListOfInteger myEdgeNewIndices;
0197 TopTools_DataMapOfShapeInteger myVertexIndex;
0198 Standard_Integer myNbEdgesInSection;
0199 Standard_Boolean myIsSolid;
0200 Standard_Boolean myIsRuled;
0201 Standard_Boolean myWCheck;
0202 Standard_Real myPres3d;
0203 TopoDS_Face myFirst;
0204 TopoDS_Face myLast;
0205 Standard_Boolean myDegen1;
0206 Standard_Boolean myDegen2;
0207 TopTools_DataMapOfShapeShape myEdgeFace;
0208 GeomAbs_Shape myContinuity;
0209 Approx_ParametrizationType myParamType;
0210 Standard_Integer myDegMax;
0211 Standard_Real myCritWeights[3];
0212 Standard_Boolean myUseSmoothing;
0213 Standard_Boolean myMutableInput;
0214 NCollection_Handle<BRepFill_Generator> myBFGenerator;
0215 BRepFill_ThruSectionErrorStatus myStatus;
0216
0217 };
0218
0219
0220
0221
0222
0223
0224
0225 #endif