Open CASCADE Technology  7.3.0
Public Types | Public Member Functions | Protected Attributes

SelectBasics_SelectingVolumeManager Class Referenceabstract

This class provides an interface for selecting volume manager, which is responsible for all overlap detection methods and calculation of minimum depth, distance to center of geometry and detected closest point on entity. More...

#include <SelectBasics_SelectingVolumeManager.hxx>

Inheritance diagram for SelectBasics_SelectingVolumeManager:
Inheritance graph
[legend]

Public Types

enum  SelectionType { Point, Box, Polyline, Unknown }
 Available selection types. More...
 

Public Member Functions

 SelectBasics_SelectingVolumeManager ()
 
virtual ~SelectBasics_SelectingVolumeManager ()
 
virtual Standard_Integer GetActiveSelectionType () const =0
 
virtual Standard_Boolean Overlaps (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by box theBox. More...
 
virtual Standard_Boolean Overlaps (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, Standard_Boolean *theInside=NULL)=0
 Returns true if selecting volume is overlapped by axis-aligned bounding box with minimum corner at point theMinPt and maximum at point theMaxPt. More...
 
virtual Standard_Boolean Overlaps (const gp_Pnt &thePnt, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by point thePnt. More...
 
virtual Standard_Boolean Overlaps (const gp_Pnt &thePnt)=0
 Returns true if selecting volume is overlapped by point thePnt. Does not perform depth calculation, so this method is defined as helper function for inclusion test. More...
 
virtual Standard_Boolean Overlaps (const Handle< TColgp_HArray1OfPnt > &theArrayOfPts, Standard_Integer theSensType, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by planar convex polygon, which points are stored in theArrayOfPts, taking into account sensitivity type theSensType. More...
 
virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt &theArrayOfPts, Standard_Integer theSensType, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by planar convex polygon, which points are stored in theArrayOfPts, taking into account sensitivity type theSensType. More...
 
virtual Standard_Boolean Overlaps (const gp_Pnt &thePt1, const gp_Pnt &thePt2, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by line segment with start point at thePt1 and end point at thePt2. More...
 
virtual Standard_Boolean Overlaps (const gp_Pnt &thePt1, const gp_Pnt &thePt2, const gp_Pnt &thePt3, Standard_Integer theSensType, Standard_Real &theDepth)=0
 Returns true if selecting volume is overlapped by triangle with vertices thePt1, thePt2 and thePt3, taking into account sensitivity type theSensType. More...
 
virtual Standard_Real DistToGeometryCenter (const gp_Pnt &theCOG)=0
 Calculates distance from 3d projection of user-defined selection point to the given point theCOG. More...
 
virtual gp_Pnt DetectedPoint (const Standard_Real theDepth) const =0
 
virtual Standard_Boolean IsOverlapAllowed () const =0
 
virtual gp_Pnt GetNearPickedPnt () const =0
 Valid only for point and rectangular selection. Returns projection of 2d mouse picked point or projection of center of 2d rectangle (for point and rectangular selection correspondingly) onto near view frustum plane. More...
 
virtual gp_Pnt GetFarPickedPnt () const =0
 Valid only for point and rectangular selection. Returns projection of 2d mouse picked point or projection of center of 2d rectangle (for point and rectangular selection correspondingly) onto far view frustum plane. More...
 
virtual void GetPlanes (NCollection_Vector< NCollection_Vec4< Standard_Real > > &thePlaneEquations) const =0
 Stores plane equation coefficients (in the following form: Ax + By + Cz + D = 0) to the given vector. More...
 

Protected Attributes

SelectionType myActiveSelectionType
 Active selection type: point, box or polyline. More...
 

Detailed Description

This class provides an interface for selecting volume manager, which is responsible for all overlap detection methods and calculation of minimum depth, distance to center of geometry and detected closest point on entity.

Member Enumeration Documentation

◆ SelectionType

Available selection types.

Enumerator
Point 
Box 
Polyline 
Unknown 

Constructor & Destructor Documentation

◆ SelectBasics_SelectingVolumeManager()

SelectBasics_SelectingVolumeManager::SelectBasics_SelectingVolumeManager ( )
inline

◆ ~SelectBasics_SelectingVolumeManager()

virtual SelectBasics_SelectingVolumeManager::~SelectBasics_SelectingVolumeManager ( )
inlinevirtual

Member Function Documentation

◆ DetectedPoint()

virtual gp_Pnt SelectBasics_SelectingVolumeManager::DetectedPoint ( const Standard_Real  theDepth) const
pure virtual

◆ DistToGeometryCenter()

virtual Standard_Real SelectBasics_SelectingVolumeManager::DistToGeometryCenter ( const gp_Pnt theCOG)
pure virtual

Calculates distance from 3d projection of user-defined selection point to the given point theCOG.

Implemented in SelectMgr_SelectingVolumeManager.

◆ GetActiveSelectionType()

virtual Standard_Integer SelectBasics_SelectingVolumeManager::GetActiveSelectionType ( ) const
pure virtual

◆ GetFarPickedPnt()

virtual gp_Pnt SelectBasics_SelectingVolumeManager::GetFarPickedPnt ( ) const
pure virtual

Valid only for point and rectangular selection. Returns projection of 2d mouse picked point or projection of center of 2d rectangle (for point and rectangular selection correspondingly) onto far view frustum plane.

Implemented in SelectMgr_SelectingVolumeManager.

◆ GetNearPickedPnt()

virtual gp_Pnt SelectBasics_SelectingVolumeManager::GetNearPickedPnt ( ) const
pure virtual

Valid only for point and rectangular selection. Returns projection of 2d mouse picked point or projection of center of 2d rectangle (for point and rectangular selection correspondingly) onto near view frustum plane.

Implemented in SelectMgr_SelectingVolumeManager.

◆ GetPlanes()

virtual void SelectBasics_SelectingVolumeManager::GetPlanes ( NCollection_Vector< NCollection_Vec4< Standard_Real > > &  thePlaneEquations) const
pure virtual

Stores plane equation coefficients (in the following form: Ax + By + Cz + D = 0) to the given vector.

◆ IsOverlapAllowed()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::IsOverlapAllowed ( ) const
pure virtual

◆ Overlaps() [1/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const NCollection_Vec3< Standard_Real > &  theBoxMin,
const NCollection_Vec3< Standard_Real > &  theBoxMax,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by box theBox.

◆ Overlaps() [2/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const NCollection_Vec3< Standard_Real > &  theBoxMin,
const NCollection_Vec3< Standard_Real > &  theBoxMax,
Standard_Boolean theInside = NULL 
)
pure virtual

Returns true if selecting volume is overlapped by axis-aligned bounding box with minimum corner at point theMinPt and maximum at point theMaxPt.

◆ Overlaps() [3/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt thePnt,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by point thePnt.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [4/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt thePnt)
pure virtual

Returns true if selecting volume is overlapped by point thePnt. Does not perform depth calculation, so this method is defined as helper function for inclusion test.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [5/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const Handle< TColgp_HArray1OfPnt > &  theArrayOfPts,
Standard_Integer  theSensType,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by planar convex polygon, which points are stored in theArrayOfPts, taking into account sensitivity type theSensType.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [6/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const TColgp_Array1OfPnt theArrayOfPts,
Standard_Integer  theSensType,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by planar convex polygon, which points are stored in theArrayOfPts, taking into account sensitivity type theSensType.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [7/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt thePt1,
const gp_Pnt thePt2,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by line segment with start point at thePt1 and end point at thePt2.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [8/8]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt thePt1,
const gp_Pnt thePt2,
const gp_Pnt thePt3,
Standard_Integer  theSensType,
Standard_Real theDepth 
)
pure virtual

Returns true if selecting volume is overlapped by triangle with vertices thePt1, thePt2 and thePt3, taking into account sensitivity type theSensType.

Implemented in SelectMgr_SelectingVolumeManager.

Field Documentation

◆ myActiveSelectionType

SelectionType SelectBasics_SelectingVolumeManager::myActiveSelectionType
protected

Active selection type: point, box or polyline.


The documentation for this class was generated from the following file: