-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include <GeometryGUI.h>
#include <GEOM_SelectionFilter.h>
+#include <GEOM_wrap.hxx>
#include <SUIT_Session.h>
#include <SUIT_OverrideCursor.h>
// Elem geom
- QGroupBox* elemsGrp = new QGroupBox( tr( "SMESH_ELEMENTS" ), mainFrame() );
+ QGroupBox* elemsGrp = new QGroupBox( tr( "ELEMENTS" ), mainFrame() );
+ elemsGrp->setToolTip( tr("ELEMENTS_TOOLTIP") );
QLabel* label = new QLabel( tr( "SMESH_GEOM" ), elemsGrp );
myElemGeomBtn = new QPushButton( elemsGrp );
myElemGeomBtn->setCheckable(true);
//================================================================================
/*!
- * \brief slot to enable/diable [Apply]
+ * \brief slot to enable/disable [Apply]
*/
//================================================================================
: SMESHGUI_SelectionOp(ActorSelection),
myDlg( 0 )
{
- myHelpFileName = "create_groups_from_geometry_page.html";
+ myHelpFileName = "create_groups_from_geometry.html";
}
SMESHGUI_GroupOnShapeOp::~SMESHGUI_GroupOnShapeOp()
*/
//================================================================================
-static SMESH::ElementType elementType(GEOM::GEOM_Object_var& geom)
+SMESH::ElementType SMESHGUI_GroupOnShapeOp::ElementType(GEOM::GEOM_Object_var geom)
{
if ( !geom->_is_nil() ) {
switch ( geom->GetShapeType() ) {
- case GEOM::VERTEX: return SMESH::NODE;
+ case GEOM::VERTEX: return SMESH::ELEM0D; // NODE; -- 0023613
case GEOM::EDGE: return SMESH::EDGE;
case GEOM::WIRE: return SMESH::EDGE;
case GEOM::FACE: return SMESH::FACE;
case GEOM::COMPOUND: break;
default: return SMESH::ALL;
}
- _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
- GEOM::GEOM_IShapesOperations_var aShapeOp =
- SMESH::GetGEOMGen()->GetIShapesOperations(aStudy->StudyId());
+ GEOM::GEOM_Gen_var geomGen = SMESH::GetGEOMGen( geom );
+ GEOM::GEOM_IShapesOperations_wrap aShapeOp = geomGen->GetIShapesOperations();
- if ( geom->GetType() == 37 ) { // geom group
- GEOM::GEOM_IGroupOperations_var aGroupOp =
- SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
+ if ( geom->GetType() == 37 ) // geom group
+ {
+ GEOM::GEOM_IGroupOperations_wrap aGroupOp = geomGen->GetIGroupOperations();
if ( !aGroupOp->_is_nil() ) {
+ // mainShape is an existing servant => GEOM_Object_var not GEOM_Object_wrap
GEOM::GEOM_Object_var mainShape = aGroupOp->GetMainShape( geom );
GEOM::ListOfLong_var ids = aGroupOp->GetObjects( geom );
if ( ids->length() && !mainShape->_is_nil() && !aShapeOp->_is_nil() ) {
- GEOM::GEOM_Object_var member = aShapeOp->GetSubShape( mainShape, ids[0] );
- return elementType( member );
+ GEOM::GEOM_Object_wrap member = aShapeOp->GetSubShape( mainShape, ids[0] );
+ return ElementType( member );
}
}
}
- else if ( !aShapeOp->_is_nil() ) { // just a compoud shape
+ else if ( !aShapeOp->_is_nil() ) // just a compoud shape
+ {
GEOM::ListOfLong_var ids = aShapeOp->SubShapeAllIDs( geom, GEOM::SHAPE, false );
if ( ids->length() ) {
- GEOM::GEOM_Object_var member = aShapeOp->GetSubShape( geom, ids[0] );
- return elementType( member );
+ GEOM::GEOM_Object_wrap member = aShapeOp->GetSubShape( geom, ids[0] );
+ return ElementType( member );
}
}
}
{
SUIT_OverrideCursor aWaitCursor;
- if (isStudyLocked())
+ if (SMESHGUI::isStudyLocked())
return false;
// study
- _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
+ _PTR(Study) aStudy = SMESH::getStudy();
if ( !aStudy ) return false;
// mesh
- _PTR(SObject) meshSO = aStudy->FindObjectID( myMeshID.toLatin1().data() );
+ _PTR(SObject) meshSO = aStudy->FindObjectID( myMeshID.toUtf8().data() );
SMESH::SMESH_Mesh_var mesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( meshSO );
if ( mesh->_is_nil() ) return false;
for ( int i = 0; geomID != geomEnd; ++geomID, ++i )
{
// selected geom
- _PTR(SObject) geomSO = aStudy->FindObjectID( geomID->toLatin1().data() );
+ _PTR(SObject) geomSO = aStudy->FindObjectID( geomID->toUtf8().data() );
GEOM::GEOM_Object_var geom = SMESH::SObjectToInterface<GEOM::GEOM_Object>(geomSO);
if ( geom->_is_nil() ) continue;
// group type
- SMESH::ElementType elemType = isNode ? SMESH::NODE : elementType( geom );
+ SMESH::ElementType elemType = isNode ? SMESH::NODE : ElementType( geom );
if ( elemType == SMESH::ALL )
continue;
// groupNames.append( name );
//printf( "apply() %s %s\n", (*geomID).latin1(), name.latin1() );
- group = mesh->CreateGroupFromGEOM( elemType, name.toLatin1().data(), geom );
+ group = mesh->CreateGroupFromGEOM( elemType, name.toUtf8().data(), geom );
if( !group->_is_nil() )
if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( group ) )
anEntryList.append( aSObject->GetID().c_str() );
if ( theId == _ELEM_GEOM || theId == _NODE_GEOM )
return new GEOM_SelectionFilter( (SalomeApp_Study*)study(), true );
else if ( theId == _MESH )
- return new SMESH_TypeFilter( MESH );
+ return new SMESH_TypeFilter( SMESH::MESH );
else
return ( SUIT_SelectionFilter*) 0;
}
QStringList goodNames, goodIds;
if (nbSelected > 0) {
// study
- if (_PTR(Study) aStudy = SMESH::GetActiveStudyDocument()) {
+ if (_PTR(Study) aStudy = SMESH::getStudy()) {
// mesh
- if (_PTR(SObject) meshSO = aStudy->FindObjectID( myMeshID.toLatin1().data() )) {
+ if (_PTR(SObject) meshSO = aStudy->FindObjectID( myMeshID.toUtf8().data() )) {
// shape to mesh
_PTR(SObject) anObj, shapeToMesh;
if (meshSO->FindSubObject(1, anObj) && anObj->ReferencedObject(shapeToMesh)) {
QStringList::iterator name = names.begin(), id = ids.begin(), idEnd = ids.end();
for (; id != idEnd; ++id, ++name ) {
// shape SO
- if (_PTR(SObject) shapeSO = aStudy->FindObjectID( id->toLatin1().data() )) {
+ if (_PTR(SObject) shapeSO = aStudy->FindObjectID( id->toUtf8().data() )) {
// check if shape SO is a child of shape to mesh
while ( shapeSO && shapeSO->GetID() != shapeToMesh->GetID() )
if ( shapeSO->Depth() < 2 )
}
}
- if ( myDlg->myElemGeomBtn->isChecked() ) // elem geomerty selection
+ if ( myDlg->myElemGeomBtn->isChecked() ) // elem geometry selection
{
myDlg->myElemGeomList->clear();
myDlg->myElemGeomList->addItems( goodNames );
myElemGeoIDs = goodIds;
}
- else if ( myDlg->myNodeGeomBtn->isChecked() ) // Node geomerty selection
+ else if ( myDlg->myNodeGeomBtn->isChecked() ) // Node geometry selection
{
myDlg->myNodeGeomList->clear();
myDlg->myNodeGeomList->addItems( goodNames );
myNodeGeoIDs = goodIds;
}
- // enable/diable Apply, which can change at selection
+ // enable/disable Apply, which can change at selection
myDlg->updateButtons();
}