File indexing completed on 2026-09-10 09:17:19
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 class IntPatch_Intersection
0032 {
0033 public:
0034 DEFINE_STANDARD_ALLOC
0035
0036 Standard_EXPORT IntPatch_Intersection();
0037
0038 Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_Surface)& S1,
0039 const Handle(Adaptor3d_TopolTool)& D1,
0040 const Handle(Adaptor3d_Surface)& S2,
0041 const Handle(Adaptor3d_TopolTool)& D2,
0042 const Standard_Real TolArc,
0043 const Standard_Real TolTang);
0044
0045 Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_Surface)& S1,
0046 const Handle(Adaptor3d_TopolTool)& D1,
0047 const Standard_Real TolArc,
0048 const Standard_Real TolTang);
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068 Standard_EXPORT void SetTolerances(const Standard_Real TolArc,
0069 const Standard_Real TolTang,
0070 const Standard_Real UVMaxStep,
0071 const Standard_Real Fleche);
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084 Standard_EXPORT void Perform(const Handle(Adaptor3d_Surface)& S1,
0085 const Handle(Adaptor3d_TopolTool)& D1,
0086 const Handle(Adaptor3d_Surface)& S2,
0087 const Handle(Adaptor3d_TopolTool)& D2,
0088 const Standard_Real TolArc,
0089 const Standard_Real TolTang,
0090 const Standard_Boolean isGeomInt = Standard_True,
0091 const Standard_Boolean theIsReqToKeepRLine = Standard_False,
0092 const Standard_Boolean theIsReqToPostWLProc = Standard_True);
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107 Standard_EXPORT void Perform(const Handle(Adaptor3d_Surface)& S1,
0108 const Handle(Adaptor3d_TopolTool)& D1,
0109 const Handle(Adaptor3d_Surface)& S2,
0110 const Handle(Adaptor3d_TopolTool)& D2,
0111 const Standard_Real TolArc,
0112 const Standard_Real TolTang,
0113 IntSurf_ListOfPntOn2S& LOfPnts,
0114 const Standard_Boolean isGeomInt = Standard_True,
0115 const Standard_Boolean theIsReqToKeepRLine = Standard_False,
0116 const Standard_Boolean theIsReqToPostWLProc = Standard_True);
0117
0118
0119 Standard_EXPORT void Perform(const Handle(Adaptor3d_Surface)& S1,
0120 const Handle(Adaptor3d_TopolTool)& D1,
0121 const Handle(Adaptor3d_Surface)& S2,
0122 const Handle(Adaptor3d_TopolTool)& D2,
0123 const Standard_Real U1,
0124 const Standard_Real V1,
0125 const Standard_Real U2,
0126 const Standard_Real V2,
0127 const Standard_Real TolArc,
0128 const Standard_Real TolTang);
0129
0130
0131 Standard_EXPORT void Perform(const Handle(Adaptor3d_Surface)& S1,
0132 const Handle(Adaptor3d_TopolTool)& D1,
0133 const Standard_Real TolArc,
0134 const Standard_Real TolTang);
0135
0136
0137 Standard_Boolean IsDone() const;
0138
0139
0140 Standard_Boolean IsEmpty() const;
0141
0142
0143
0144
0145 Standard_Boolean TangentFaces() const;
0146
0147
0148
0149
0150
0151
0152 Standard_Boolean OppositeFaces() const;
0153
0154
0155 Standard_Integer NbPnts() const;
0156
0157
0158
0159 const IntPatch_Point& Point(const Standard_Integer Index) const;
0160
0161
0162 Standard_Integer NbLines() const;
0163
0164
0165
0166 const Handle(IntPatch_Line)& Line(const Standard_Integer Index) const;
0167
0168 Standard_EXPORT const IntPatch_SequenceOfLine& SequenceOfLine() const;
0169
0170
0171
0172 Standard_EXPORT void Dump(const Standard_Integer Mode,
0173 const Handle(Adaptor3d_Surface)& S1,
0174 const Handle(Adaptor3d_TopolTool)& D1,
0175 const Handle(Adaptor3d_Surface)& S2,
0176 const Handle(Adaptor3d_TopolTool)& D2) const;
0177
0178
0179
0180
0181 Standard_EXPORT static Standard_Boolean CheckSingularPoints(
0182 const Handle(Adaptor3d_Surface)& theS1,
0183 const Handle(Adaptor3d_TopolTool)& theD1,
0184 const Handle(Adaptor3d_Surface)& theS2,
0185 Standard_Real& theDist);
0186
0187
0188 Standard_EXPORT static Standard_Real DefineUVMaxStep(const Handle(Adaptor3d_Surface)& theS1,
0189 const Handle(Adaptor3d_TopolTool)& theD1,
0190 const Handle(Adaptor3d_Surface)& theS2,
0191 const Handle(Adaptor3d_TopolTool)& theD2);
0192
0193
0194 Standard_EXPORT static void PrepareSurfaces(
0195 const Handle(Adaptor3d_Surface)& theS1,
0196 const Handle(Adaptor3d_TopolTool)& theD1,
0197 const Handle(Adaptor3d_Surface)& theS2,
0198 const Handle(Adaptor3d_TopolTool)& theD2,
0199 const Standard_Real Tol,
0200 NCollection_Vector<Handle(Adaptor3d_Surface)>& theSeqHS1,
0201 NCollection_Vector<Handle(Adaptor3d_Surface)>& theSeqHS2);
0202
0203 protected:
0204 private:
0205 Standard_EXPORT void ParamParamPerfom(const Handle(Adaptor3d_Surface)& S1,
0206 const Handle(Adaptor3d_TopolTool)& D1,
0207 const Handle(Adaptor3d_Surface)& S2,
0208 const Handle(Adaptor3d_TopolTool)& D2,
0209 const Standard_Real TolArc,
0210 const Standard_Real TolTang,
0211 IntSurf_ListOfPntOn2S& LOfPnts,
0212 const GeomAbs_SurfaceType typs1,
0213 const GeomAbs_SurfaceType typs2);
0214
0215
0216
0217
0218
0219
0220
0221 Standard_EXPORT void GeomGeomPerfom(const Handle(Adaptor3d_Surface)& S1,
0222 const Handle(Adaptor3d_TopolTool)& D1,
0223 const Handle(Adaptor3d_Surface)& S2,
0224 const Handle(Adaptor3d_TopolTool)& D2,
0225 const Standard_Real TolArc,
0226 const Standard_Real TolTang,
0227 IntSurf_ListOfPntOn2S& LOfPnts,
0228 const GeomAbs_SurfaceType typs1,
0229 const GeomAbs_SurfaceType typs2,
0230 const Standard_Boolean theIsReqToKeepRLine);
0231
0232 Standard_EXPORT void GeomParamPerfom(const Handle(Adaptor3d_Surface)& S1,
0233 const Handle(Adaptor3d_TopolTool)& D1,
0234 const Handle(Adaptor3d_Surface)& S2,
0235 const Handle(Adaptor3d_TopolTool)& D2,
0236 const Standard_Boolean isNotAnalitical,
0237 const GeomAbs_SurfaceType typs1,
0238 const GeomAbs_SurfaceType typs2);
0239
0240 Standard_Boolean done;
0241 Standard_Boolean empt;
0242 Standard_Boolean tgte;
0243 Standard_Boolean oppo;
0244 IntPatch_SequenceOfPoint spnt;
0245 IntPatch_SequenceOfLine slin;
0246 Standard_Real myTolArc;
0247 Standard_Real myTolTang;
0248 Standard_Real myUVMaxStep;
0249 Standard_Real myFleche;
0250 Standard_Boolean myIsStartPnt;
0251 Standard_Real myU1Start;
0252 Standard_Real myV1Start;
0253 Standard_Real myU2Start;
0254 Standard_Real myV2Start;
0255 };
0256
0257 #include <IntPatch_Intersection.lxx>
0258
0259 #endif