File indexing completed on 2026-09-24 09:15:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepSweep_NumLinearRegularSweep_HeaderFile
0018 #define _BRepSweep_NumLinearRegularSweep_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <BRepSweep_Builder.hxx>
0024 #include <TopoDS_Shape.hxx>
0025 #include <BRepSweep_Tool.hxx>
0026 #include <Sweep_NumShapeTool.hxx>
0027 #include <NCollection_Array2.hxx>
0028 #include <TopAbs_Orientation.hxx>
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067 class BRepSweep_NumLinearRegularSweep
0068 {
0069 public:
0070 DEFINE_STANDARD_ALLOC
0071
0072
0073
0074 Standard_EXPORT virtual TopoDS_Shape MakeEmptyVertex(const TopoDS_Shape& aGenV,
0075 const Sweep_NumShape& aDirV) = 0;
0076 Standard_EXPORT virtual ~BRepSweep_NumLinearRegularSweep();
0077
0078
0079
0080 Standard_EXPORT virtual TopoDS_Shape MakeEmptyDirectingEdge(const TopoDS_Shape& aGenV,
0081 const Sweep_NumShape& aDirE) = 0;
0082
0083
0084
0085 Standard_EXPORT virtual TopoDS_Shape MakeEmptyGeneratingEdge(const TopoDS_Shape& aGenE,
0086 const Sweep_NumShape& aDirV) = 0;
0087
0088
0089
0090
0091 Standard_EXPORT virtual void SetParameters(const TopoDS_Shape& aNewFace,
0092 TopoDS_Shape& aNewVertex,
0093 const TopoDS_Shape& aGenF,
0094 const TopoDS_Shape& aGenV,
0095 const Sweep_NumShape& aDirV) = 0;
0096
0097
0098
0099
0100 Standard_EXPORT virtual void SetDirectingParameter(const TopoDS_Shape& aNewEdge,
0101 TopoDS_Shape& aNewVertex,
0102 const TopoDS_Shape& aGenV,
0103 const Sweep_NumShape& aDirE,
0104 const Sweep_NumShape& aDirV) = 0;
0105
0106
0107
0108
0109 Standard_EXPORT virtual void SetGeneratingParameter(const TopoDS_Shape& aNewEdge,
0110 TopoDS_Shape& aNewVertex,
0111 const TopoDS_Shape& aGenE,
0112 const TopoDS_Shape& aGenV,
0113 const Sweep_NumShape& aDirV) = 0;
0114
0115
0116
0117
0118
0119
0120 Standard_EXPORT virtual TopoDS_Shape MakeEmptyFace(const TopoDS_Shape& aGenS,
0121 const Sweep_NumShape& aDirS) = 0;
0122
0123
0124
0125
0126 Standard_EXPORT virtual void SetPCurve(const TopoDS_Shape& aNewFace,
0127 TopoDS_Shape& aNewEdge,
0128 const TopoDS_Shape& aGenF,
0129 const TopoDS_Shape& aGenE,
0130 const Sweep_NumShape& aDirV,
0131 const TopAbs_Orientation orien) = 0;
0132
0133
0134
0135
0136 Standard_EXPORT virtual void SetGeneratingPCurve(const TopoDS_Shape& aNewFace,
0137 TopoDS_Shape& aNewEdge,
0138 const TopoDS_Shape& aGenE,
0139 const Sweep_NumShape& aDirE,
0140 const Sweep_NumShape& aDirV,
0141 const TopAbs_Orientation orien) = 0;
0142
0143
0144
0145
0146 Standard_EXPORT virtual void SetDirectingPCurve(const TopoDS_Shape& aNewFace,
0147 TopoDS_Shape& aNewEdge,
0148 const TopoDS_Shape& aGenE,
0149 const TopoDS_Shape& aGenV,
0150 const Sweep_NumShape& aDirE,
0151 const TopAbs_Orientation orien) = 0;
0152
0153
0154
0155
0156
0157 Standard_EXPORT virtual TopAbs_Orientation DirectSolid(const TopoDS_Shape& aGenS,
0158 const Sweep_NumShape& aDirS) = 0;
0159
0160
0161
0162
0163 Standard_EXPORT virtual bool GGDShapeIsToAdd(const TopoDS_Shape& aNewShape,
0164 const TopoDS_Shape& aNewSubShape,
0165 const TopoDS_Shape& aGenS,
0166 const TopoDS_Shape& aSubGenS,
0167 const Sweep_NumShape& aDirS) const = 0;
0168
0169
0170
0171
0172 Standard_EXPORT virtual bool GDDShapeIsToAdd(const TopoDS_Shape& aNewShape,
0173 const TopoDS_Shape& aNewSubShape,
0174 const TopoDS_Shape& aGenS,
0175 const Sweep_NumShape& aDirS,
0176 const Sweep_NumShape& aSubDirS) const = 0;
0177
0178
0179
0180
0181
0182 Standard_EXPORT virtual bool SeparatedWires(const TopoDS_Shape& aNewShape,
0183 const TopoDS_Shape& aNewSubShape,
0184 const TopoDS_Shape& aGenS,
0185 const TopoDS_Shape& aSubGenS,
0186 const Sweep_NumShape& aDirS) const = 0;
0187
0188
0189
0190
0191
0192 Standard_EXPORT virtual TopoDS_Shape SplitShell(const TopoDS_Shape& aNewShape) const;
0193
0194
0195
0196
0197 Standard_EXPORT virtual void SetContinuity(const TopoDS_Shape& aGenS,
0198 const Sweep_NumShape& aDirS) = 0;
0199
0200
0201
0202
0203
0204 Standard_EXPORT virtual bool HasShape(const TopoDS_Shape& aGenS,
0205 const Sweep_NumShape& aDirS) const = 0;
0206
0207
0208 Standard_EXPORT virtual bool IsInvariant(const TopoDS_Shape& aGenS) const = 0;
0209
0210
0211
0212 Standard_EXPORT TopoDS_Shape Shape(const TopoDS_Shape& aGenS, const Sweep_NumShape& aDirS);
0213
0214
0215
0216 Standard_EXPORT TopoDS_Shape Shape(const TopoDS_Shape& aGenS);
0217
0218
0219
0220 Standard_EXPORT bool IsUsed(const TopoDS_Shape& aGenS) const;
0221
0222
0223
0224 Standard_EXPORT bool GenIsUsed(const TopoDS_Shape& theS) const;
0225
0226
0227
0228 Standard_EXPORT TopoDS_Shape Shape();
0229
0230
0231
0232 Standard_EXPORT TopoDS_Shape FirstShape();
0233
0234
0235
0236 Standard_EXPORT TopoDS_Shape LastShape();
0237
0238
0239
0240 Standard_EXPORT TopoDS_Shape FirstShape(const TopoDS_Shape& aGenS);
0241
0242
0243
0244 Standard_EXPORT TopoDS_Shape LastShape(const TopoDS_Shape& aGenS);
0245
0246 Standard_EXPORT bool Closed() const;
0247
0248 protected:
0249
0250
0251 Standard_EXPORT BRepSweep_NumLinearRegularSweep(const BRepSweep_Builder& aBuilder,
0252 const TopoDS_Shape& aGenShape,
0253 const Sweep_NumShape& aDirWire);
0254
0255 BRepSweep_Builder myBuilder;
0256 TopoDS_Shape myGenShape;
0257 Sweep_NumShape myDirWire;
0258 BRepSweep_Tool myGenShapeTool;
0259 Sweep_NumShapeTool myDirShapeTool;
0260 NCollection_Array2<TopoDS_Shape> myShapes;
0261 NCollection_Array2<bool> myBuiltShapes;
0262 NCollection_Array2<bool> myUsedShapes;
0263 };
0264
0265 #endif