File indexing completed on 2025-01-18 10:03:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomFill_SweepSectionGenerator_HeaderFile
0018 #define _GeomFill_SweepSectionGenerator_HeaderFile
0019
0020 #include <Adaptor3d_Curve.hxx>
0021 #include <gp_Ax1.hxx>
0022 #include <GeomFill_SequenceOfTrsf.hxx>
0023 #include <TColStd_Array1OfReal.hxx>
0024 #include <TColStd_Array1OfInteger.hxx>
0025 #include <TColgp_Array1OfPnt.hxx>
0026 #include <TColgp_Array1OfVec.hxx>
0027 #include <TColgp_Array1OfPnt2d.hxx>
0028 #include <TColgp_Array1OfVec2d.hxx>
0029
0030 class Geom_BSplineCurve;
0031 class Geom_Curve;
0032 class gp_Trsf;
0033
0034
0035
0036
0037 class GeomFill_SweepSectionGenerator
0038 {
0039 public:
0040
0041 DEFINE_STANDARD_ALLOC
0042
0043
0044 Standard_EXPORT GeomFill_SweepSectionGenerator();
0045
0046
0047 Standard_EXPORT GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path, const Standard_Real Radius);
0048
0049
0050 Standard_EXPORT GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& FirstSect);
0051
0052
0053
0054 Standard_EXPORT GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& FirstSect, const Handle(Geom_Curve)& LastSect);
0055
0056
0057
0058 Standard_EXPORT GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& Curve1, const Handle(Geom_Curve)& Curve2, const Standard_Real Radius);
0059
0060
0061
0062 Standard_EXPORT GeomFill_SweepSectionGenerator(const Handle(Adaptor3d_Curve)& Path, const Handle(Adaptor3d_Curve)& Curve1, const Handle(Adaptor3d_Curve)& Curve2, const Standard_Real Radius);
0063
0064 Standard_EXPORT void Init (const Handle(Geom_Curve)& Path, const Standard_Real Radius);
0065
0066 Standard_EXPORT void Init (const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& FirstSect);
0067
0068 Standard_EXPORT void Init (const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& FirstSect, const Handle(Geom_Curve)& LastSect);
0069
0070 Standard_EXPORT void Init (const Handle(Geom_Curve)& Path, const Handle(Geom_Curve)& Curve1, const Handle(Geom_Curve)& Curve2, const Standard_Real Radius);
0071
0072 Standard_EXPORT void Init (const Handle(Adaptor3d_Curve)& Path, const Handle(Adaptor3d_Curve)& Curve1, const Handle(Adaptor3d_Curve)& Curve2, const Standard_Real Radius);
0073
0074 Standard_EXPORT void Perform (const Standard_Boolean Polynomial = Standard_False);
0075
0076 Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d) const;
0077
0078 Standard_EXPORT void Knots (TColStd_Array1OfReal& TKnots) const;
0079
0080 Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults) const;
0081
0082 Standard_Integer NbSections() const;
0083
0084
0085
0086
0087 Standard_EXPORT Standard_Boolean Section (const Standard_Integer P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths) const;
0088
0089 Standard_EXPORT void Section (const Standard_Integer P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths) const;
0090
0091
0092 Standard_EXPORT const gp_Trsf& Transformation (const Standard_Integer Index) const;
0093
0094
0095
0096 Standard_EXPORT Standard_Real Parameter (const Standard_Integer P) const;
0097
0098
0099
0100
0101 protected:
0102
0103
0104
0105
0106
0107 private:
0108
0109
0110
0111 Handle(Geom_BSplineCurve) myPath;
0112 Handle(Geom_BSplineCurve) myFirstSect;
0113 Handle(Geom_BSplineCurve) myLastSect;
0114 Handle(Adaptor3d_Curve) myAdpPath;
0115 Handle(Adaptor3d_Curve) myAdpFirstSect;
0116 Handle(Adaptor3d_Curve) myAdpLastSect;
0117 gp_Ax1 myCircPathAxis;
0118 Standard_Real myRadius;
0119 Standard_Boolean myIsDone;
0120 Standard_Integer myNbSections;
0121 GeomFill_SequenceOfTrsf myTrsfs;
0122 Standard_Integer myType;
0123 Standard_Boolean myPolynomial;
0124
0125
0126 };
0127
0128
0129 #include <GeomFill_SweepSectionGenerator.lxx>
0130
0131
0132
0133
0134
0135 #endif