-// Copyright (C) 2007-2023 CEA, EDF, 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
*/
GEOM_Swig::~GEOM_Swig()
{
+ // Delete selector because of sigsegv in TEventInitLocalSelection::Execute()
+ // when call GEOM_Swig.initLocalSelection() from Python, close the study, create a new one and
+ // call it again.
+ if (myOCCSelector)
+ {
+ delete myOCCSelector;
+ myOCCSelector = nullptr;
+ }
}
/*!
return result;
}
+
+/*!libGEOM_Swig
+ \brief Set local subShapes selection on a given shape
+ \param ids sub-shapes ids
+ */
+void GEOM_Swig::setLocalSelection(const std::vector<int> ids)
+{
+ class TEventSetLocalSelection: public SALOME_Event
+ {
+ public:
+ typedef std::vector<int> TResult;
+ TResult myIds;
+ TResult myResult;
+
+ TEventSetLocalSelection(const std::vector<int> _ids) : myIds(_ids) {}
+
+ virtual void Execute()
+ {
+ MESSAGE("TEventSetLocalSelection myLocalSelector: " << myLocalSelector);
+ if (myLocalSelector)
+ myLocalSelector->setSelection(myIds);
+ }
+ };
+
+ ProcessEvent(new TEventSetLocalSelection(ids));
+}
+
/*!
\brief close local subShapes selection on a given shape
*/