File indexing completed on 2026-09-13 09:16:58
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _IntPatch_PrmPrmIntersection_HeaderFile
0018 #define _IntPatch_PrmPrmIntersection_HeaderFile
0019
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <IntPatch_Line.hxx>
0022 #include <NCollection_Sequence.hxx>
0023 #include <IntSurf_PntOn2S.hxx>
0024 #include <NCollection_List.hxx>
0025
0026 class Adaptor3d_TopolTool;
0027 class IntPatch_Polyhedron;
0028 class IntPatch_PrmPrmIntersection_T3Bits;
0029 class IntSurf_LineOn2S;
0030
0031
0032
0033
0034
0035
0036 class IntPatch_PrmPrmIntersection
0037 {
0038 public:
0039 DEFINE_STANDARD_ALLOC
0040
0041
0042 Standard_EXPORT IntPatch_PrmPrmIntersection();
0043
0044
0045
0046
0047 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0048 const IntPatch_Polyhedron& Polyhedron1,
0049 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0050 const occ::handle<Adaptor3d_Surface>& Caro2,
0051 const IntPatch_Polyhedron& Polyhedron2,
0052 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0053 const double TolTangency,
0054 const double Epsilon,
0055 const double Deflection,
0056 const double Increment);
0057
0058 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0059 const IntPatch_Polyhedron& Polyhedron1,
0060 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0061 const double TolTangency,
0062 const double Epsilon,
0063 const double Deflection,
0064 const double Increment);
0065
0066
0067
0068
0069 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0070 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0071 const occ::handle<Adaptor3d_Surface>& Caro2,
0072 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0073 const double TolTangency,
0074 const double Epsilon,
0075 const double Deflection,
0076 const double Increment,
0077 const bool ClearFlag = true);
0078
0079
0080
0081
0082 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0083 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0084 const occ::handle<Adaptor3d_Surface>& Caro2,
0085 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0086 const double TolTangency,
0087 const double Epsilon,
0088 const double Deflection,
0089 const double Increment,
0090 NCollection_List<IntSurf_PntOn2S>& ListOfPnts);
0091
0092
0093
0094
0095 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0096 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0097 const occ::handle<Adaptor3d_Surface>& Caro2,
0098 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0099 const double U1,
0100 const double V1,
0101 const double U2,
0102 const double V2,
0103 const double TolTangency,
0104 const double Epsilon,
0105 const double Deflection,
0106 const double Increment);
0107
0108
0109
0110
0111 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0112 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0113 const double TolTangency,
0114 const double Epsilon,
0115 const double Deflection,
0116 const double Increment);
0117
0118
0119
0120
0121
0122
0123
0124 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0125 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0126 const occ::handle<Adaptor3d_Surface>& Caro2,
0127 const IntPatch_Polyhedron& Polyhedron2,
0128 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0129 const double TolTangency,
0130 const double Epsilon,
0131 const double Deflection,
0132 const double Increment);
0133
0134
0135
0136
0137
0138
0139
0140 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Surface>& Caro1,
0141 const IntPatch_Polyhedron& Polyhedron1,
0142 const occ::handle<Adaptor3d_TopolTool>& Domain1,
0143 const occ::handle<Adaptor3d_Surface>& Caro2,
0144 const occ::handle<Adaptor3d_TopolTool>& Domain2,
0145 const double TolTangency,
0146 const double Epsilon,
0147 const double Deflection,
0148 const double Increment);
0149
0150
0151 bool IsDone() const;
0152
0153
0154 bool IsEmpty() const;
0155
0156
0157 int NbLines() const;
0158
0159
0160
0161 const occ::handle<IntPatch_Line>& Line(const int Index) const;
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175 Standard_EXPORT occ::handle<IntPatch_Line> NewLine(const occ::handle<Adaptor3d_Surface>& Caro1,
0176 const occ::handle<Adaptor3d_Surface>& Caro2,
0177 const int IndexLine,
0178 const int LowPoint,
0179 const int HighPoint,
0180 const int NbPoints) const;
0181
0182 int GrilleInteger(const int ix, const int iy, const int iz) const;
0183
0184 void IntegerGrille(const int t, int& ix, int& iy, int& iz) const;
0185
0186 int DansGrille(const int t) const;
0187
0188 int NbPointsGrille() const;
0189
0190 Standard_EXPORT void RemplitLin(const int x1,
0191 const int y1,
0192 const int z1,
0193 const int x2,
0194 const int y2,
0195 const int z2,
0196 IntPatch_PrmPrmIntersection_T3Bits& Map) const;
0197
0198 Standard_EXPORT void RemplitTri(const int x1,
0199 const int y1,
0200 const int z1,
0201 const int x2,
0202 const int y2,
0203 const int z2,
0204 const int x3,
0205 const int y3,
0206 const int z3,
0207 IntPatch_PrmPrmIntersection_T3Bits& Map) const;
0208
0209 Standard_EXPORT void Remplit(const int a,
0210 const int b,
0211 const int c,
0212 IntPatch_PrmPrmIntersection_T3Bits& Map) const;
0213
0214 int CodeReject(const double x1,
0215 const double y1,
0216 const double z1,
0217 const double x2,
0218 const double y2,
0219 const double z2,
0220 const double x3,
0221 const double y3,
0222 const double z3) const;
0223
0224 Standard_EXPORT void PointDepart(occ::handle<IntSurf_LineOn2S>& LineOn2S,
0225 const occ::handle<Adaptor3d_Surface>& S1,
0226 const int SU1,
0227 const int SV1,
0228 const occ::handle<Adaptor3d_Surface>& S2,
0229 const int SU2,
0230 const int SV2) const;
0231
0232 private:
0233 bool done;
0234 bool empt;
0235 NCollection_Sequence<occ::handle<IntPatch_Line>> SLin;
0236 };
0237
0238 #include <IntPatch_PrmPrmIntersection.lxx>
0239
0240 #endif