-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <SalomeApp_Application.h>
#include <LightApp_VTKSelector.h>
#include <SVTK_ViewWindow.h>
-#include <LightApp_SelectionMgr.h>
-#include <LightApp_DataOwner.h>
// IDL includes
#include <SALOMEconfig.h>
if( mgr )
{
- myOwners.clear();
- mgr->selected(myOwners, client);
for( int i=0, n=count(); i<n; i++ ) {
myTypes.append( typeName( type( entry( i ) ) ) );
myControls.append( controlMode( i ) );
case SMESH_Actor::eMultiConnection2D: mode = "eMultiConnection2D"; break;
case SMESH_Actor::eArea: mode = "eArea"; break;
case SMESH_Actor::eVolume3D: mode = "eVolume3D"; break;
+ case SMESH_Actor::eScaledJacobian: mode = "eScaledJacobian"; break;
case SMESH_Actor::eMaxElementLength2D: mode = "eMaxElementLength2D"; break;
case SMESH_Actor::eMaxElementLength3D: mode = "eMaxElementLength3D"; break;
case SMESH_Actor::eTaper: mode = "eTaper"; break;
case SMESH_Actor::eAspectRatio: mode = "eAspectRatio"; break;
case SMESH_Actor::eAspectRatio3D: mode = "eAspectRatio3D"; break;
+ case SMESH_Actor::eWarping3D: mode = "eWarping3D"; break;
case SMESH_Actor::eMinimumAngle: mode = "eMinimumAngle"; break;
case SMESH_Actor::eWarping: mode = "eWarping"; break;
case SMESH_Actor::eSkew: mode = "eSkew"; break;
case SMESH_Actor::eMultiConnection2D:
case SMESH_Actor::eArea:
case SMESH_Actor::eVolume3D:
+ case SMESH_Actor::eScaledJacobian:
case SMESH_Actor::eMaxElementLength2D:
case SMESH_Actor::eMaxElementLength3D:
case SMESH_Actor::eTaper:
case SMESH_Actor::eAspectRatio3D:
case SMESH_Actor::eMinimumAngle:
case SMESH_Actor::eWarping:
+ case SMESH_Actor::eWarping3D:
case SMESH_Actor::eSkew:
result = true;
break;
bool SMESHGUI_Selection::canBreakLink( int ind ) const
{
- if ( ind >= 0 && ind < myTypes.count()) {
- if (isReference(ind)) {
- SUIT_DataOwner* aOwn = myOwners.at(ind);
- LightApp_DataOwner* sowner = dynamic_cast<LightApp_DataOwner*>(aOwn);
- QString aEntry = sowner->entry();
- _PTR(SObject) aSObject = SMESH::getStudy()->FindObjectID(aEntry.toStdString());
- _PTR(SObject) aFatherObj = aSObject->GetFather();
- _PTR(SComponent) aComponent = aFatherObj->GetFatherComponent();
- if (aComponent->ComponentDataType() == "SMESH") {
- QString aObjEntry = entry(ind);
- _PTR(SObject) aGeomSObject = SMESH::getStudy()->FindObjectID(aObjEntry.toStdString());
- GEOM::GEOM_Object_var aObject = SMESH::SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
- if (!aObject->_is_nil())
- return aObject->IsParametrical();
+ if ( ind >= 0 && isReference(ind) ) {
+ QString aEntry = objectInfo(ind, OI_RefEntry).toString();
+ if (!aEntry.isEmpty()) {
+ _PTR(SObject) aSObject = SMESH::getStudy()->FindObjectID( aEntry.toStdString());
+ if (aSObject) {
+ _PTR(SObject) aFatherObj = aSObject->GetFather();
+ if (aFatherObj) {
+ _PTR(SComponent) aComponent = aFatherObj->GetFatherComponent();
+ if (aComponent && aComponent->ComponentDataType() == "SMESH") {
+ QString aObjEntry = entry(ind);
+ _PTR(SObject) aGeomSObject = SMESH::getStudy()->FindObjectID(aObjEntry.toStdString());
+ GEOM::GEOM_Object_var aObject = SMESH::SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
+ if (!aObject->_is_nil())
+ return aObject->IsParametrical();
+ }
+ }
}
}
}