Set constant state for the method NbSubElement to be able to call it from other constant methods (e.g. DumpJson of Select3D_SensitiveEntity).
@subsection upgrade_750_rename Renaming of types
Enumeration BRepOffset_Type is renamed to ChFiDS_TypeOfConcavity.
+
+@subsection upgrade_750_sensitiveEntity Select3D_SensitiveEntity interface change
+
+The method Select3D_SensitiveEntity::NbSubElements() has been changed to be constant. Select3D_SensitiveEntity subclasses at application level should be updated accordingly.
//function : NbSubElements
//purpose :
//=======================================================================
-Standard_Integer MeshVS_CommonSensitiveEntity::NbSubElements()
+Standard_Integer MeshVS_CommonSensitiveEntity::NbSubElements() const
{
return myItemIndexes.Size();
}
Standard_EXPORT virtual ~MeshVS_CommonSensitiveEntity();
//! Number of elements.
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
//! Returns the amount of sub-entities of the complex entity
Standard_EXPORT virtual Standard_Integer Size() const Standard_OVERRIDE;
// Function : NbSubElements
// Purpose :
//================================================================
-Standard_Integer MeshVS_DummySensitiveEntity::NbSubElements()
+Standard_Integer MeshVS_DummySensitiveEntity::NbSubElements() const
{
return -1;
}
Standard_EXPORT virtual Standard_Boolean Matches (SelectBasics_SelectingVolumeManager& theMgr,
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE;
// function : NbSubElements
// purpose : Returns the amount of mesh nodes
//=======================================================================
-Standard_Integer MeshVS_SensitiveMesh::NbSubElements()
+Standard_Integer MeshVS_SensitiveMesh::NbSubElements() const
{
Handle(MeshVS_MeshOwner) anOwner = Handle(MeshVS_MeshOwner)::DownCast (OwnerId());
if (anOwner.IsNull())
}
//! Returns the amount of mesh nodes
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
//! Returns bounding box of mesh
Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE;
// function : NbSubElements
// purpose : Returns the amount of nodes of polyhedron
//=======================================================================
-Standard_Integer MeshVS_SensitivePolyhedron::NbSubElements()
+Standard_Integer MeshVS_SensitivePolyhedron::NbSubElements() const
{
return myNodes->Length();
}
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
//! Returns the amount of nodes of polyhedron
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE;
const gp_Pnt& thePnt4);
//! Returns the amount of sub-entities in sensitive
- virtual Standard_Integer NbSubElements() Standard_OVERRIDE
+ virtual Standard_Integer NbSubElements() const Standard_OVERRIDE
{
return 1;
};
// function : NbSubElements
// purpose : Returns the amount of points in set
//=======================================================================
-Standard_Integer Select3D_InteriorSensitivePointSet::NbSubElements()
+Standard_Integer Select3D_InteriorSensitivePointSet::NbSubElements() const
{
return myPlanarPolygons.Length();
}
Standard_EXPORT virtual gp_Pnt CenterOfGeometry() const Standard_OVERRIDE;
//! Returns the amount of points in set
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
DEFINE_STANDARD_RTTIEXT(Select3D_InteriorSensitivePointSet,Select3D_SensitiveSet)
// function : NbSubElements
// purpose : Returns the amount of sub-entities in sensitive
//=======================================================================
-Standard_Integer Select3D_SensitiveBox::NbSubElements()
+Standard_Integer Select3D_SensitiveBox::NbSubElements() const
{
return 1;
}
const Standard_Real theZMax);
//! Returns the amount of sub-entities in sensitive
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
//! Returns the number of sub-entities or elements in sensitive entity.
//! Is used to determine if entity is complex and needs to pre-build BVH at the creation of sensitive entity step
//! or is light-weighted so the tree can be build on demand with unnoticeable delay.
- virtual Standard_Integer NbSubElements() = 0;
+ virtual Standard_Integer NbSubElements() const = 0;
//! Returns bounding box of a sensitive with transformation applied
virtual Select3D_BndBox3d BoundingBox() = 0;
// purpose : Returns the amount of sub-entities (points or planar convex
// polygons)
//=======================================================================
-Standard_Integer Select3D_SensitiveFace::NbSubElements()
+Standard_Integer Select3D_SensitiveFace::NbSubElements() const
{
return myFacePoints->NbSubElements();
}
Standard_EXPORT virtual void BVH() Standard_OVERRIDE;
//! Returns the amount of sub-entities (points or planar convex polygons)
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
private:
// function : NbSubElements
// purpose : Returns the amount of sub-entities
//=======================================================================
-Standard_Integer Select3D_SensitiveGroup::NbSubElements()
+Standard_Integer Select3D_SensitiveGroup::NbSubElements() const
{
return myEntities.Size();
}
SelectBasics_PickResult& thePickResult) Standard_OVERRIDE;
//! Returns the amount of sub-entities
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
// function : NbSubElements
// purpose : Returns the amount of sub-entities in sensitive
//=======================================================================
-Standard_Integer Select3D_SensitivePoint::NbSubElements()
+Standard_Integer Select3D_SensitivePoint::NbSubElements() const
{
return 1;
}
Standard_EXPORT Select3D_SensitivePoint (const Handle(SelectMgr_EntityOwner)& theOwnerId, const gp_Pnt& thePoint);
//! Returns the amount of sub-entities in sensitive
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
// Function: NbSubElements
// Purpose : Returns the amount of segments in poly
//==================================================
-Standard_Integer Select3D_SensitivePoly::NbSubElements()
+Standard_Integer Select3D_SensitivePoly::NbSubElements() const
{
return myPolyg.Size();
}
const Standard_Integer theNbPnts = 6);
//! Returns the amount of segments in poly
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
//! Returns the 3D points of the array used at construction time.
void Points3D (Handle(TColgp_HArray1OfPnt)& theHArrayOfPnt)
Standard_EXPORT virtual Standard_Integer Size() const Standard_OVERRIDE;
//! Returns the amount of nodes in triangulation
- virtual Standard_Integer NbSubElements() Standard_OVERRIDE
+ virtual Standard_Integer NbSubElements() const Standard_OVERRIDE
{
return !myGroups.IsNull() ? myGroups->Size() : myBvhIndices.NbElements;
}
// function : NbSubElements
// purpose : Returns the amount of points
//=======================================================================
-Standard_Integer Select3D_SensitiveSegment::NbSubElements()
+Standard_Integer Select3D_SensitiveSegment::NbSubElements() const
{
return 2;
}
const gp_Pnt& EndPoint() const { return myEnd; }
//! Returns the amount of points
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
Standard_EXPORT virtual Select3D_BndBox3d BoundingBox() Standard_OVERRIDE;
//! Returns the amount of points
- virtual Standard_Integer NbSubElements() Standard_OVERRIDE { return 3; }
+ virtual Standard_Integer NbSubElements() const Standard_OVERRIDE { return 3; }
virtual gp_Pnt CenterOfGeometry() const Standard_OVERRIDE { return myCentroid; }
// function : NbSubElements
// purpose : Returns the amount of nodes in triangulation
//=======================================================================
-Standard_Integer Select3D_SensitiveTriangulation::NbSubElements()
+Standard_Integer Select3D_SensitiveTriangulation::NbSubElements() const
{
return myTriangul->Nodes().Length();
}
const Standard_Boolean theIsInterior);
//! Returns the amount of nodes in triangulation
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;
// function : NbSubElements
// purpose : Returns the amount of sub-entities
//=======================================================================
-Standard_Integer Select3D_SensitiveWire::NbSubElements()
+Standard_Integer Select3D_SensitiveWire::NbSubElements() const
{
return myEntities.Length();
}
Standard_EXPORT void Add (const Handle(Select3D_SensitiveEntity)& theSensitive);
//! Returns the amount of sub-entities
- Standard_EXPORT virtual Standard_Integer NbSubElements() Standard_OVERRIDE;
+ Standard_EXPORT virtual Standard_Integer NbSubElements() const Standard_OVERRIDE;
Standard_EXPORT virtual Handle(Select3D_SensitiveEntity) GetConnected() Standard_OVERRIDE;