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 <Approx_ParametrizationType.hxx>
0018 #include <NCollection_List.hxx>
0019 #include <NCollection_LocalArray.hxx>
0020 #include <NCollection_Sequence.hxx>
0021 #include <NCollection_Vector.hxx>
0022 #include <Standard_Boolean.hxx>
0023 #include <Standard_DefineAlloc.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <Standard_Macro.hxx>
0026 #include <Standard_Real.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028 #include <TColgp_Array1OfPnt.hxx>
0029 #include <TColgp_Array1OfPnt2d.hxx>
0030 #include <math_Vector.hxx>
0031
0032 class IntPatch_WLine;
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 class ApproxInt_KnotTools
0049 {
0050 public:
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(const NCollection_LocalArray<Standard_Real>& theCoords,
0076 const Standard_Integer theDim,
0077 const math_Vector& thePars,
0078 TColStd_Array1OfReal& theCurv,
0079 Standard_Real& theMaxCurv);
0080
0081
0082 Standard_EXPORT static Approx_ParametrizationType DefineParType(
0083 const Handle(IntPatch_WLine)& theWL,
0084 const Standard_Integer theFpar,
0085 const Standard_Integer theLpar,
0086 const Standard_Boolean theApproxXYZ,
0087 const Standard_Boolean theApproxU1V1,
0088 const Standard_Boolean theApproxU2V2);
0089
0090 private:
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101 static void ComputeKnotInds(const NCollection_LocalArray<Standard_Real>& theCoords,
0102 const Standard_Integer theDim,
0103 const math_Vector& thePars,
0104 NCollection_Sequence<Standard_Integer>& theInds);
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115 static Standard_Boolean InsKnotBefI(const Standard_Integer theI,
0116 const TColStd_Array1OfReal& theCurv,
0117 const NCollection_LocalArray<Standard_Real>& theCoords,
0118 const Standard_Integer theDim,
0119 NCollection_Sequence<Standard_Integer>& theInds,
0120 const Standard_Boolean ChkCurv);
0121
0122
0123
0124
0125
0126
0127
0128
0129 static void FilterKnots(NCollection_Sequence<Standard_Integer>& theInds,
0130 const Standard_Integer theMinNbPnts,
0131 NCollection_Vector<Standard_Integer>& theLKnots);
0132 };
0133
0134 #endif