File indexing completed on 2025-01-18 10:04:09
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _IntPatch_Intersection_HeaderFile
0018 #define _IntPatch_Intersection_HeaderFile
0019
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <IntPatch_SequenceOfPoint.hxx>
0022 #include <IntPatch_SequenceOfLine.hxx>
0023 #include <IntSurf_ListOfPntOn2S.hxx>
0024 #include <GeomAbs_SurfaceType.hxx>
0025 #include <NCollection_Vector.hxx>
0026
0027 class Adaptor3d_TopolTool;
0028
0029
0030
0031
0032 class IntPatch_Intersection
0033 {
0034 public:
0035
0036 DEFINE_STANDARD_ALLOC
0037
0038
0039 Standard_EXPORT IntPatch_Intersection();
0040
0041 Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang);
0042
0043 Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Standard_Real TolArc, const Standard_Real TolTang);
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063 Standard_EXPORT void SetTolerances (const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Real UVMaxStep, const Standard_Real Fleche);
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076 Standard_EXPORT void Perform (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Boolean isGeomInt = Standard_True, const Standard_Boolean theIsReqToKeepRLine = Standard_False, const Standard_Boolean theIsReqToPostWLProc = Standard_True);
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 Standard_EXPORT void Perform (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const Standard_Boolean isGeomInt = Standard_True, const Standard_Boolean theIsReqToKeepRLine = Standard_False, const Standard_Boolean theIsReqToPostWLProc = Standard_True);
0092
0093
0094 Standard_EXPORT void Perform (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real TolArc, const Standard_Real TolTang);
0095
0096
0097 Standard_EXPORT void Perform (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Standard_Real TolArc, const Standard_Real TolTang);
0098
0099
0100 Standard_Boolean IsDone() const;
0101
0102
0103 Standard_Boolean IsEmpty() const;
0104
0105
0106
0107
0108 Standard_Boolean TangentFaces() const;
0109
0110
0111
0112
0113
0114
0115 Standard_Boolean OppositeFaces() const;
0116
0117
0118 Standard_Integer NbPnts() const;
0119
0120
0121
0122 const IntPatch_Point& Point (const Standard_Integer Index) const;
0123
0124
0125 Standard_Integer NbLines() const;
0126
0127
0128
0129 const Handle(IntPatch_Line)& Line (const Standard_Integer Index) const;
0130
0131 Standard_EXPORT const IntPatch_SequenceOfLine& SequenceOfLine() const;
0132
0133
0134
0135 Standard_EXPORT void Dump (const Standard_Integer Mode, const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2) const;
0136
0137
0138
0139
0140 Standard_EXPORT static Standard_Boolean CheckSingularPoints(
0141 const Handle(Adaptor3d_Surface)& theS1,
0142 const Handle(Adaptor3d_TopolTool)& theD1,
0143 const Handle(Adaptor3d_Surface)& theS2,
0144 Standard_Real& theDist);
0145
0146
0147 Standard_EXPORT static Standard_Real DefineUVMaxStep(
0148 const Handle(Adaptor3d_Surface)& theS1,
0149 const Handle(Adaptor3d_TopolTool)& theD1,
0150 const Handle(Adaptor3d_Surface)& theS2,
0151 const Handle(Adaptor3d_TopolTool)& theD2);
0152
0153
0154 Standard_EXPORT static void PrepareSurfaces(
0155 const Handle(Adaptor3d_Surface)& theS1,
0156 const Handle(Adaptor3d_TopolTool)& theD1,
0157 const Handle(Adaptor3d_Surface)& theS2,
0158 const Handle(Adaptor3d_TopolTool)& theD2,
0159 const Standard_Real Tol,
0160 NCollection_Vector< Handle(Adaptor3d_Surface)>& theSeqHS1,
0161 NCollection_Vector< Handle(Adaptor3d_Surface)>& theSeqHS2);
0162
0163 protected:
0164
0165
0166
0167
0168
0169 private:
0170
0171
0172 Standard_EXPORT void ParamParamPerfom (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2);
0173
0174
0175
0176
0177
0178
0179
0180 Standard_EXPORT void GeomGeomPerfom (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2, const Standard_Boolean theIsReqToKeepRLine);
0181
0182 Standard_EXPORT void GeomParamPerfom (const Handle(Adaptor3d_Surface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_Surface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Boolean isNotAnalitical, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2);
0183
0184
0185 Standard_Boolean done;
0186 Standard_Boolean empt;
0187 Standard_Boolean tgte;
0188 Standard_Boolean oppo;
0189 IntPatch_SequenceOfPoint spnt;
0190 IntPatch_SequenceOfLine slin;
0191 Standard_Real myTolArc;
0192 Standard_Real myTolTang;
0193 Standard_Real myUVMaxStep;
0194 Standard_Real myFleche;
0195 Standard_Boolean myIsStartPnt;
0196 Standard_Real myU1Start;
0197 Standard_Real myV1Start;
0198 Standard_Real myU2Start;
0199 Standard_Real myV2Start;
0200
0201
0202 };
0203
0204
0205 #include <IntPatch_Intersection.lxx>
0206
0207
0208
0209
0210
0211 #endif