File indexing completed on 2026-07-17 08:36:09
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Select3D_SensitiveWire_HeaderFile
0018 #define _Select3D_SensitiveWire_HeaderFile
0019
0020 #include <Select3D_SensitiveSet.hxx>
0021
0022
0023
0024 class Select3D_SensitiveWire : public Select3D_SensitiveSet
0025 {
0026 public:
0027
0028
0029 Standard_EXPORT Select3D_SensitiveWire(const Handle(SelectMgr_EntityOwner)& theOwnerId);
0030
0031
0032 Standard_EXPORT void Add(const Handle(Select3D_SensitiveEntity)& theSensitive);
0033
0034
0035 Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
0036
0037 Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
0038
0039
0040 Standard_EXPORT const NCollection_Vector<Handle(Select3D_SensitiveEntity)>& GetEdges();
0041
0042
0043 Standard_EXPORT virtual void Set(const Handle(SelectMgr_EntityOwner)& theOwnerId)
0044 Standard_OVERRIDE;
0045
0046 Standard_EXPORT Handle(Select3D_SensitiveEntity) GetLastDetected() const;
0047
0048
0049
0050 Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE;
0051
0052
0053
0054 Standard_EXPORT virtual gp_Pnt CenterOfGeometry() const Standard_OVERRIDE;
0055
0056
0057 Standard_EXPORT virtual Standard_Integer Size() const Standard_OVERRIDE;
0058
0059
0060 Standard_EXPORT virtual Select3D_BndBox3d Box(const Standard_Integer theIdx) const
0061 Standard_OVERRIDE;
0062
0063
0064
0065 Standard_EXPORT virtual Standard_Real Center(const Standard_Integer theIdx,
0066 const Standard_Integer theAxis) const
0067 Standard_OVERRIDE;
0068
0069
0070 Standard_EXPORT virtual void Swap(const Standard_Integer theIdx1,
0071 const Standard_Integer theIdx2) Standard_OVERRIDE;
0072
0073
0074 Standard_EXPORT virtual void DumpJson(Standard_OStream& theOStream,
0075 Standard_Integer theDepth = -1) const Standard_OVERRIDE;
0076
0077 DEFINE_STANDARD_RTTIEXT(Select3D_SensitiveWire, Select3D_SensitiveSet)
0078
0079 protected:
0080
0081 Standard_EXPORT virtual Standard_Boolean overlapsElement(
0082 SelectBasics_PickResult& thePickResult,
0083 SelectBasics_SelectingVolumeManager& theMgr,
0084 Standard_Integer theElemIdx,
0085 Standard_Boolean theIsFullInside) Standard_OVERRIDE;
0086
0087
0088 Standard_EXPORT virtual Standard_Boolean elementIsInside(
0089 SelectBasics_SelectingVolumeManager& theMgr,
0090 Standard_Integer theElemIdx,
0091 Standard_Boolean theIsFullInside) Standard_OVERRIDE;
0092
0093
0094
0095 Standard_EXPORT virtual Standard_Real distanceToCOG(SelectBasics_SelectingVolumeManager& theMgr)
0096 Standard_OVERRIDE;
0097
0098 private:
0099
0100 NCollection_Vector<Handle(Select3D_SensitiveEntity)> myEntities;
0101 NCollection_Vector<Standard_Integer> myEntityIndexes;
0102 gp_Pnt myCenter;
0103 mutable Select3D_BndBox3d myBndBox;
0104
0105 };
0106
0107 DEFINE_STANDARD_HANDLE(Select3D_SensitiveWire, Select3D_SensitiveEntity)
0108
0109 #endif