X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketcherPrs%2FSketcherPrs_SensitivePoint.h;h=000df1a4fed08076817643170735018073764da8;hb=f98f887290d4e2b4bd6618389911e82b6b9674f3;hp=bc3628b8a256d39f1cec6b81f8d64d2efa0e4e33;hpb=a0f9fa9b8b14687a645ff6c92231d3a927167d68;p=modules%2Fshaper.git diff --git a/src/SketcherPrs/SketcherPrs_SensitivePoint.h b/src/SketcherPrs/SketcherPrs_SensitivePoint.h index bc3628b8a..000df1a4f 100644 --- a/src/SketcherPrs/SketcherPrs_SensitivePoint.h +++ b/src/SketcherPrs/SketcherPrs_SensitivePoint.h @@ -8,53 +8,54 @@ #define SketcherPrs_SensitivePoint_H #include -#include -#include #include DEFINE_STANDARD_HANDLE(SketcherPrs_SensitivePoint, Select3D_SensitiveEntity) +/** +* \ingroup GUI +* This sensitive point is done in order to optimize process of the sinzitive area update +* It referes on point array directly and this lets to avoid procedure of the point synchronisation +*/ class SketcherPrs_SensitivePoint : public Select3D_SensitiveEntity { public: //! Constructs a sensitive point object defined by the - //! owner OwnerId and the point Point. - Standard_EXPORT SketcherPrs_SensitivePoint(const Handle(SelectBasics_EntityOwner)& OwnerId, - const Handle(Graphic3d_ArrayOfPoints)& thePntArray, int theId); - - //! Converts the stored 3D point into a 2D point according - //! to ; this method is called by the selection Manager. - Standard_EXPORT void Project (const Handle(Select3D_Projector)& aProjector) ; - - //! stores in the 2D sensitive box which represents - //! the point area in the selection process. - Standard_EXPORT void Areas (SelectBasics_ListOfBox2d& aresult) ; - - Standard_EXPORT Handle(Select3D_SensitiveEntity) GetConnected (const TopLoc_Location& aLocation) ; - - //! Checks whether the sensitive entity matches the picking - //! detection area (close to the picking line). - //! For details please refer to base class declaration. - Standard_EXPORT Standard_Boolean Matches (const SelectBasics_PickArgs& thePickArgs, Standard_Real& theMatchDMin, Standard_Real& theMatchDepth) ; - - Standard_EXPORT Standard_Boolean Matches (const Standard_Real XMin, const Standard_Real YMin, const Standard_Real XMax, const Standard_Real YMax, const Standard_Real aTol) ; - - Standard_EXPORT virtual Standard_Boolean Matches (const TColgp_Array1OfPnt2d& Polyline, const Bnd_Box2d& aBox, const Standard_Real aTol) ; - - Standard_EXPORT Standard_Real ComputeDepth (const gp_Lin& EyeLine) const; + //! \param OwnerId an Id of the Owner. + //! \param theId and Id of its point + Standard_EXPORT SketcherPrs_SensitivePoint(const Handle(SelectBasics_EntityOwner)& OwnerId, int theId); + /// Returns number of sub-elements + Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE; + + //! Update location of the point + Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE; + + //! Checks whether the point overlaps current selecting volume + //! \param theMgr selection manager + //! \param thePickResult returns pick result + Standard_EXPORT virtual Standard_Boolean Matches (SelectBasics_SelectingVolumeManager& theMgr, + SelectBasics_PickResult& thePickResult) Standard_OVERRIDE; + //! Returns the point used at the time of construction. - Standard_EXPORT gp_Pnt Point() const; + Standard_EXPORT gp_Pnt Point() const; + + //! Returns center of point. If location transformation + //! is set, it will be applied + Standard_EXPORT virtual gp_Pnt CenterOfGeometry() const Standard_OVERRIDE; + + //! Returns bounding box of the point. If location + //! transformation is set, it will be applied + Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE; - Standard_EXPORT virtual void Dump (Standard_OStream& S, const Standard_Boolean FullDump = Standard_True) const; + /// Clear sub-elements + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; DEFINE_STANDARD_RTTI(SketcherPrs_SensitivePoint) private: int myId; - Handle(Graphic3d_ArrayOfPoints) myPntArray; - Select3D_Pnt2d myprojpt; };