File indexing completed on 2026-09-08 09:17:18
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef _SelectMgr_AxisIntersector_HeaderFile
0015 #define _SelectMgr_AxisIntersector_HeaderFile
0016
0017 #include <SelectMgr_BaseIntersector.hxx>
0018
0019 #include <gp_Ax1.hxx>
0020
0021
0022
0023 class SelectMgr_AxisIntersector : public SelectMgr_BaseIntersector
0024 {
0025 public:
0026
0027 Standard_EXPORT SelectMgr_AxisIntersector();
0028
0029
0030 Standard_EXPORT virtual ~SelectMgr_AxisIntersector();
0031
0032
0033 Standard_EXPORT void Init(const gp_Ax1& theAxis);
0034
0035
0036
0037 Standard_EXPORT virtual void Build() Standard_OVERRIDE;
0038
0039
0040
0041 Standard_EXPORT virtual void SetCamera(const Handle(Graphic3d_Camera)& theCamera)
0042 Standard_OVERRIDE;
0043
0044
0045 virtual Standard_Boolean IsScalable() const Standard_OVERRIDE { return false; }
0046
0047
0048
0049
0050
0051 Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) ScaleAndTransform(
0052 const Standard_Integer theScaleFactor,
0053 const gp_GTrsf& theTrsf,
0054 const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
0055
0056
0057
0058
0059 Standard_EXPORT virtual Handle(SelectMgr_BaseIntersector) CopyWithBuilder(
0060 const Handle(SelectMgr_FrustumBuilder)& theBuilder) const Standard_OVERRIDE;
0061
0062 public:
0063
0064 Standard_EXPORT virtual Standard_Boolean OverlapsBox(const SelectMgr_Vec3& theBoxMin,
0065 const SelectMgr_Vec3& theBoxMax,
0066 const SelectMgr_ViewClipRange& theClipRange,
0067 SelectBasics_PickResult& thePickResult) const
0068 Standard_OVERRIDE;
0069
0070
0071
0072 Standard_EXPORT virtual Standard_Boolean OverlapsBox(const SelectMgr_Vec3& theBoxMin,
0073 const SelectMgr_Vec3& theBoxMax,
0074 Standard_Boolean* theInside) const
0075 Standard_OVERRIDE;
0076
0077
0078 Standard_EXPORT virtual Standard_Boolean OverlapsPoint(
0079 const gp_Pnt& thePnt,
0080 const SelectMgr_ViewClipRange& theClipRange,
0081 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0082
0083
0084 Standard_EXPORT virtual Standard_Boolean OverlapsPoint(const gp_Pnt& thePnt) const
0085 Standard_OVERRIDE;
0086
0087
0088
0089
0090 Standard_EXPORT virtual Standard_Boolean OverlapsPolygon(
0091 const TColgp_Array1OfPnt& theArrayOfPnts,
0092 Select3D_TypeOfSensitivity theSensType,
0093 const SelectMgr_ViewClipRange& theClipRange,
0094 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0095
0096
0097 Standard_EXPORT virtual Standard_Boolean OverlapsSegment(
0098 const gp_Pnt& thePnt1,
0099 const gp_Pnt& thePnt2,
0100 const SelectMgr_ViewClipRange& theClipRange,
0101 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0102
0103
0104
0105
0106 Standard_EXPORT virtual Standard_Boolean OverlapsTriangle(
0107 const gp_Pnt& thePnt1,
0108 const gp_Pnt& thePnt2,
0109 const gp_Pnt& thePnt3,
0110 Select3D_TypeOfSensitivity theSensType,
0111 const SelectMgr_ViewClipRange& theClipRange,
0112 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0113
0114
0115
0116 Standard_EXPORT virtual Standard_Boolean OverlapsSphere(const gp_Pnt& theCenter,
0117 const Standard_Real theRadius,
0118 Standard_Boolean* theInside = NULL) const
0119 Standard_OVERRIDE;
0120
0121
0122
0123 Standard_EXPORT virtual Standard_Boolean OverlapsSphere(
0124 const gp_Pnt& theCenter,
0125 const Standard_Real theRadius,
0126 const SelectMgr_ViewClipRange& theClipRange,
0127 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0128
0129
0130
0131 Standard_EXPORT virtual Standard_Boolean OverlapsCylinder(
0132 const Standard_Real theBottomRad,
0133 const Standard_Real theTopRad,
0134 const Standard_Real theHeight,
0135 const gp_Trsf& theTrsf,
0136 const Standard_Boolean theIsHollow,
0137 const SelectMgr_ViewClipRange& theClipRange,
0138 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0139
0140
0141
0142 Standard_EXPORT virtual Standard_Boolean OverlapsCylinder(
0143 const Standard_Real theBottomRad,
0144 const Standard_Real theTopRad,
0145 const Standard_Real theHeight,
0146 const gp_Trsf& theTrsf,
0147 const Standard_Boolean theIsHollow,
0148 Standard_Boolean* theInside = NULL) const Standard_OVERRIDE;
0149
0150
0151
0152
0153
0154 Standard_EXPORT virtual Standard_Boolean OverlapsCircle(
0155 const Standard_Real theRadius,
0156 const gp_Trsf& theTrsf,
0157 const Standard_Boolean theIsFilled,
0158 const SelectMgr_ViewClipRange& theClipRange,
0159 SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
0160
0161
0162
0163
0164
0165 Standard_EXPORT virtual Standard_Boolean OverlapsCircle(const Standard_Real theRadius,
0166 const gp_Trsf& theTrsf,
0167 const Standard_Boolean theIsFilled,
0168 Standard_Boolean* theInside = NULL) const
0169 Standard_OVERRIDE;
0170
0171 public:
0172
0173 Standard_EXPORT virtual Standard_Real DistToGeometryCenter(const gp_Pnt& theCOG) const
0174 Standard_OVERRIDE;
0175
0176
0177
0178 Standard_EXPORT virtual gp_Pnt DetectedPoint(const Standard_Real theDepth) const
0179 Standard_OVERRIDE;
0180
0181
0182 Standard_EXPORT virtual const gp_Pnt& GetNearPnt() const Standard_OVERRIDE;
0183
0184
0185 Standard_EXPORT virtual const gp_Pnt& GetFarPnt() const Standard_OVERRIDE;
0186
0187
0188 Standard_EXPORT virtual const gp_Dir& GetViewRayDirection() const Standard_OVERRIDE;
0189
0190
0191 Standard_EXPORT virtual void DumpJson(Standard_OStream& theOStream,
0192 Standard_Integer theDepth = -1) const Standard_OVERRIDE;
0193
0194 protected:
0195
0196
0197
0198 Standard_EXPORT Standard_Boolean hasIntersection(const SelectMgr_Vec3& theBoxMin,
0199 const SelectMgr_Vec3& theBoxMax,
0200 Standard_Real& theTimeEnter,
0201 Standard_Real& theTimeLeave) const;
0202
0203
0204
0205 Standard_EXPORT Standard_Boolean hasIntersection(const gp_Pnt& thePnt,
0206 Standard_Real& theDepth) const;
0207
0208
0209
0210 Standard_EXPORT Standard_Boolean raySegmentDistance(const gp_Pnt& theSegPnt1,
0211 const gp_Pnt& theSegPnt2,
0212 SelectBasics_PickResult& thePickResult) const;
0213
0214
0215
0216 Standard_EXPORT Standard_Boolean
0217 rayPlaneIntersection(const gp_Vec& thePlane,
0218 const gp_Pnt& thePntOnPlane,
0219 SelectBasics_PickResult& thePickResult) const;
0220
0221 private:
0222 gp_Ax1 myAxis;
0223 };
0224
0225 #endif