File indexing completed on 2026-09-25 09:19:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _BRepFill_ComputeCLine_HeaderFile
0018 #define _BRepFill_ComputeCLine_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022
0023 #include <AppParCurves_MultiCurve.hxx>
0024 #include <NCollection_Sequence.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <AppParCurves_Constraint.hxx>
0027 #include <BRepFill_MultiLine.hxx>
0028 class AppParCurves_MultiCurve;
0029
0030 class BRepFill_ComputeCLine
0031 {
0032 public:
0033 DEFINE_STANDARD_ALLOC
0034
0035
0036
0037
0038
0039 Standard_EXPORT BRepFill_ComputeCLine(
0040 const BRepFill_MultiLine& Line,
0041 const int degreemin = 3,
0042 const int degreemax = 8,
0043 const double Tolerance3d = 1.0e-5,
0044 const double Tolerance2d = 1.0e-5,
0045 const bool cutting = false,
0046 const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint,
0047 const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint);
0048
0049
0050 Standard_EXPORT BRepFill_ComputeCLine(
0051 const int degreemin = 3,
0052 const int degreemax = 8,
0053 const double Tolerance3d = 1.0e-05,
0054 const double Tolerance2d = 1.0e-05,
0055 const bool cutting = false,
0056 const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint,
0057 const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint);
0058
0059
0060 Standard_EXPORT void Perform(const BRepFill_MultiLine& Line);
0061
0062
0063 Standard_EXPORT void SetDegrees(const int degreemin, const int degreemax);
0064
0065
0066 Standard_EXPORT void SetTolerances(const double Tolerance3d, const double Tolerance2d);
0067
0068
0069 Standard_EXPORT void SetConstraints(const AppParCurves_Constraint FirstC,
0070 const AppParCurves_Constraint LastC);
0071
0072
0073 Standard_EXPORT void SetMaxSegments(const int theMaxSegments);
0074
0075
0076
0077
0078
0079 Standard_EXPORT void SetInvOrder(const bool theInvOrder);
0080
0081
0082
0083
0084
0085 Standard_EXPORT void SetHangChecking(const bool theHangChecking);
0086
0087
0088
0089
0090 Standard_EXPORT bool IsAllApproximated() const;
0091
0092
0093 Standard_EXPORT bool IsToleranceReached() const;
0094
0095
0096 Standard_EXPORT void Error(const int Index, double& tol3d, double& tol2d) const;
0097
0098
0099
0100 Standard_EXPORT int NbMultiCurves() const;
0101
0102
0103 Standard_EXPORT AppParCurves_MultiCurve Value(const int Index = 1) const;
0104
0105 Standard_EXPORT void Parameters(const int Index, double& firstp, double& lastp) const;
0106
0107 private:
0108
0109 Standard_EXPORT bool Compute(const BRepFill_MultiLine& Line,
0110 const double Ufirst,
0111 const double Ulast,
0112 double& TheTol3d,
0113 double& TheTol2d);
0114
0115 NCollection_Sequence<AppParCurves_MultiCurve> myMultiCurves;
0116 NCollection_Sequence<double> myfirstparam;
0117 NCollection_Sequence<double> mylastparam;
0118 AppParCurves_MultiCurve TheMultiCurve;
0119 bool alldone;
0120 bool tolreached;
0121 NCollection_Sequence<double> Tolers3d;
0122 NCollection_Sequence<double> Tolers2d;
0123 int mydegremin;
0124 int mydegremax;
0125 double mytol3d;
0126 double mytol2d;
0127 double currenttol3d;
0128 double currenttol2d;
0129 bool mycut;
0130 AppParCurves_Constraint myfirstC;
0131 AppParCurves_Constraint mylastC;
0132 int myMaxSegments;
0133 bool myInvOrder;
0134 bool myHangChecking;
0135 };
0136
0137 #endif