Warning, file /include/opencascade/ApproxInt_KnotTools.hxx was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _ApproxInt_KnotTools_HeaderFile
0015 #define _ApproxInt_KnotTools_HeaderFile
0016
0017 #include <Standard_DefineAlloc.hxx>
0018 #include <Standard_Macro.hxx>
0019 #include <Standard_Boolean.hxx>
0020 #include <Standard_Real.hxx>
0021 #include <Standard_Integer.hxx>
0022 #include <TColgp_Array1OfPnt2d.hxx>
0023 #include <NCollection_Sequence.hxx>
0024 #include <NCollection_List.hxx>
0025 #include <math_Vector.hxx>
0026 #include <TColgp_Array1OfPnt.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028 #include <NCollection_LocalArray.hxx>
0029 #include <NCollection_Vector.hxx>
0030 #include <Approx_ParametrizationType.hxx>
0031
0032 class IntPatch_WLine;
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 class ApproxInt_KnotTools
0048 {
0049 public:
0050
0051 DEFINE_STANDARD_ALLOC
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064 Standard_EXPORT static void BuildKnots(const TColgp_Array1OfPnt& thePntsXYZ,
0065 const TColgp_Array1OfPnt2d& thePntsU1V1,
0066 const TColgp_Array1OfPnt2d& thePntsU2V2,
0067 const math_Vector& thePars,
0068 const Standard_Boolean theApproxXYZ,
0069 const Standard_Boolean theApproxU1V1,
0070 const Standard_Boolean theApproxU2V2,
0071 const Standard_Integer theMinNbPnts,
0072 NCollection_Vector<Standard_Integer>& theKnots);
0073
0074
0075 Standard_EXPORT static void BuildCurvature(
0076 const NCollection_LocalArray<Standard_Real>& theCoords,
0077 const Standard_Integer theDim,
0078 const math_Vector& thePars,
0079 TColStd_Array1OfReal& theCurv,
0080 Standard_Real& theMaxCurv);
0081
0082
0083 Standard_EXPORT static Approx_ParametrizationType DefineParType(const Handle(IntPatch_WLine)& theWL,
0084 const Standard_Integer theFpar, const Standard_Integer theLpar,
0085 const Standard_Boolean theApproxXYZ,
0086 const Standard_Boolean theApproxU1V1,
0087 const Standard_Boolean theApproxU2V2);
0088
0089
0090 private:
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102 static void ComputeKnotInds(const NCollection_LocalArray<Standard_Real>& theCoords,
0103 const Standard_Integer theDim,
0104 const math_Vector& thePars,
0105 NCollection_Sequence<Standard_Integer>& theInds);
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116 static Standard_Boolean InsKnotBefI(const Standard_Integer theI,
0117 const TColStd_Array1OfReal& theCurv,
0118 const NCollection_LocalArray<Standard_Real>& theCoords,
0119 const Standard_Integer theDim,
0120 NCollection_Sequence<Standard_Integer>& theInds,
0121 const Standard_Boolean ChkCurv);
0122
0123
0124
0125
0126
0127
0128
0129
0130 static void FilterKnots(NCollection_Sequence<Standard_Integer>& theInds,
0131 const Standard_Integer theMinNbPnts,
0132 NCollection_Vector<Standard_Integer>& theLKnots);
0133 };
0134
0135 #endif