File indexing completed on 2025-01-18 10:04:06
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 <TColgp_Array2OfPnt.hxx>
0024 #include <TColStd_Array1OfReal.hxx>
0025
0026 class IntCurveSurface_TheHCurveTool;
0027 class Adaptor3d_HSurfaceTool;
0028 class IntCurveSurface_ThePolygonOfHInter;
0029 class IntCurveSurface_ThePolygonToolOfHInter;
0030 class IntCurveSurface_ThePolyhedronOfHInter;
0031 class IntCurveSurface_ThePolyhedronToolOfHInter;
0032 class IntCurveSurface_TheInterferenceOfHInter;
0033 class IntCurveSurface_TheCSFunctionOfHInter;
0034 class IntCurveSurface_TheExactHInter;
0035 class IntCurveSurface_TheQuadCurvExactHInter;
0036 class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
0037 class Bnd_BoundSortBox;
0038 class gp_Lin;
0039 class gp_Circ;
0040 class gp_Elips;
0041 class gp_Parab;
0042 class gp_Hypr;
0043 class IntAna_IntConicQuad;
0044 class Bnd_Box;
0045
0046 class IntCurveSurface_HInter : public IntCurveSurface_Intersection
0047 {
0048 public:
0049
0050 DEFINE_STANDARD_ALLOC
0051
0052
0053
0054 Standard_EXPORT IntCurveSurface_HInter();
0055
0056
0057
0058 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface);
0059
0060
0061
0062
0063 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_Surface)& Surface);
0064
0065
0066
0067
0068
0069 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_Surface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
0070
0071
0072
0073
0074
0075 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_Surface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, Bnd_BoundSortBox& BndBSB);
0076
0077
0078
0079
0080 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
0081
0082
0083
0084
0085 protected:
0086
0087
0088
0089
0090 Standard_EXPORT void Perform (const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U0, const Standard_Real V0, const Standard_Real U1, const Standard_Real V1);
0091
0092 Standard_EXPORT void InternalPerformCurveQuadric (const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface);
0093
0094 Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_Surface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0095
0096 Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_Surface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Bnd_BoundSortBox& BSB);
0097
0098 Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_Curve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0099
0100 Standard_EXPORT void PerformConicSurf (const gp_Lin& Line, const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0101
0102 Standard_EXPORT void PerformConicSurf (const gp_Circ& Circle, const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0103
0104 Standard_EXPORT void PerformConicSurf (const gp_Elips& Ellipse, const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0105
0106 Standard_EXPORT void PerformConicSurf (const gp_Parab& Parab, const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0107
0108 Standard_EXPORT void PerformConicSurf (const gp_Hypr& Hyper, const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
0109
0110 Standard_EXPORT void AppendIntAna (const Handle(Adaptor3d_Curve)& Curve, const Handle(Adaptor3d_Surface)& Surface, const IntAna_IntConicQuad& InterAna);
0111
0112 Standard_EXPORT void AppendPoint (const Handle(Adaptor3d_Curve)& Curve, const Standard_Real w, const Handle(Adaptor3d_Surface)& Surface, const Standard_Real u, const Standard_Real v);
0113
0114 Standard_EXPORT void AppendSegment (const Handle(Adaptor3d_Curve)& Curve, const Standard_Real u0, const Standard_Real u1, const Handle(Adaptor3d_Surface)& Surface);
0115
0116
0117
0118
0119 private:
0120
0121
0122 Standard_EXPORT void DoSurface (const Handle(Adaptor3d_Surface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, TColgp_Array2OfPnt& pntsOnSurface, Bnd_Box& boxSurface, Standard_Real& gap);
0123
0124 Standard_EXPORT void DoNewBounds (const Handle(Adaptor3d_Surface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, const TColgp_Array2OfPnt& pntsOnSurface, const TColStd_Array1OfReal& X, const TColStd_Array1OfReal& Y, const TColStd_Array1OfReal& Z, TColStd_Array1OfReal& Bounds);
0125
0126
0127
0128
0129 };
0130
0131
0132
0133
0134
0135
0136
0137 #endif