mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0030058: Visualization, Select3D_SensitivePrimitiveArray - the selection is not fast enough
Select3D_SensitiveSet::Matches() has been improved to check if BVH node is fully included by selection volume and pass this information to overlapsElement()/elementIsInside() interfaces to avoid expensive partial overlapping checks for individual elements. Select3D_SensitivePrimitiveArray implements this new interface to improve partial overlapping performance. Select3D_SensitivePrimitiveArray::Matches() now handles rectangle selection for sub-elements when Elements map is defined. Added missing const to SelectMgr_BaseFrustum::Overlaps() methods. AIS_PointCloud has been extended with new selection mode for collecting selected nodes Draw Harness command vdrawparray has been extended with an option -shape allowing to create a triangulation from tessellated shape.
This commit is contained in:
@@ -146,7 +146,7 @@ void SelectMgr_BaseFrustum::SetBuilder (const Handle(SelectMgr_FrustumBuilder)&
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const SelectMgr_Vec3& /*theBoxMin*/,
|
||||
const SelectMgr_Vec3& /*theBoxMax*/,
|
||||
SelectBasics_PickResult& /*thePickResult*/)
|
||||
SelectBasics_PickResult& /*thePickResult*/) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -157,7 +157,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const SelectMgr_Vec3& /*theBox
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const SelectMgr_Vec3& /*theBoxMin*/,
|
||||
const SelectMgr_Vec3& /*theBoxMax*/,
|
||||
Standard_Boolean* /*theInside*/)
|
||||
Standard_Boolean* /*theInside*/) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -167,7 +167,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const SelectMgr_Vec3& /*theBox
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt*/,
|
||||
SelectBasics_PickResult& )
|
||||
SelectBasics_PickResult& ) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -176,7 +176,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt*/,
|
||||
// function : Overlaps
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt*/)
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt*/) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -190,7 +190,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt*/)
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const TColgp_Array1OfPnt& /*theArrayOfPnts*/,
|
||||
Select3D_TypeOfSensitivity /*theSensType*/,
|
||||
SelectBasics_PickResult& )
|
||||
SelectBasics_PickResult& ) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -206,7 +206,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePt1*/,
|
||||
const gp_Pnt& /*thePt2*/,
|
||||
const gp_Pnt& /*thePt3*/,
|
||||
Select3D_TypeOfSensitivity /*theSensType*/,
|
||||
SelectBasics_PickResult& )
|
||||
SelectBasics_PickResult& ) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -217,7 +217,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePt1*/,
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt1*/,
|
||||
const gp_Pnt& /*thePnt2*/,
|
||||
SelectBasics_PickResult& )
|
||||
SelectBasics_PickResult& ) const
|
||||
{
|
||||
return Standard_False;
|
||||
}
|
||||
@@ -227,7 +227,7 @@ Standard_Boolean SelectMgr_BaseFrustum::Overlaps (const gp_Pnt& /*thePnt1*/,
|
||||
// purpose : Measures distance between 3d projection of user-picked
|
||||
// screen point and given point theCOG
|
||||
//=======================================================================
|
||||
Standard_Real SelectMgr_BaseFrustum::DistToGeometryCenter (const gp_Pnt& /*theCOG*/)
|
||||
Standard_Real SelectMgr_BaseFrustum::DistToGeometryCenter (const gp_Pnt& /*theCOG*/) const
|
||||
{
|
||||
return DBL_MAX;
|
||||
}
|
||||
@@ -247,7 +247,7 @@ gp_Pnt SelectMgr_BaseFrustum::DetectedPoint (const Standard_Real /*theDepth*/) c
|
||||
// detected belongs to the region defined by clipping planes
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_BaseFrustum::IsClipped (const Graphic3d_SequenceOfHClipPlane& /*thePlanes*/,
|
||||
const Standard_Real /*theDepth*/)
|
||||
const Standard_Real /*theDepth*/) const
|
||||
{
|
||||
return Standard_True;
|
||||
}
|
||||
|
@@ -120,35 +120,35 @@ public:
|
||||
//! SAT intersection test between defined volume and given axis-aligned box
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! Returns true if selecting volume is overlapped by axis-aligned bounding box
|
||||
//! with minimum corner at point theMinPt and maximum at point theMaxPt
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside = NULL);
|
||||
Standard_Boolean* theInside = NULL) const;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
//! Does not perform depth calculation, so this method is defined as
|
||||
//! helper function for inclusion test. Therefore, its implementation
|
||||
//! makes sense only for rectangular frustum with box selection mode activated.
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt);
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt) const;
|
||||
|
||||
//! SAT intersection test between defined volume and given ordered set of points,
|
||||
//! representing line segments. The test may be considered of interior part or
|
||||
//! boundary line defined by segments depending on given sensitivity type
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! Checks if line segment overlaps selecting frustum
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! SAT intersection test between defined volume and given triangle. The test may
|
||||
//! be considered of interior part or boundary line defined by triangle vertices
|
||||
@@ -157,18 +157,18 @@ public:
|
||||
const gp_Pnt& thePt2,
|
||||
const gp_Pnt& thePt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! Measures distance between 3d projection of user-picked
|
||||
//! screen point and given point theCOG
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG);
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG) const;
|
||||
|
||||
Standard_EXPORT virtual gp_Pnt DetectedPoint (const Standard_Real theDepth) const;
|
||||
|
||||
//! Checks if the point of sensitive in which selection was detected belongs
|
||||
//! to the region defined by clipping planes
|
||||
Standard_EXPORT virtual Standard_Boolean IsClipped (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
const Standard_Real theDepth);
|
||||
const Standard_Real theDepth) const;
|
||||
|
||||
//! Valid for point selection only!
|
||||
//! Computes depth range for global (defined for the whole view) clipping planes.
|
||||
|
@@ -66,24 +66,24 @@ protected:
|
||||
//! with minimum corner at point theMinPt and maximum at point theMaxPt
|
||||
Standard_Boolean hasOverlap (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside = NULL);
|
||||
Standard_Boolean* theInside = NULL) const;
|
||||
|
||||
//! SAT intersection test between defined volume and given point
|
||||
Standard_Boolean hasOverlap (const gp_Pnt& thePnt);
|
||||
Standard_Boolean hasOverlap (const gp_Pnt& thePnt) const;
|
||||
|
||||
//! SAT intersection test between defined volume and given segment
|
||||
Standard_Boolean hasOverlap (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2);
|
||||
const gp_Pnt& thePnt2) const;
|
||||
|
||||
//! SAT intersection test between frustum given and planar convex polygon represented as ordered point set
|
||||
Standard_Boolean hasOverlap (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
gp_Vec& theNormal);
|
||||
gp_Vec& theNormal) const;
|
||||
|
||||
//! SAT intersection test between defined volume and given triangle
|
||||
Standard_Boolean hasOverlap (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
gp_Vec& theNormal);
|
||||
gp_Vec& theNormal) const;
|
||||
|
||||
private:
|
||||
|
||||
|
@@ -129,7 +129,7 @@ Standard_Boolean SelectMgr_Frustum<N>::isSeparated (const gp_Pnt& thePnt1,
|
||||
template <int N>
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
Standard_Boolean* theInside)
|
||||
Standard_Boolean* theInside) const
|
||||
{
|
||||
for (Standard_Integer anAxis = 0; anAxis < 3; ++anAxis)
|
||||
{
|
||||
@@ -203,7 +203,7 @@ Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const SelectMgr_Vec3& theMinP
|
||||
// purpose : SAT intersection test between defined volume and given point
|
||||
// =======================================================================
|
||||
template <int N>
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& thePnt)
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& thePnt) const
|
||||
{
|
||||
const Standard_Integer anIncFactor = (myIsOrthographic && N == 4) ? 2 : 1;
|
||||
|
||||
@@ -227,7 +227,7 @@ Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& thePnt)
|
||||
// =======================================================================
|
||||
template <int N>
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& theStartPnt,
|
||||
const gp_Pnt& theEndPnt)
|
||||
const gp_Pnt& theEndPnt) const
|
||||
{
|
||||
const gp_XYZ& aDir = theEndPnt.XYZ() - theStartPnt.XYZ();
|
||||
if (aDir.Modulus() < Precision::Confusion())
|
||||
@@ -309,7 +309,7 @@ Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& theStartPnt,
|
||||
// =======================================================================
|
||||
template <int N>
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
gp_Vec& theNormal)
|
||||
gp_Vec& theNormal) const
|
||||
{
|
||||
Standard_Integer aStartIdx = theArrayOfPnts.Lower();
|
||||
Standard_Integer anEndIdx = theArrayOfPnts.Upper();
|
||||
@@ -406,7 +406,7 @@ template <int N>
|
||||
Standard_Boolean SelectMgr_Frustum<N>::hasOverlap (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
gp_Vec& theNormal)
|
||||
gp_Vec& theNormal) const
|
||||
{
|
||||
const gp_XYZ aTrEdges[3] = { thePnt2.XYZ() - thePnt1.XYZ(),
|
||||
thePnt3.XYZ() - thePnt2.XYZ(),
|
||||
|
@@ -24,7 +24,7 @@
|
||||
// =======================================================================
|
||||
void SelectMgr_RectangularFrustum::segmentSegmentDistance (const gp_Pnt& theSegPnt1,
|
||||
const gp_Pnt& theSegPnt2,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
gp_XYZ anU = theSegPnt2.XYZ() - theSegPnt1.XYZ();
|
||||
gp_XYZ aV = myViewRayDir.XYZ();
|
||||
@@ -95,7 +95,7 @@ void SelectMgr_RectangularFrustum::segmentSegmentDistance (const gp_Pnt& theSegP
|
||||
// =======================================================================
|
||||
bool SelectMgr_RectangularFrustum::segmentPlaneIntersection (const gp_Vec& thePlane,
|
||||
const gp_Pnt& thePntOnPlane,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
gp_XYZ anU = myViewRayDir.XYZ();
|
||||
gp_XYZ aW = myNearPickedPnt.XYZ() - thePntOnPlane.XYZ();
|
||||
@@ -429,7 +429,7 @@ Handle(SelectMgr_BaseFrustum) SelectMgr_RectangularFrustum::ScaleAndTransform (c
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside)
|
||||
Standard_Boolean* theInside) const
|
||||
{
|
||||
return hasOverlap (theBoxMin, theBoxMax, theInside);
|
||||
}
|
||||
@@ -441,7 +441,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const SelectMgr_Vec3& t
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (!hasOverlap (theBoxMin, theBoxMax))
|
||||
return Standard_False;
|
||||
@@ -461,7 +461,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const SelectMgr_Vec3& t
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (!hasOverlap (thePnt))
|
||||
return Standard_False;
|
||||
@@ -480,7 +480,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt,
|
||||
// function : Overlaps
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt)
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt) const
|
||||
{
|
||||
return hasOverlap (thePnt);
|
||||
}
|
||||
@@ -491,7 +491,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt)
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (!hasOverlap (thePnt1, thePnt2))
|
||||
return Standard_False;
|
||||
@@ -510,7 +510,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (theSensType == Select3D_TOS_BOUNDARY)
|
||||
{
|
||||
@@ -560,7 +560,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (theSensType == Select3D_TOS_BOUNDARY)
|
||||
{
|
||||
@@ -639,7 +639,7 @@ Standard_Boolean SelectMgr_RectangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
// purpose : Measures distance between 3d projection of user-picked
|
||||
// screen point and given point theCOG
|
||||
// =======================================================================
|
||||
Standard_Real SelectMgr_RectangularFrustum::DistToGeometryCenter (const gp_Pnt& theCOG)
|
||||
Standard_Real SelectMgr_RectangularFrustum::DistToGeometryCenter (const gp_Pnt& theCOG) const
|
||||
{
|
||||
return theCOG.Distance (myNearPickedPnt) * myScale;
|
||||
}
|
||||
@@ -659,7 +659,7 @@ gp_Pnt SelectMgr_RectangularFrustum::DetectedPoint (const Standard_Real theDepth
|
||||
// purpose :
|
||||
// =======================================================================
|
||||
void SelectMgr_RectangularFrustum::computeClippingRange (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
SelectMgr_ViewClipRange& theRange)
|
||||
SelectMgr_ViewClipRange& theRange) const
|
||||
{
|
||||
Standard_Real aPlaneA, aPlaneB, aPlaneC, aPlaneD;
|
||||
for (Graphic3d_SequenceOfHClipPlane::Iterator aPlaneIt (thePlanes); aPlaneIt.More(); aPlaneIt.Next())
|
||||
@@ -744,7 +744,7 @@ void SelectMgr_RectangularFrustum::computeClippingRange (const Graphic3d_Sequenc
|
||||
// detected belongs to the region defined by clipping planes
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_RectangularFrustum::IsClipped (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
const Standard_Real theDepth)
|
||||
const Standard_Real theDepth) const
|
||||
{
|
||||
SelectMgr_ViewClipRange aRange;
|
||||
computeClippingRange (thePlanes, aRange);
|
||||
|
@@ -59,32 +59,32 @@ public:
|
||||
//! SAT intersection test between defined volume and given axis-aligned box
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Returns true if selecting volume is overlapped by axis-aligned bounding box
|
||||
//! with minimum corner at point theMinPt and maximum at point theMaxPt
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside = NULL) Standard_OVERRIDE;
|
||||
Standard_Boolean* theInside) const Standard_OVERRIDE;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given ordered set of points,
|
||||
//! representing line segments. The test may be considered of interior part or
|
||||
//! boundary line defined by segments depending on given sensitivity type
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Checks if line segment overlaps selecting frustum
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given triangle. The test may
|
||||
//! be considered of interior part or boundary line defined by triangle vertices
|
||||
@@ -93,11 +93,11 @@ public:
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Measures distance between 3d projection of user-picked
|
||||
//! screen point and given point theCOG
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG) const Standard_OVERRIDE;
|
||||
|
||||
//! Calculates the point on a view ray that was detected during the run of selection algo by given depth
|
||||
Standard_EXPORT virtual gp_Pnt DetectedPoint (const Standard_Real theDepth) const Standard_OVERRIDE;
|
||||
@@ -105,7 +105,7 @@ public:
|
||||
//! Checks if the point of sensitive in which selection was detected belongs
|
||||
//! to the region defined by clipping planes
|
||||
Standard_EXPORT virtual Standard_Boolean IsClipped (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
const Standard_Real theDepth) Standard_OVERRIDE;
|
||||
const Standard_Real theDepth) const Standard_OVERRIDE;
|
||||
|
||||
//! Valid for point selection only!
|
||||
//! Computes depth range for global (defined for the whole view) clipping planes.
|
||||
@@ -141,15 +141,15 @@ protected:
|
||||
|
||||
Standard_EXPORT void segmentSegmentDistance (const gp_Pnt& theSegPnt1,
|
||||
const gp_Pnt& theSegPnt2,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
Standard_EXPORT bool segmentPlaneIntersection (const gp_Vec& thePlane,
|
||||
const gp_Pnt& thePntOnPlane,
|
||||
SelectBasics_PickResult& thePickResult);
|
||||
SelectBasics_PickResult& thePickResult) const;
|
||||
|
||||
//! Computes valid depth range for the given clipping planes
|
||||
Standard_EXPORT void computeClippingRange (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
SelectMgr_ViewClipRange& theRange);
|
||||
SelectMgr_ViewClipRange& theRange) const;
|
||||
|
||||
//! Returns false if theDepth must be clipped by current view clip range
|
||||
Standard_EXPORT Standard_Boolean isViewClippingOk (const SelectBasics_PickResult& thePickResult) const;
|
||||
|
@@ -236,7 +236,7 @@ void SelectMgr_SelectingVolumeManager::BuildSelectingVolume (const TColgp_Array1
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -250,7 +250,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const SelectMgr_Vec
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside)
|
||||
Standard_Boolean* theInside) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -263,7 +263,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const SelectMgr_Vec
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -276,7 +276,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePn
|
||||
// function : Overlaps
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePnt)
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePnt) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -293,7 +293,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePn
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const Handle(TColgp_HArray1OfPnt)& theArrayOfPnts,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -312,7 +312,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const Handle(TColgp
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -328,7 +328,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const TColgp_Array1
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePt1,
|
||||
const gp_Pnt& thePt2,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -347,7 +347,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePt
|
||||
const gp_Pnt& thePt2,
|
||||
const gp_Pnt& thePt3,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -364,7 +364,7 @@ Standard_Boolean SelectMgr_SelectingVolumeManager::Overlaps (const gp_Pnt& thePt
|
||||
// purpose : Measures distance between 3d projection of user-picked
|
||||
// screen point and given point theCOG
|
||||
//=======================================================================
|
||||
Standard_Real SelectMgr_SelectingVolumeManager::DistToGeometryCenter (const gp_Pnt& theCOG)
|
||||
Standard_Real SelectMgr_SelectingVolumeManager::DistToGeometryCenter (const gp_Pnt& theCOG) const
|
||||
{
|
||||
if (myActiveSelectionType == Unknown)
|
||||
return Standard_False;
|
||||
@@ -394,7 +394,7 @@ gp_Pnt SelectMgr_SelectingVolumeManager::DetectedPoint (const Standard_Real theD
|
||||
// detected belongs to the region defined by clipping planes
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_SelectingVolumeManager::IsClipped (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
const Standard_Real& theDepth)
|
||||
const Standard_Real& theDepth) const
|
||||
{
|
||||
if (myActiveSelectionType != Point)
|
||||
return Standard_False;
|
||||
|
@@ -106,39 +106,39 @@ public:
|
||||
//! SAT intersection test between defined volume and given axis-aligned box
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Returns true if selecting volume is overlapped by axis-aligned bounding box
|
||||
//! with minimum corner at point theMinPt and maximum at point theMaxPt
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theBoxMin,
|
||||
const SelectMgr_Vec3& theBoxMax,
|
||||
Standard_Boolean* theInside = NULL) Standard_OVERRIDE;
|
||||
Standard_Boolean* theInside = NULL) const Standard_OVERRIDE;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given ordered set of points,
|
||||
//! representing line segments. The test may be considered of interior part or
|
||||
//! boundary line defined by segments depending on given sensitivity type
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const Handle(TColgp_HArray1OfPnt)& theArrayOfPts,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given ordered set of points,
|
||||
//! representing line segments. The test may be considered of interior part or
|
||||
//! boundary line defined by segments depending on given sensitivity type
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt& theArrayOfPts,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Checks if line segment overlaps selecting frustum
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given triangle. The test may
|
||||
//! be considered of interior part or boundary line defined by triangle vertices
|
||||
@@ -147,12 +147,12 @@ public:
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Standard_Integer theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
|
||||
//! Measures distance between 3d projection of user-picked
|
||||
//! screen point and given point theCOG
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG) Standard_OVERRIDE;
|
||||
Standard_EXPORT virtual Standard_Real DistToGeometryCenter (const gp_Pnt& theCOG) const Standard_OVERRIDE;
|
||||
|
||||
//! Calculates the point on a view ray that was detected during the run of selection algo by given depth.
|
||||
//! Throws exception if active selection type is not Point.
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
//! Checks if the point of sensitive in which selection was detected belongs
|
||||
//! to the region defined by clipping planes
|
||||
Standard_EXPORT virtual Standard_Boolean IsClipped (const Graphic3d_SequenceOfHClipPlane& thePlanes,
|
||||
const Standard_Real& theDepth);
|
||||
const Standard_Real& theDepth) const;
|
||||
|
||||
//! Is used for rectangular selection only
|
||||
//! If theIsToAllow is false, only fully included sensitives will be detected, otherwise the algorithm will
|
||||
|
@@ -169,7 +169,7 @@ Handle(SelectMgr_BaseFrustum) SelectMgr_TriangularFrustum::ScaleAndTransform (co
|
||||
//=======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const SelectMgr_Vec3& theMinPt,
|
||||
const SelectMgr_Vec3& theMaxPt,
|
||||
SelectBasics_PickResult& /*thePickResult*/)
|
||||
SelectBasics_PickResult& /*thePickResult*/) const
|
||||
{
|
||||
return hasOverlap (theMinPt, theMaxPt);
|
||||
}
|
||||
@@ -182,7 +182,7 @@ Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const SelectMgr_Vec3& th
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const SelectMgr_Vec3& theMinPt,
|
||||
const SelectMgr_Vec3& theMaxPt,
|
||||
Standard_Boolean* /*theInside*/)
|
||||
Standard_Boolean* /*theInside*/) const
|
||||
{
|
||||
return hasOverlap (theMinPt, theMaxPt, NULL);
|
||||
}
|
||||
@@ -192,7 +192,7 @@ Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const SelectMgr_Vec3& th
|
||||
// purpose : Intersection test between defined volume and given point
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& /*thePickResult*/)
|
||||
SelectBasics_PickResult& /*thePickResult*/) const
|
||||
{
|
||||
return hasOverlap (thePnt);
|
||||
}
|
||||
@@ -206,7 +206,7 @@ Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const gp_Pnt& thePnt,
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& /*thePickResult*/)
|
||||
SelectBasics_PickResult& /*thePickResult*/) const
|
||||
{
|
||||
if (theSensType == Select3D_TOS_BOUNDARY)
|
||||
{
|
||||
@@ -237,7 +237,7 @@ Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const TColgp_Array1OfPnt
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& /*thePickResult*/)
|
||||
SelectBasics_PickResult& /*thePickResult*/) const
|
||||
{
|
||||
return hasOverlap (thePnt1, thePnt2);
|
||||
}
|
||||
@@ -253,7 +253,7 @@ Standard_Boolean SelectMgr_TriangularFrustum::Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
if (theSensType == Select3D_TOS_BOUNDARY)
|
||||
{
|
||||
|
@@ -48,29 +48,29 @@ public:
|
||||
//! SAT intersection test between defined volume and given axis-aligned box
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Returns true if selecting volume is overlapped by axis-aligned bounding box
|
||||
//! with minimum corner at point theMinPt and maximum at point theMaxPt
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theMinPt,
|
||||
const SelectMgr_Vec3& theMaxPt,
|
||||
Standard_Boolean* theInside) Standard_OVERRIDE;
|
||||
Standard_Boolean* theInside) const Standard_OVERRIDE;
|
||||
|
||||
//! Intersection test between defined volume and given point
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given ordered set of points,
|
||||
//! representing line segments. The test may be considered of interior part or
|
||||
//! boundary line defined by segments depending on given sensitivity type
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Checks if line segment overlaps selecting frustum
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! SAT intersection test between defined volume and given triangle. The test may
|
||||
//! be considered of interior part or boundary line defined by triangle vertices
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Nullifies the handle to corresponding builder instance to prevent memory leaks
|
||||
Standard_EXPORT void Clear();
|
||||
|
@@ -127,7 +127,7 @@ Handle(SelectMgr_BaseFrustum) SelectMgr_TriangularFrustumSet::ScaleAndTransform
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
@@ -144,7 +144,7 @@ Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const SelectMgr_Vec3&
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
Standard_Boolean* /*theInside*/)
|
||||
Standard_Boolean* /*theInside*/) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
@@ -160,7 +160,7 @@ Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const SelectMgr_Vec3&
|
||||
// purpose :
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
@@ -177,7 +177,7 @@ Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const gp_Pnt& thePnt,
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const TColgp_Array1OfPnt& theArrayOfPts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
@@ -194,7 +194,7 @@ Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const TColgp_Array1Of
|
||||
// =======================================================================
|
||||
Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
@@ -213,7 +213,7 @@ Standard_Boolean SelectMgr_TriangularFrustumSet::Overlaps (const gp_Pnt& thePnt1
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult)
|
||||
SelectBasics_PickResult& thePickResult) const
|
||||
{
|
||||
for (SelectMgr_TriangFrustumsIter anIter (myFrustums); anIter.More(); anIter.Next())
|
||||
{
|
||||
|
@@ -52,28 +52,28 @@ public:
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const SelectMgr_Vec3& theMinPnt,
|
||||
const SelectMgr_Vec3& theMaxPnt,
|
||||
Standard_Boolean* theInside) Standard_OVERRIDE;
|
||||
Standard_Boolean* theInside) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const TColgp_Array1OfPnt& theArrayOfPnts,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT virtual Standard_Boolean Overlaps (const gp_Pnt& thePnt1,
|
||||
const gp_Pnt& thePnt2,
|
||||
const gp_Pnt& thePnt3,
|
||||
Select3D_TypeOfSensitivity theSensType,
|
||||
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
|
||||
SelectBasics_PickResult& thePickResult) const Standard_OVERRIDE;
|
||||
|
||||
//! Stores plane equation coefficients (in the following form:
|
||||
//! Ax + By + Cz + D = 0) to the given vector
|
||||
|
Reference in New Issue
Block a user