|
|
|||
File indexing completed on 2026-07-04 08:32:11
0001 // Created on: 1994-02-17 0002 // Created by: Bruno DUMORTIER 0003 // Copyright (c) 1994-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _GeomFill_Profiler_HeaderFile 0018 #define _GeomFill_Profiler_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 #include <Standard_Handle.hxx> 0023 0024 #include <TColGeom_SequenceOfCurve.hxx> 0025 #include <Standard_Integer.hxx> 0026 #include <TColgp_Array1OfPnt.hxx> 0027 #include <TColStd_Array1OfReal.hxx> 0028 #include <TColStd_Array1OfInteger.hxx> 0029 class Geom_Curve; 0030 0031 //! Evaluation of the common BSplineProfile of a group 0032 //! of curves from Geom. All the curves will have the 0033 //! same degree, the same knot-vector, so the same 0034 //! number of poles. 0035 class GeomFill_Profiler 0036 { 0037 public: 0038 DEFINE_STANDARD_ALLOC 0039 0040 Standard_EXPORT GeomFill_Profiler(); 0041 Standard_EXPORT virtual ~GeomFill_Profiler(); 0042 0043 Standard_EXPORT void AddCurve(const Handle(Geom_Curve)& Curve); 0044 0045 //! Converts all curves to BSplineCurves. 0046 //! Set them to the common profile. 0047 //! <PTol> is used to compare 2 knots. 0048 Standard_EXPORT virtual void Perform(const Standard_Real PTol); 0049 0050 //! Raises if not yet perform 0051 Standard_EXPORT Standard_Integer Degree() const; 0052 0053 Standard_Boolean IsPeriodic() const; 0054 0055 //! Raises if not yet perform 0056 Standard_EXPORT Standard_Integer NbPoles() const; 0057 0058 //! returns in <Poles> the poles of the BSplineCurve 0059 //! from index <Index> adjusting to the current profile. 0060 //! Raises if not yet perform 0061 //! Raises if <Index> not in the range [1,NbCurves] 0062 //! if the length of <Poles> is not equal to 0063 //! NbPoles(). 0064 Standard_EXPORT void Poles(const Standard_Integer Index, TColgp_Array1OfPnt& Poles) const; 0065 0066 //! returns in <Weights> the weights of the BSplineCurve 0067 //! from index <Index> adjusting to the current profile. 0068 //! Raises if not yet perform 0069 //! Raises if <Index> not in the range [1,NbCurves] or 0070 //! if the length of <Weights> is not equal to 0071 //! NbPoles(). 0072 Standard_EXPORT void Weights(const Standard_Integer Index, TColStd_Array1OfReal& Weights) const; 0073 0074 //! Raises if not yet perform 0075 Standard_EXPORT Standard_Integer NbKnots() const; 0076 0077 //! Raises if not yet perform 0078 //! Raises if the lengths of <Knots> and <Mults> are 0079 //! not equal to NbKnots(). 0080 Standard_EXPORT void KnotsAndMults(TColStd_Array1OfReal& Knots, 0081 TColStd_Array1OfInteger& Mults) const; 0082 0083 const Handle(Geom_Curve)& Curve(const Standard_Integer Index) const; 0084 0085 protected: 0086 TColGeom_SequenceOfCurve mySequence; 0087 Standard_Boolean myIsDone; 0088 Standard_Boolean myIsPeriodic; 0089 0090 private: 0091 }; 0092 0093 #include <GeomFill_Profiler.lxx> 0094 0095 #endif // _GeomFill_Profiler_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|