Warning, file /include/opencascade/IntCurveSurface_HInter.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
0015
0016
0017 #ifndef _IntCurveSurface_HInter_HeaderFile
0018 #define _IntCurveSurface_HInter_HeaderFile
0019
0020 #include <Adaptor3d_Curve.hxx>
0021 #include <Adaptor3d_Surface.hxx>
0022 #include <IntCurveSurface_Intersection.hxx>
0023 #include <gp_Pnt.hxx>
0024 #include <NCollection_Array2.hxx>
0025 #include <NCollection_Array1.hxx>
0026
0027 class IntCurveSurface_TheHCurveTool;
0028 class Adaptor3d_HSurfaceTool;
0029 class IntCurveSurface_ThePolygonOfHInter;
0030 class IntCurveSurface_ThePolygonToolOfHInter;
0031 class IntCurveSurface_ThePolyhedronOfHInter;
0032 class IntCurveSurface_ThePolyhedronToolOfHInter;
0033 class IntCurveSurface_TheInterferenceOfHInter;
0034 class IntCurveSurface_TheCSFunctionOfHInter;
0035 class IntCurveSurface_TheExactHInter;
0036 class IntCurveSurface_TheQuadCurvExactHInter;
0037 class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
0038 class Bnd_BoundSortBox;
0039 class gp_Lin;
0040 class gp_Circ;
0041 class gp_Elips;
0042 class gp_Parab;
0043 class gp_Hypr;
0044 class IntAna_IntConicQuad;
0045 class Bnd_Box;
0046
0047 class IntCurveSurface_HInter : public IntCurveSurface_Intersection
0048 {
0049 public:
0050 DEFINE_STANDARD_ALLOC
0051
0052
0053 Standard_EXPORT IntCurveSurface_HInter();
0054
0055
0056
0057 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0058 const occ::handle<Adaptor3d_Surface>& Surface);
0059
0060
0061
0062
0063 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0064 const IntCurveSurface_ThePolygonOfHInter& Polygon,
0065 const occ::handle<Adaptor3d_Surface>& Surface);
0066
0067
0068
0069
0070
0071 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0072 const IntCurveSurface_ThePolygonOfHInter& ThePolygon,
0073 const occ::handle<Adaptor3d_Surface>& Surface,
0074 const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
0075
0076
0077
0078
0079
0080 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0081 const IntCurveSurface_ThePolygonOfHInter& ThePolygon,
0082 const occ::handle<Adaptor3d_Surface>& Surface,
0083 const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron,
0084 Bnd_BoundSortBox& BndBSB);
0085
0086
0087
0088
0089 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0090 const occ::handle<Adaptor3d_Surface>& Surface,
0091 const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
0092
0093 protected:
0094
0095
0096 Standard_EXPORT void Perform(const occ::handle<Adaptor3d_Curve>& Curve,
0097 const occ::handle<Adaptor3d_Surface>& Surface,
0098 const double U0,
0099 const double V0,
0100 const double U1,
0101 const double V1);
0102
0103 Standard_EXPORT void InternalPerformCurveQuadric(const occ::handle<Adaptor3d_Curve>& Curve,
0104 const occ::handle<Adaptor3d_Surface>& Surface);
0105
0106 Standard_EXPORT void InternalPerform(const occ::handle<Adaptor3d_Curve>& Curve,
0107 const IntCurveSurface_ThePolygonOfHInter& Polygon,
0108 const occ::handle<Adaptor3d_Surface>& Surface,
0109 const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron,
0110 const double U1,
0111 const double V1,
0112 const double U2,
0113 const double V2);
0114
0115 Standard_EXPORT void InternalPerform(const occ::handle<Adaptor3d_Curve>& Curve,
0116 const IntCurveSurface_ThePolygonOfHInter& Polygon,
0117 const occ::handle<Adaptor3d_Surface>& Surface,
0118 const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron,
0119 const double U1,
0120 const double V1,
0121 const double U2,
0122 const double V2,
0123 Bnd_BoundSortBox& BSB);
0124
0125 Standard_EXPORT void InternalPerform(const occ::handle<Adaptor3d_Curve>& Curve,
0126 const IntCurveSurface_ThePolygonOfHInter& Polygon,
0127 const occ::handle<Adaptor3d_Surface>& Surface,
0128 const double U1,
0129 const double V1,
0130 const double U2,
0131 const double V2);
0132
0133 Standard_EXPORT void PerformConicSurf(const gp_Lin& Line,
0134 const occ::handle<Adaptor3d_Curve>& Curve,
0135 const occ::handle<Adaptor3d_Surface>& Surface,
0136 const double U1,
0137 const double V1,
0138 const double U2,
0139 const double V2);
0140
0141 Standard_EXPORT void PerformConicSurf(const gp_Circ& Circle,
0142 const occ::handle<Adaptor3d_Curve>& Curve,
0143 const occ::handle<Adaptor3d_Surface>& Surface,
0144 const double U1,
0145 const double V1,
0146 const double U2,
0147 const double V2);
0148
0149 Standard_EXPORT void PerformConicSurf(const gp_Elips& Ellipse,
0150 const occ::handle<Adaptor3d_Curve>& Curve,
0151 const occ::handle<Adaptor3d_Surface>& Surface,
0152 const double U1,
0153 const double V1,
0154 const double U2,
0155 const double V2);
0156
0157 Standard_EXPORT void PerformConicSurf(const gp_Parab& Parab,
0158 const occ::handle<Adaptor3d_Curve>& Curve,
0159 const occ::handle<Adaptor3d_Surface>& Surface,
0160 const double U1,
0161 const double V1,
0162 const double U2,
0163 const double V2);
0164
0165 Standard_EXPORT void PerformConicSurf(const gp_Hypr& Hyper,
0166 const occ::handle<Adaptor3d_Curve>& Curve,
0167 const occ::handle<Adaptor3d_Surface>& Surface,
0168 const double U1,
0169 const double V1,
0170 const double U2,
0171 const double V2);
0172
0173 Standard_EXPORT void AppendIntAna(const occ::handle<Adaptor3d_Curve>& Curve,
0174 const occ::handle<Adaptor3d_Surface>& Surface,
0175 const IntAna_IntConicQuad& InterAna);
0176
0177 Standard_EXPORT void AppendPoint(const occ::handle<Adaptor3d_Curve>& Curve,
0178 const double w,
0179 const occ::handle<Adaptor3d_Surface>& Surface,
0180 const double u,
0181 const double v);
0182
0183 Standard_EXPORT void AppendSegment(const occ::handle<Adaptor3d_Curve>& Curve,
0184 const double u0,
0185 const double u1,
0186 const occ::handle<Adaptor3d_Surface>& Surface);
0187
0188 private:
0189 Standard_EXPORT void DoSurface(const occ::handle<Adaptor3d_Surface>& surface,
0190 const double u0,
0191 const double u1,
0192 const double v0,
0193 const double v1,
0194 NCollection_Array2<gp_Pnt>& pntsOnSurface,
0195 Bnd_Box& boxSurface,
0196 double& gap);
0197
0198 Standard_EXPORT void DoNewBounds(const occ::handle<Adaptor3d_Surface>& surface,
0199 const double u0,
0200 const double u1,
0201 const double v0,
0202 const double v1,
0203 const NCollection_Array2<gp_Pnt>& pntsOnSurface,
0204 const NCollection_Array1<double>& X,
0205 const NCollection_Array1<double>& Y,
0206 const NCollection_Array1<double>& Z,
0207 NCollection_Array1<double>& Bounds);
0208 };
0209
0210 #endif