0027477: Visualization - Select3D_SensitiveCircle always return infinite depth value...
[occt.git] / src / Select3D / Select3D_SensitiveCircle.hxx
index 6b109fa..a575130 100644 (file)
@@ -25,9 +25,7 @@
 
 #include <Select3D_SensitivePoly.hxx>
 #include <Select3D_Pnt.hxx>
-#include <Handle_Geom_Circle.hxx>
-#include <Handle_SelectBasics_EntityOwner.hxx>
-#include <Handle_TColgp_HArray1OfPnt.hxx>
+#include <TColgp_HArray1OfPnt.hxx>
 #include <SelectMgr_SelectingVolumeManager.hxx>
 #include <Select3D_TypeOfSensitivity.hxx>
 
@@ -35,8 +33,6 @@ class Geom_Circle;
 class Standard_ConstructionError;
 class Standard_OutOfRange;
 class SelectBasics_EntityOwner;
-class TColgp_HArray1OfPnt;
-class TColgp_Array1OfPnt;
 class gp_Pnt;
 class TopLoc_Location;
 
@@ -103,7 +99,13 @@ public:
   //! Builds BVH tree for a circle's edge segments if needed
   Standard_EXPORT virtual void BVH() Standard_OVERRIDE;
 
-  DEFINE_STANDARD_RTTI(Select3D_SensitiveCircle, Select3D_SensitivePoly)
+  DEFINE_STANDARD_RTTIEXT(Select3D_SensitiveCircle,Select3D_SensitivePoly)
+
+protected:
+
+  //! Calculates distance from the 3d projection of used-picked screen point
+  //! to center of the geometry
+  virtual Standard_Real distanceToCOG (SelectBasics_SelectingVolumeManager& theMgr) Standard_OVERRIDE;
 
 private:
 
@@ -114,7 +116,7 @@ private:
 
   Select3D_TypeOfSensitivity mySensType;     //!< True if type of selection is interior, false otherwise
   gp_Pnt                     myCenter3D;       //!< Center of a circle
-  Handle_Geom_Circle         myCircle;         //!< Points of the circle
+  Handle(Geom_Circle)         myCircle;         //!< Points of the circle
   Standard_Real              myStart;          //!< Sensitive arc parameter
   Standard_Real              myEnd;            //!< Sensitive arc parameter
 };