Open CASCADE Technology 7.8.2.dev
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:

Public Member Functions

 SelectBasics_SelectingVolumeManager ()
 Empty constructor.
 
virtual ~SelectBasics_SelectingVolumeManager ()
 Destructor.
 
virtual Standard_Integer GetActiveSelectionType () const =0
 Return selection type.
 
virtual Standard_Boolean OverlapsBox (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by box theBox.
 
virtual Standard_Boolean OverlapsBox (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, Standard_Boolean *theInside=NULL) const =0
 Returns true if selecting volume is overlapped by axis-aligned bounding box with minimum corner at point theMinPt and maximum at point theMaxPt.
 
virtual Standard_Boolean OverlapsPoint (const gp_Pnt &thePnt, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by point thePnt.
 
virtual Standard_Boolean OverlapsPoint (const gp_Pnt &thePnt) const =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.
 
virtual Standard_Boolean OverlapsPolygon (const TColgp_Array1OfPnt &theArrayOfPts, Standard_Integer theSensType, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by planar convex polygon, which points are stored in theArrayOfPts, taking into account sensitivity type theSensType.
 
virtual Standard_Boolean OverlapsSegment (const gp_Pnt &thePt1, const gp_Pnt &thePt2, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by line segment with start point at thePt1 and end point at thePt2.
 
virtual Standard_Boolean OverlapsTriangle (const gp_Pnt &thePt1, const gp_Pnt &thePt2, const gp_Pnt &thePt3, Standard_Integer theSensType, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by triangle with vertices thePt1, thePt2 and thePt3, taking into account sensitivity type theSensType.
 
virtual Standard_Boolean OverlapsSphere (const gp_Pnt &theCenter, const Standard_Real theRadius, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by sphere with center theCenter and radius theRadius.
 
virtual Standard_Boolean OverlapsSphere (const gp_Pnt &theCenter, const Standard_Real theRadius, Standard_Boolean *theInside=NULL) const =0
 Returns true if selecting volume is overlapped by sphere with center theCenter and radius theRadius.
 
virtual Standard_Boolean OverlapsCylinder (const Standard_Real theBottomRad, const Standard_Real theTopRad, const Standard_Real theHeight, const gp_Trsf &theTrsf, const Standard_Boolean theIsHollow, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses theBottomRad and theTopRad, height theHeight, the boolean theIsHollow and transformation to apply theTrsf.
 
virtual Standard_Boolean OverlapsCylinder (const Standard_Real theBottomRad, const Standard_Real theTopRad, const Standard_Real theHeight, const gp_Trsf &theTrsf, const Standard_Boolean theIsHollow, Standard_Boolean *theInside=NULL) const =0
 Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses theBottomRad and theTopRad, height theHeight, the boolean theIsHollow and transformation to apply theTrsf.
 
virtual Standard_Boolean OverlapsCircle (const Standard_Real theRadius, const gp_Trsf &theTrsf, const Standard_Boolean theIsFilled, SelectBasics_PickResult &thePickResult) const =0
 Returns true if selecting volume is overlapped by circle with radius theRadius, the boolean theIsFilled, and transformation to apply theTrsf. The position and orientation of the circle are specified via theTrsf transformation for gp::XOY() with center in gp::Origin().
 
virtual Standard_Boolean OverlapsCircle (const Standard_Real theRadius, const gp_Trsf &theTrsf, const Standard_Boolean theIsFilled, Standard_Boolean *theInside=NULL) const =0
 Returns true if selecting volume is overlapped by circle with radius theRadius, the boolean theIsFilled, and transformation to apply theTrsf. The position and orientation of the circle are specified via theTrsf transformation for gp::XOY() with center in gp::Origin().
 
virtual Standard_Real DistToGeometryCenter (const gp_Pnt &theCOG) const =0
 Calculates distance from 3d projection of user-defined selection point to the given point theCOG.
 
virtual gp_Pnt DetectedPoint (const Standard_Real theDepth) const =0
 Return 3D point corresponding to specified depth within picking ray.
 
virtual Standard_Boolean IsOverlapAllowed () const =0
 Returns flag indicating if partial overlapping of entities is allowed or should be rejected.
 
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.
 
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.
 
virtual gp_Dir GetViewRayDirection () const =0
 Valid only for point and rectangular selection. Returns view ray direction.
 
virtual Standard_Boolean IsScalableActiveVolume () const =0
 Checks if it is possible to scale current active selecting volume.
 
virtual gp_Pnt2d GetMousePosition () const =0
 Returns mouse coordinates for Point selection mode.
 
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.
 
virtual void DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const
 Dumps the content of me into the stream.
 
Standard_Boolean Overlaps (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, SelectBasics_PickResult &thePickResult) const
 
Standard_Boolean Overlaps (const NCollection_Vec3< Standard_Real > &theBoxMin, const NCollection_Vec3< Standard_Real > &theBoxMax, Standard_Boolean *theInside=NULL) const
 
Standard_Boolean Overlaps (const gp_Pnt &thePnt, SelectBasics_PickResult &thePickResult) const
 
Standard_Boolean Overlaps (const gp_Pnt &thePnt) const
 
Standard_Boolean Overlaps (const Handle< TColgp_HArray1OfPnt > &theArrayOfPts, Standard_Integer theSensType, SelectBasics_PickResult &thePickResult) const
 
Standard_Boolean Overlaps (const TColgp_Array1OfPnt &theArrayOfPts, Standard_Integer theSensType, SelectBasics_PickResult &thePickResult) const
 
Standard_Boolean Overlaps (const gp_Pnt &thePnt1, const gp_Pnt &thePnt2, SelectBasics_PickResult &thePickResult) const
 
Standard_Boolean Overlaps (const gp_Pnt &thePnt1, const gp_Pnt &thePnt2, const gp_Pnt &thePnt3, Standard_Integer theSensType, SelectBasics_PickResult &thePickResult) const
 

Static Public Attributes

static const SelectMgr_SelectionType Point = SelectMgr_SelectionType_Point
 Deprecated static const class members aren't supported for Visual Studio prior to 2015 (vc14) and GCC >= 5.0 and GCC < 6.3 (due to bug when warning was raised without member usage).
 
static const SelectMgr_SelectionType Box = SelectMgr_SelectionType_Box
 
static const SelectMgr_SelectionType Polyline = SelectMgr_SelectionType_Polyline
 
static const SelectMgr_SelectionType Unknown = SelectMgr_SelectionType_Unknown
 

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.

Constructor & Destructor Documentation

◆ SelectBasics_SelectingVolumeManager()

SelectBasics_SelectingVolumeManager::SelectBasics_SelectingVolumeManager ( )

Empty constructor.

◆ ~SelectBasics_SelectingVolumeManager()

virtual SelectBasics_SelectingVolumeManager::~SelectBasics_SelectingVolumeManager ( )
virtual

Destructor.

Member Function Documentation

◆ DetectedPoint()

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

Return 3D point corresponding to specified depth within picking ray.

Implemented in SelectMgr_SelectingVolumeManager.

◆ DistToGeometryCenter()

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

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

Implemented in SelectMgr_SelectingVolumeManager.

◆ DumpJson()

virtual void SelectBasics_SelectingVolumeManager::DumpJson ( Standard_OStream & theOStream,
Standard_Integer theDepth = -1 ) const
inlinevirtual

Dumps the content of me into the stream.

Reimplemented in SelectMgr_SelectingVolumeManager.

◆ GetActiveSelectionType()

virtual Standard_Integer SelectBasics_SelectingVolumeManager::GetActiveSelectionType ( ) const
pure virtual

Return selection type.

Implemented in SelectMgr_SelectingVolumeManager.

◆ 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.

◆ GetMousePosition()

virtual gp_Pnt2d SelectBasics_SelectingVolumeManager::GetMousePosition ( ) const
pure virtual

Returns mouse coordinates for Point selection mode.

Returns
infinite point in case of unsupport of mouse position for this active selection volume.

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.

◆ GetViewRayDirection()

virtual gp_Dir SelectBasics_SelectingVolumeManager::GetViewRayDirection ( ) const
pure virtual

Valid only for point and rectangular selection. Returns view ray direction.

Implemented in SelectMgr_SelectingVolumeManager.

◆ IsOverlapAllowed()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::IsOverlapAllowed ( ) const
pure virtual

Returns flag indicating if partial overlapping of entities is allowed or should be rejected.

Implemented in SelectMgr_SelectingVolumeManager.

◆ IsScalableActiveVolume()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::IsScalableActiveVolume ( ) const
pure virtual

Checks if it is possible to scale current active selecting volume.

Implemented in SelectMgr_SelectingVolumeManager.

◆ Overlaps() [1/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt & thePnt) const
inline
Deprecated
("Deprecated alias for OverlapsPoint()")

◆ Overlaps() [2/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt & thePnt,
SelectBasics_PickResult & thePickResult ) const
inline
Deprecated
("Deprecated alias for OverlapsPoint()")

◆ Overlaps() [3/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt & thePnt1,
const gp_Pnt & thePnt2,
const gp_Pnt & thePnt3,
Standard_Integer theSensType,
SelectBasics_PickResult & thePickResult ) const
inline
Deprecated
("Deprecated alias for OverlapsTriangle()")

◆ Overlaps() [4/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const gp_Pnt & thePnt1,
const gp_Pnt & thePnt2,
SelectBasics_PickResult & thePickResult ) const
inline
Deprecated
("Deprecated alias for OverlapsSegment()")

◆ Overlaps() [5/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const Handle< TColgp_HArray1OfPnt > & theArrayOfPts,
Standard_Integer theSensType,
SelectBasics_PickResult & thePickResult ) const
Deprecated
("Deprecated alias for OverlapsPolygon()")

◆ Overlaps() [6/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const NCollection_Vec3< Standard_Real > & theBoxMin,
const NCollection_Vec3< Standard_Real > & theBoxMax,
SelectBasics_PickResult & thePickResult ) const
inline
Deprecated
("Deprecated alias for OverlapsBox()")

◆ Overlaps() [7/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const NCollection_Vec3< Standard_Real > & theBoxMin,
const NCollection_Vec3< Standard_Real > & theBoxMax,
Standard_Boolean * theInside = NULL ) const
inline
Deprecated
("Deprecated alias for OverlapsBox()")

◆ Overlaps() [8/8]

Standard_Boolean SelectBasics_SelectingVolumeManager::Overlaps ( const TColgp_Array1OfPnt & theArrayOfPts,
Standard_Integer theSensType,
SelectBasics_PickResult & thePickResult ) const
inline
Deprecated
("Deprecated alias for OverlapsPolygon()")

◆ OverlapsBox() [1/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsBox ( const NCollection_Vec3< Standard_Real > & theBoxMin,
const NCollection_Vec3< Standard_Real > & theBoxMax,
SelectBasics_PickResult & thePickResult ) const
pure virtual

Returns true if selecting volume is overlapped by box theBox.

◆ OverlapsBox() [2/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsBox ( const NCollection_Vec3< Standard_Real > & theBoxMin,
const NCollection_Vec3< Standard_Real > & theBoxMax,
Standard_Boolean * theInside = NULL ) const
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.

◆ OverlapsCircle() [1/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsCircle ( const Standard_Real theRadius,
const gp_Trsf & theTrsf,
const Standard_Boolean theIsFilled,
SelectBasics_PickResult & thePickResult ) const
pure virtual

Returns true if selecting volume is overlapped by circle with radius theRadius, the boolean theIsFilled, and transformation to apply theTrsf. The position and orientation of the circle are specified via theTrsf transformation for gp::XOY() with center in gp::Origin().

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsCircle() [2/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsCircle ( const Standard_Real theRadius,
const gp_Trsf & theTrsf,
const Standard_Boolean theIsFilled,
Standard_Boolean * theInside = NULL ) const
pure virtual

Returns true if selecting volume is overlapped by circle with radius theRadius, the boolean theIsFilled, and transformation to apply theTrsf. The position and orientation of the circle are specified via theTrsf transformation for gp::XOY() with center in gp::Origin().

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsCylinder() [1/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsCylinder ( const Standard_Real theBottomRad,
const Standard_Real theTopRad,
const Standard_Real theHeight,
const gp_Trsf & theTrsf,
const Standard_Boolean theIsHollow,
SelectBasics_PickResult & thePickResult ) const
pure virtual

Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses theBottomRad and theTopRad, height theHeight, the boolean theIsHollow and transformation to apply theTrsf.

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsCylinder() [2/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsCylinder ( const Standard_Real theBottomRad,
const Standard_Real theTopRad,
const Standard_Real theHeight,
const gp_Trsf & theTrsf,
const Standard_Boolean theIsHollow,
Standard_Boolean * theInside = NULL ) const
pure virtual

Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses theBottomRad and theTopRad, height theHeight, the boolean theIsHollow and transformation to apply theTrsf.

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsPoint() [1/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsPoint ( const gp_Pnt & thePnt) const
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.

◆ OverlapsPoint() [2/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsPoint ( const gp_Pnt & thePnt,
SelectBasics_PickResult & thePickResult ) const
pure virtual

Returns true if selecting volume is overlapped by point thePnt.

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsPolygon()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsPolygon ( const TColgp_Array1OfPnt & theArrayOfPts,
Standard_Integer theSensType,
SelectBasics_PickResult & thePickResult ) const
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.

◆ OverlapsSegment()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsSegment ( const gp_Pnt & thePt1,
const gp_Pnt & thePt2,
SelectBasics_PickResult & thePickResult ) const
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.

◆ OverlapsSphere() [1/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsSphere ( const gp_Pnt & theCenter,
const Standard_Real theRadius,
SelectBasics_PickResult & thePickResult ) const
pure virtual

Returns true if selecting volume is overlapped by sphere with center theCenter and radius theRadius.

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsSphere() [2/2]

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsSphere ( const gp_Pnt & theCenter,
const Standard_Real theRadius,
Standard_Boolean * theInside = NULL ) const
pure virtual

Returns true if selecting volume is overlapped by sphere with center theCenter and radius theRadius.

Implemented in SelectMgr_SelectingVolumeManager.

◆ OverlapsTriangle()

virtual Standard_Boolean SelectBasics_SelectingVolumeManager::OverlapsTriangle ( const gp_Pnt & thePt1,
const gp_Pnt & thePt2,
const gp_Pnt & thePt3,
Standard_Integer theSensType,
SelectBasics_PickResult & thePickResult ) const
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

◆ Box

const SelectMgr_SelectionType SelectBasics_SelectingVolumeManager::Box = SelectMgr_SelectionType_Box
static
Deprecated
("Deprecated alias - SelectMgr_SelectionType should be used instead")

◆ Point

const SelectMgr_SelectionType SelectBasics_SelectingVolumeManager::Point = SelectMgr_SelectionType_Point
static

Deprecated static const class members aren't supported for Visual Studio prior to 2015 (vc14) and GCC >= 5.0 and GCC < 6.3 (due to bug when warning was raised without member usage).

Deprecated
("Deprecated alias - SelectMgr_SelectionType should be used instead")

◆ Polyline

const SelectMgr_SelectionType SelectBasics_SelectingVolumeManager::Polyline = SelectMgr_SelectionType_Polyline
static
Deprecated
("Deprecated alias - SelectMgr_SelectionType should be used instead")

◆ Unknown

const SelectMgr_SelectionType SelectBasics_SelectingVolumeManager::Unknown = SelectMgr_SelectionType_Unknown
static
Deprecated
("Deprecated alias - SelectMgr_SelectionType should be used instead")

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