// Author : Nicolas REJNERI, Open CASCADE S.A.S.
#include <Standard_math.hxx> // E.A. must be included before Python.h to fix compilation on windows
+#ifdef HAVE_FINITE
+#undef HAVE_FINITE // VSR: avoid compilation warning on Linux : "HAVE_FINITE" redefined
+#endif
#include "Python.h"
// SMESH includes
#include "SMESHGUI.h"
#include "SMESHGUI_Hypotheses.h"
#include "SMESHGUI_Make2DFrom3DOp.h"
#include "SMESHGUI_MakeNodeAtPointDlg.h"
-//#include "SMESHGUI_MeshInfosDlg.h"
#include "SMESHGUI_Measurements.h"
#include "SMESHGUI_MeshInfo.h"
#include "SMESHGUI_MeshOp.h"
#include "SMESHGUI_SewingDlg.h"
#include "SMESHGUI_SingleEditDlg.h"
#include "SMESHGUI_SmoothingDlg.h"
-//#include "SMESHGUI_StandardMeshInfosDlg.h"
#include "SMESHGUI_SymmetryDlg.h"
#include "SMESHGUI_TranslationDlg.h"
#include "SMESHGUI_ScaleDlg.h"
#include "SMESHGUI_TransparencyDlg.h"
-//#include "SMESHGUI_WhatIsDlg.h"
#include "SMESHGUI_DuplicateNodesDlg.h"
#include "SMESHGUI_CopyMeshDlg.h"
{
// warn the user about presence of not supported elements
SMESH::long_array_var nbElems = aMeshOrGroup->GetMeshInfo();
- int nbPyramids = nbElems[ SMESH::Entity_Pyramid ] + nbElems[ SMESH::Entity_Quad_Pyramid ];
- if ( nbPyramids > 0 ) {
+ int nbNotSupported = ( nbElems[ SMESH::Entity_Pyramid ] +
+ nbElems[ SMESH::Entity_Quad_Pyramid ] +
+ nbElems[ SMESH::Entity_Hexagonal_Prism ] +
+ nbElems[ SMESH::Entity_Polygon ] +
+ nbElems[ SMESH::Entity_Polyhedra ] );
+ if ( nbNotSupported > 0 ) {
int aRet = SUIT_MessageBox::warning
(SMESHGUI::desktop(),
QObject::tr("SMESH_WRN_WARNING"),
QMap<QString, SMESH::MED_VERSION> aFilterMap;
//QString v21 (aMesh->GetVersionString(SMESH::MED_V2_1, 2));
if ( isMED ) {
- QString v22 (aMesh->GetVersionString(SMESH::MED_V2_2, 2));
- //aFilterMap.insert( QObject::tr( "MED_VX_FILES_FILTER" ).arg( v21 ) + " (*.med)", SMESH::MED_V2_1 );
- aFilterMap.insert( QObject::tr( "MED_VX_FILES_FILTER" ).arg( v22 ) + " (*.med)", SMESH::MED_V2_2 );
+ QString v22 (aMesh->GetVersionString(SMESH::MED_V2_2, 2));
+ //aFilterMap.insert( QObject::tr( "MED_VX_FILES_FILTER" ).arg( v21 ) + " (*.med)", SMESH::MED_V2_1 );
+ aFilterMap.insert( QObject::tr( "MED_VX_FILES_FILTER" ).arg( v22 ) + " (*.med)", SMESH::MED_V2_2 );
}
else { // isSAUV
- aFilterMap.insert("All files (*)", SMESH::MED_V2_1 );
- aFilterMap.insert("SAUV files (*.sauv)", SMESH::MED_V2_2 );
- aFilterMap.insert("SAUV files (*.sauve)", SMESH::MED_V2_1 );
+ aFilterMap.insert("All files (*)", SMESH::MED_V2_1 );
+ aFilterMap.insert("SAUV files (*.sauv)", SMESH::MED_V2_2 );
+ aFilterMap.insert("SAUV files (*.sauve)", SMESH::MED_V2_1 );
}
QStringList filters;
}
}
else if ( isSAUV )
- {
- for( aMeshIter = aMeshList.begin(); aMeshIter != aMeshList.end(); aMeshIter++ )
- {
- SMESH::SMESH_Mesh_var aMeshItem = SMESH::SMESH_Mesh::_narrow( (*aMeshIter).first );
- if( !aMeshItem->_is_nil() )
- aMeshItem->ExportSAUV( aFilename.toLatin1().data(), toCreateGroups );
- }
- }
+ {
+ for( aMeshIter = aMeshList.begin(); aMeshIter != aMeshList.end(); aMeshIter++ )
+ {
+ SMESH::SMESH_Mesh_var aMeshItem = SMESH::SMESH_Mesh::_narrow( (*aMeshIter).first );
+ if( !aMeshItem->_is_nil() )
+ aMeshItem->ExportSAUV( aFilename.toLatin1().data(), toCreateGroups );
+ }
+ }
else if ( isDAT )
{
if ( aMeshOrGroup->_is_equivalent( aMesh ))
Handle(SALOME_InteractiveObject) anIO = selected.First();
if(!anIO.IsNull()){
SMESH_Actor::eControl aControl = SMESH_Actor::eNone;
- if(SMESH_Actor *anActor = SMESH::FindActorByEntry(anIO->getEntry())){
+ if(SMESH_Actor *anActor = SMESH::FindActorByEntry(anIO->getEntry())) {
switch ( theCommandID ){
case 6001:
aControl = SMESH_Actor::eLength;
case 6027:
aControl = SMESH_Actor::eOverConstrainedFace;
break;
+ case 6028:
+ aControl = SMESH_Actor::eCoincidentNodes;
+ break;
+ case 6029:
+ aControl = SMESH_Actor::eCoincidentElems1D;
+ break;
+ case 6030:
+ aControl = SMESH_Actor:: eCoincidentElems2D;
+ break;
+ case 6031:
+ aControl = SMESH_Actor::eCoincidentElems3D;
+ break;
}
+
anActor->SetControlMode(aControl);
anActor->GetScalarBarActor()->SetTitle( functorToString( anActor->GetFunctor() ).toLatin1().constData() );
SMESH::RepaintCurrentView();
}
break;
}
- /*
- case 902: // STANDARD MESH INFOS
- {
- EmitSignalDeactivateDialog();
- LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
- SALOME_ListIO selected;
- if( aSel )
- aSel->selectedObjects( selected );
-
- if ( selected.Extent() > 1 ) { // a dlg for each IO
- SALOME_ListIO IOs;
- SALOME_ListIteratorOfListIO It (selected);
- for ( ; It.More(); It.Next() ) {
- IOs.Clear();
- IOs.Append( It.Value() );
- aSel->setSelectedObjects( IOs );
- ( new SMESHGUI_StandardMeshInfosDlg( this ) )->show();
- }
- // restore selection
- aSel->setSelectedObjects( selected );
- }
- else
- ( new SMESHGUI_StandardMeshInfosDlg( this ) )->show();
- break;
- }
- case 903: // WHAT IS
- {
- EmitSignalDeactivateDialog();
- ( new SMESHGUI_WhatIsDlg( this ) )->show();
- break;
- }
- */
case 904: // FIND ELEM
{
}
case 4009: // ELEM0D
- case 4010: // GEOM::EDGE
+ case 4010: // EDGE
case 4021: // TRIANGLE
case 4022: // QUAD
case 4023: // POLYGON
case 4031: // TETRA
case 4032: // HEXA
+ case 4133: // PENTA
+ case 4134: // PYRAMID
+ case 4135: // OCTA12
{
if(checkLock(aStudy)) break;
if ( vtkwnd ) {
EmitSignalDeactivateDialog();
- SMDSAbs_ElementType type = SMDSAbs_Edge;
- int nbNodes = 2;
+ SMDSAbs_EntityType type = SMDSEntity_Edge;
switch (theCommandID) {
- case 4009: // ELEM0D
- type = SMDSAbs_0DElement; nbNodes = 1; break;
- case 4021: // TRIANGLE
- type = SMDSAbs_Face; nbNodes = 3; break;
- case 4022: // QUAD
- type = SMDSAbs_Face; nbNodes = 4; break;
- case 4031: // TETRA
- type = SMDSAbs_Volume; nbNodes = 4; break;
- case 4023: // POLYGON
- type = SMDSAbs_Face; nbNodes = 5; break; // 5 - identificator for POLYGON
- case 4032: // HEXA
- type = SMDSAbs_Volume; nbNodes = 8; break;
- case 4033: // POLYHEDRE
- type = SMDSAbs_Volume; nbNodes = 9; break; // 9 - identificator for POLYHEDRE
+ case 4009:
+ type = SMDSEntity_0D; break;
+ case 4021:
+ type = SMDSEntity_Triangle; break;
+ case 4022:
+ type = SMDSEntity_Quadrangle; break;
+ case 4031:
+ type = SMDSEntity_Tetra; break;
+ case 4023:
+ type = SMDSEntity_Polygon; break;
+ case 4032:
+ type = SMDSEntity_Hexa; break;
+ case 4133:
+ type = SMDSEntity_Penta; break;
+ case 4134:
+ type = SMDSEntity_Pyramid; break;
+ case 4135:
+ type = SMDSEntity_Hexagonal_Prism; break;
default:;
}
- ( new SMESHGUI_AddMeshElementDlg( this, type, nbNodes ) )->show();
+ ( new SMESHGUI_AddMeshElementDlg( this, type ) )->show();
}
else {
SUIT_MessageBox::warning(desktop(),
case 4034: // QUADRATIC EDGE
case 4035: // QUADRATIC TRIANGLE
case 4036: // QUADRATIC QUADRANGLE
+ case 4136: // BIQUADRATIC QUADRANGLE
case 4037: // QUADRATIC TETRAHEDRON
case 4038: // QUADRATIC PYRAMID
case 4039: // QUADRATIC PENTAHEDRON
case 4040: // QUADRATIC HEXAHEDRON
+ case 4140: // TRIQUADRATIC HEXAHEDRON
{
if(checkLock(aStudy)) break;
if ( vtkwnd ) {
EmitSignalDeactivateDialog();
- int type;
+ SMDSAbs_EntityType type;
switch (theCommandID) {
case 4034:
- type = QUAD_EDGE; break;
+ type = SMDSEntity_Quad_Edge; break;
case 4035:
- type = QUAD_TRIANGLE; break;
+ type = SMDSEntity_Quad_Triangle; break;
case 4036:
- type = QUAD_QUADRANGLE; break;
+ type = SMDSEntity_Quad_Quadrangle; break;
+ case 4136:
+ type = SMDSEntity_BiQuad_Quadrangle; break;
case 4037:
- type = QUAD_TETRAHEDRON; break;
+ type = SMDSEntity_Quad_Tetra; break;
case 4038:
- type = QUAD_PYRAMID; break;
+ type = SMDSEntity_Quad_Pyramid; break;
case 4039:
- type = QUAD_PENTAHEDRON; break;
+ type = SMDSEntity_Quad_Penta; break;
case 4040:
- type = QUAD_HEXAHEDRON;
+ type = SMDSEntity_Quad_Hexa;
+ case 4140:
+ type = SMDSEntity_TriQuad_Hexa;
break;
default:;
}
}
catch (const SALOME::SALOME_Exception& S_ex) {
SalomeApp_Tools::QtCatchCorbaException(S_ex);
- }
+ }
catch (...) {
}
}
case 6025:
case 6026:
case 6027:
+ case 6028:
+ case 6029:
+ case 6030:
+ case 6031:
if ( vtkwnd ) {
LightApp_SelectionMgr* mgr = selectionMgr();
// function : createSMESHAction
// purpose :
//=======================================================================
-void SMESHGUI::createSMESHAction( const int id, const QString& po_id, const QString& icon_id,
+void SMESHGUI::createSMESHAction( const int id, const QString& po_id, const QString& icon_id,
const int key, const bool toggle, const QString& shortcutAction )
{
QIcon icon;
menu = tr( QString( "MEN_%1" ).arg( po_id ).toLatin1().data() ),
status_bar = tr( QString( "STB_%1" ).arg( po_id ).toLatin1().data() );
- createAction( id, tooltip, icon, menu, status_bar, key, parent,
+ createAction( id, tooltip, icon, menu, status_bar, key, parent,
toggle, this, SLOT( OnGUIEvent() ), shortcutAction );
}
createSMESHAction( 6001, "LENGTH", "ICON_LENGTH", 0, true );
createSMESHAction( 6002, "FREE_EDGE", "ICON_FREE_EDGE", 0, true );
createSMESHAction( 6021, "FREE_FACES", "ICON_FREE_FACES", 0, true );
- createSMESHAction( 6022, "MAX_ELEMENT_LENGTH_2D", "ICON_MAX_ELEMENT_LENGTH_2D", 0, true );
- createSMESHAction( 6023, "MAX_ELEMENT_LENGTH_3D", "ICON_MAX_ELEMENT_LENGTH_3D", 0, true );
- createSMESHAction( 6024, "BARE_BORDER_VOLUME","ICON_BARE_BORDER_VOLUME", 0, true );
- createSMESHAction( 6025, "BARE_BORDER_FACE","ICON_BARE_BORDER_FACE", 0, true );
+ createSMESHAction( 6022, "MAX_ELEMENT_LENGTH_2D", "ICON_MAX_ELEMENT_LENGTH_2D", 0, true );
+ createSMESHAction( 6023, "MAX_ELEMENT_LENGTH_3D", "ICON_MAX_ELEMENT_LENGTH_3D", 0, true );
+ createSMESHAction( 6024, "BARE_BORDER_VOLUME", "ICON_BARE_BORDER_VOLUME", 0, true );
+ createSMESHAction( 6025, "BARE_BORDER_FACE", "ICON_BARE_BORDER_FACE", 0, true );
createSMESHAction( 6026, "OVER_CONSTRAINED_VOLUME","ICON_OVER_CONSTRAINED_VOLUME", 0, true );
- createSMESHAction( 6027, "OVER_CONSTRAINED_FACE","ICON_OVER_CONSTRAINED_FACE", 0, true );
+ createSMESHAction( 6027, "OVER_CONSTRAINED_FACE", "ICON_OVER_CONSTRAINED_FACE", 0, true );
+ createSMESHAction( 6028, "EQUAL_NODE", "ICON_EQUAL_NODE", 0, true );
+ createSMESHAction( 6029, "EQUAL_EDGE", "ICON_EQUAL_EDGE", 0, true );
+ createSMESHAction( 6030, "EQUAL_FACE", "ICON_EQUAL_FACE", 0, true );
+ createSMESHAction( 6031, "EQUAL_VOLUME", "ICON_EQUAL_VOLUME", 0, true );
createSMESHAction( 6003, "FREE_BORDER", "ICON_FREE_EDGE_2D", 0, true );
createSMESHAction( 6004, "CONNECTION", "ICON_CONNECTION", 0, true );
createSMESHAction( 6005, "FREE_NODE", "ICON_FREE_NODE", 0, true );
createSMESHAction( 4023, "POLYGON", "ICON_DLG_POLYGON" );
createSMESHAction( 4031, "TETRA", "ICON_DLG_TETRAS" );
createSMESHAction( 4032, "HEXA", "ICON_DLG_HEXAS" );
- createSMESHAction( 4041, "REMOVE_NODES", "ICON_DLG_REM_NODE" );
- createSMESHAction( 4042, "REMOVE_ELEMENTS", "ICON_DLG_REM_ELEMENT" );
- createSMESHAction( 4044, "REMOVE_ORPHAN_NODES", "ICON_DLG_REM_ORPHAN_NODES" );
+ createSMESHAction( 4133, "PENTA", "ICON_DLG_PENTA" );
+ createSMESHAction( 4134, "PYRAMID", "ICON_DLG_PYRAMID" );
+ createSMESHAction( 4135, "OCTA", "ICON_DLG_OCTA" );
+ createSMESHAction( 4033, "POLYHEDRON", "ICON_DLG_POLYHEDRON" );
+ createSMESHAction( 4034, "QUADRATIC_EDGE", "ICON_DLG_QUADRATIC_EDGE" );
+ createSMESHAction( 4035, "QUADRATIC_TRIANGLE", "ICON_DLG_QUADRATIC_TRIANGLE" );
+ createSMESHAction( 4036, "QUADRATIC_QUADRANGLE", "ICON_DLG_QUADRATIC_QUADRANGLE" );
+ createSMESHAction( 4136, "BIQUADRATIC_QUADRANGLE", "ICON_DLG_BIQUADRATIC_QUADRANGLE" );
+ createSMESHAction( 4037, "QUADRATIC_TETRAHEDRON", "ICON_DLG_QUADRATIC_TETRAHEDRON" );
+ createSMESHAction( 4038, "QUADRATIC_PYRAMID", "ICON_DLG_QUADRATIC_PYRAMID" );
+ createSMESHAction( 4039, "QUADRATIC_PENTAHEDRON", "ICON_DLG_QUADRATIC_PENTAHEDRON" );
+ createSMESHAction( 4040, "QUADRATIC_HEXAHEDRON", "ICON_DLG_QUADRATIC_HEXAHEDRON" );
+ createSMESHAction( 4140, "TRIQUADRATIC_HEXAHEDRON", "ICON_DLG_TRIQUADRATIC_HEXAHEDRON" );
+ createSMESHAction( 4041, "REMOVE_NODES", "ICON_DLG_REM_NODE" );
+ createSMESHAction( 4042, "REMOVE_ELEMENTS", "ICON_DLG_REM_ELEMENT" );
+ createSMESHAction( 4044, "REMOVE_ORPHAN_NODES", "ICON_DLG_REM_ORPHAN_NODES" );
createSMESHAction( 4043, "CLEAR_MESH" , "ICON_CLEAR_MESH" );
createSMESHAction( 4051, "RENUM_NODES", "ICON_DLG_RENUMBERING_NODES" );
createSMESHAction( 4052, "RENUM_ELEMENTS", "ICON_DLG_RENUMBERING_ELEMENTS" );
createSMESHAction( 300, "ERASE" );
createSMESHAction( 301, "DISPLAY" );
createSMESHAction( 302, "DISPLAY_ONLY" );
- createSMESHAction( 4033, "POLYHEDRON", "ICON_DLG_POLYHEDRON" );
- createSMESHAction( 4034, "QUADRATIC_EDGE", "ICON_DLG_QUADRATIC_EDGE" );
- createSMESHAction( 4035, "QUADRATIC_TRIANGLE", "ICON_DLG_QUADRATIC_TRIANGLE" );
- createSMESHAction( 4036, "QUADRATIC_QUADRANGLE", "ICON_DLG_QUADRATIC_QUADRANGLE" );
- createSMESHAction( 4037, "QUADRATIC_TETRAHEDRON", "ICON_DLG_QUADRATIC_TETRAHEDRON" );
- createSMESHAction( 4038, "QUADRATIC_PYRAMID", "ICON_DLG_QUADRATIC_PYRAMID" );
- createSMESHAction( 4039, "QUADRATIC_PENTAHEDRON", "ICON_DLG_QUADRATIC_PENTAHEDRON" );
- createSMESHAction( 4040, "QUADRATIC_HEXAHEDRON", "ICON_DLG_QUADRATIC_HEXAHEDRON" );
// ----- create menu --------------
int fileId = createMenu( tr( "MEN_FILE" ), -1, 1 ),
createMenu( separator(), meshId, -1 );
createMenu( 6005, nodeId, -1 );
+ createMenu( 6028, nodeId, -1 );
createMenu( 6002, edgeId, -1 );
createMenu( 6003, edgeId, -1 );
createMenu( 6001, edgeId, -1 );
createMenu( 6004, edgeId, -1 );
+ createMenu( 6029, edgeId, -1 );
createMenu( 6021, faceId, -1 );
createMenu( 6025, faceId, -1 );
createMenu( 6027, faceId, -1 );
createMenu( 6015, faceId, -1 );
createMenu( 6016, faceId, -1 );
createMenu( 6022, faceId, -1 );
+ createMenu( 6030, faceId, -1 );
createMenu( 6017, volumeId, -1 );
createMenu( 6009, volumeId, -1 );
createMenu( 6023, volumeId, -1 );
createMenu( 6024, volumeId, -1 );
createMenu( 6026, volumeId, -1 );
+ createMenu( 6031, volumeId, -1 );
createMenu( 4000, addId, -1 );
createMenu( 4009, addId, -1 );
createMenu( 4023, addId, -1 );
createMenu( 4031, addId, -1 );
createMenu( 4032, addId, -1 );
+ createMenu( 4133, addId, -1 );
+ createMenu( 4134, addId, -1 );
+ createMenu( 4135, addId, -1 );
createMenu( 4033, addId, -1 );
createMenu( separator(), addId, -1 );
createMenu( 4034, addId, -1 );
createMenu( 4035, addId, -1 );
createMenu( 4036, addId, -1 );
+ createMenu( 4136, addId, -1 );
createMenu( 4037, addId, -1 );
createMenu( 4038, addId, -1 );
createMenu( 4039, addId, -1 );
createMenu( 4040, addId, -1 );
+ createMenu( 4140, addId, -1 );
createMenu( 4041, removeId, -1 );
createMenu( 4042, removeId, -1 );
createTool( separator(), meshTb );
createTool( 6005, ctrlTb );
+ createTool( 6028, ctrlTb );
createTool( separator(), ctrlTb );
createTool( 6002, ctrlTb );
createTool( 6003, ctrlTb );
createTool( 6001, ctrlTb );
createTool( 6004, ctrlTb );
+ createTool( 6029, ctrlTb );
createTool( separator(), ctrlTb );
createTool( 6021, ctrlTb );
createTool( 6025, ctrlTb );
createTool( 6015, ctrlTb );
createTool( 6016, ctrlTb );
createTool( 6022, ctrlTb );
+ createTool( 6030, ctrlTb );
createTool( separator(), ctrlTb );
createTool( 6017, ctrlTb );
createTool( 6009, ctrlTb );
createTool( 6023, ctrlTb );
createTool( 6024, ctrlTb );
createTool( 6026, ctrlTb );
+ createTool( 6031, ctrlTb );
createTool( separator(), ctrlTb );
createTool( 4000, addRemTb );
createTool( 4023, addRemTb );
createTool( 4031, addRemTb );
createTool( 4032, addRemTb );
+ createTool( 4133, addRemTb );
+ createTool( 4134, addRemTb );
+ createTool( 4135, addRemTb );
createTool( 4033, addRemTb );
createTool( separator(), addRemTb );
createTool( 4034, addRemTb );
createTool( 4035, addRemTb );
createTool( 4036, addRemTb );
+ createTool( 4136, addRemTb );
createTool( 4037, addRemTb );
createTool( 4038, addRemTb );
createTool( 4039, addRemTb );
createTool( 4040, addRemTb );
+ createTool( 4140, addRemTb );
createTool( separator(), addRemTb );
createTool( 4041, addRemTb );
createTool( 4042, addRemTb );
popupMgr()->insert( separator(), -1, 0 );
createPopupItem( 417, OB, mesh + " " + subMesh ); // convert to quadratic
createPopupItem( 418, OB, mesh + " " + group, // create 2D mesh from 3D
- "&& dim>=2");
+ "&& dim>=2");
popupMgr()->insert( separator(), -1, 0 );
QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( dc );
popupMgr()->setRule( action( 6005 ), aMeshInVtkHasNodes, QtxPopupMgr::VisibleRule );
popupMgr()->setRule( action( 6005 ), "controlMode = 'eFreeNodes'", QtxPopupMgr::ToggleRule );
+ popupMgr()->insert ( action( 6028 ), aSubId, -1 ); // EQUAL_NODE
+ popupMgr()->setRule( action( 6028 ), aMeshInVtkHasNodes, QtxPopupMgr::VisibleRule );
+ popupMgr()->setRule( action( 6028 ), "controlMode = 'eCoincidentNodes'", QtxPopupMgr::ToggleRule);
+
aSubId = popupMgr()->insert( tr( "MEN_EDGE_CTRL" ), anId, -1 ); // EDGE CONTROLS
popupMgr()->insert( action( 6002 ), aSubId, -1 ); // FREE_EDGE
popupMgr()->insert( action( 6004 ), aSubId, -1 ); // CONNECTION
popupMgr()->setRule( action( 6004 ), aMeshInVtkHasEdges, QtxPopupMgr::VisibleRule );
popupMgr()->setRule( action( 6004 ), "controlMode = 'eMultiConnection'", QtxPopupMgr::ToggleRule );
+ popupMgr()->insert ( action( 6029 ), aSubId, -1 ); // EQUAL_EDGE
+ popupMgr()->setRule( action( 6029 ), aMeshInVtkHasEdges, QtxPopupMgr::VisibleRule );
+ popupMgr()->setRule( action( 6029 ), "controlMode = 'eCoincidentElems1D'", QtxPopupMgr::ToggleRule);
aSubId = popupMgr()->insert( tr( "MEN_FACE_CTRL" ), anId, -1 ); // FACE CONTROLS
popupMgr()->insert ( action( 6027 ), aSubId, -1 ); // OVER_CONSTRAINED_FACE
popupMgr()->setRule( action( 6027 ), aMeshInVtkHasFaces, QtxPopupMgr::VisibleRule );
popupMgr()->setRule( action( 6027 ), "controlMode = 'eOverConstrainedFace'", QtxPopupMgr::ToggleRule );
+ popupMgr()->insert ( action( 6030 ), aSubId, -1 ); // EQUAL_FACE
+ popupMgr()->setRule( action( 6030 ), aMeshInVtkHasFaces, QtxPopupMgr::VisibleRule );
+ popupMgr()->setRule( action( 6030 ), "controlMode = 'eCoincidentElems2D'", QtxPopupMgr::ToggleRule );
aSubId = popupMgr()->insert( tr( "MEN_VOLUME_CTRL" ), anId, -1 ); // VOLUME CONTROLS
popupMgr()->setRule( action( 6026 ), aMeshInVtkHasVolumes, QtxPopupMgr::VisibleRule );
popupMgr()->setRule( action( 6026 ), "controlMode = 'eOverConstrainedVolume'", QtxPopupMgr::ToggleRule );
+ popupMgr()->insert ( action( 6031 ), aSubId, -1 ); // EQUAL_VOLUME
+ popupMgr()->setRule( action( 6031 ), aMeshInVtkHasVolumes, QtxPopupMgr::VisibleRule );
+ popupMgr()->setRule( action( 6031 ), "controlMode = 'eCoincidentElems3D'", QtxPopupMgr::ToggleRule );
+
popupMgr()->insert( separator(), anId, -1 );
popupMgr()->insert( action( 201 ), anId, -1 ); // SCALAR_BAR_PROP
GetSMESHGen()->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
updateObjBrowser(); // objects can be removed
}
-
+
// get all view currently opened in the study and connect their signals to
// the corresponding slots of the class.
SUIT_Desktop* aDesk = study->application()->desktop();
{
if ( dynamic_cast<SVTK_ViewManager*>( mgr ) ) {
SMESH::UpdateSelectionProp( this );
-
+
QVector<SUIT_ViewWindow*> aViews = mgr->getViews();
for(int i = 0; i < aViews.count() ; i++){
SUIT_ViewWindow *sf = aViews[i];
setPreferenceProperty( chunkSize, "min", 0 );
setPreferenceProperty( chunkSize, "max", 1000 );
setPreferenceProperty( chunkSize, "step", 50 );
-
+
// Mesh tab ------------------------------------------------------------------------
int meshTab = addPreference( tr( "PREF_TAB_MESH" ) );
int nodeGroup = addPreference( tr( "PREF_GROUP_NODES" ), meshTab );
int ColorId = addPreference( tr( "PREF_FILL" ), elemGroup, LightApp_Preferences::BiColor, "SMESH", "fill_color" );
addPreference( tr( "PREF_COLOR_0D" ), elemGroup, LightApp_Preferences::Color, "SMESH", "elem0d_color" );
-
+
addPreference( tr( "PREF_OUTLINE" ), elemGroup, LightApp_Preferences::Color, "SMESH", "outline_color" );
addPreference( tr( "PREF_WIREFRAME" ), elemGroup, LightApp_Preferences::Color, "SMESH", "wireframe_color" );
-
+
setPreferenceProperty( ColorId, "text", tr("PREF_BACKFACE") );
int grpGroup = addPreference( tr( "PREF_GROUP_GROUPS" ), meshTab );
setPreferenceProperty( hh, "min", 0.0 );
setPreferenceProperty( hh, "max", 1.0 );
setPreferenceProperty( hh, "step", 0.1 );
-
+
int distributionGr = addPreference( tr( "SMESH_DISTRIBUTION_SCALARBAR" ), sbarTab, LightApp_Preferences::Auto, "SMESH", "distribution_visibility" );
int coloringType = addPreference( tr( "SMESH_DISTRIBUTION_COLORING_TYPE" ), distributionGr, LightApp_Preferences::Selector, "SMESH", "distribution_coloring_type" );
setPreferenceProperty( distributionGr, "columns", 3 );
QStringList types;
- types.append( tr( "SMESH_MONOCOLOR" ) );
+ types.append( tr( "SMESH_MONOCOLOR" ) );
types.append( tr( "SMESH_MULTICOLOR" ) );
indices.clear(); indices.append( 0 ); indices.append( 1 );
setPreferenceProperty( coloringType, "strings", types );
// Colors (surface:edge:)
vtkFloatingPointType r, g, b;
int delta;
-
+
aSmeshActor->GetSufaceColor(r, g, b, delta);
QString colorStr ("surface");
colorStr += gDigitsSep; colorStr += QString::number(r);
colorStr += gDigitsSep; colorStr += "backsurface";
colorStr += gDigitsSep; colorStr += QString::number(delta);
-
+
aSmeshActor->GetEdgeColor(r, g, b);
colorStr += gDigitsSep; colorStr += "edge";
for ( ; anIter2 != anActorList.end(); anIter2++ ) {
if( aSmeshActor == *anIter2 ) {
ip->setParameter( entry, param + QString::number( ++aPlaneId ).toLatin1().constData(),
- QString::number( anId ).toLatin1().constData() );
+ QString::number( anId ).toLatin1().constData() );
break;
}
}
continue;
TPlaneDataList& aPlaneDataList = aPlaneDataMap[ aViewId ];
- aPlaneDataList.push_back( aPlaneData );
+ aPlaneDataList.push_back( aPlaneData );
}
}
"surface:r:g:b:backsurface:r:g:b:edge:r:g:b:node:r:g:b or surface:r:g:b:backsurface:delta:edge:r:g:b:node:r:g:b:outline:r:g:b");
}
else {
- int delta = 0;
+ int delta = 0;
float er,eg,eb;
float nr,ng,nb;
vtkFloatingPointType otr,otg,otb;
//Old case backsurface color is independent
if( colors.count() == 16 ) {
QColor ffc;
- SMESH::GetColor( "SMESH", "fill_color", ffc, delta, "0,170,255|-100" ) ;
+ SMESH::GetColor( "SMESH", "fill_color", ffc, delta, "0,170,255|-100" ) ;
er = colors[9].toFloat();
eg = colors[10].toFloat();
eb = colors[11].toFloat();
-
+
nr = colors[13].toFloat();
ng = colors[14].toFloat();
nb = colors[15].toFloat();
er = colors[7].toFloat();
eg = colors[8].toFloat();
eb = colors[9].toFloat();
-
+
nr = colors[11].toFloat();
ng = colors[12].toFloat();
nb = colors[13].toFloat();
#ifndef DISABLE_PLOT2DVIEWER
//Crear all Plot2d Viewers if need.
SMESH::ClearPlot2Viewers(pview);
-#endif
+#endif
}
/*!
void SMESHGUI::connectView( const SUIT_ViewWindow* pview ) {
if(!pview)
return;
-
+
SUIT_ViewManager* viewMgr = pview->getViewManager();
if ( viewMgr ) {
disconnect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
-
+
connect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
}
}
-
+
/*!
\brief Return \c true if object can be renamed
*/
bool appRes = SalomeApp_Module::renameAllowed(entry);
if( !appRes )
return false;
-
+
// check type to prevent renaming of inappropriate objects
int aType = SMESHGUI_Selection::type(qPrintable(entry), aStudy);
if (aType == MESH || aType == GROUP ||
\brief Return \c true if rename operation finished successfully, \c false otherwise.
*/
bool SMESHGUI::renameObject( const QString& entry, const QString& name) {
-
+
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>( application() );
if( !anApp )
return false;
-
+
_PTR(Study) aStudy = SMESH::GetActiveStudyDocument(); //Document OCAF de l'etude active
if( !aStudy )
return false;
bool appRes = SalomeApp_Module::renameObject(entry,name);
if( !appRes )
return false;
-
+
_PTR(SObject) obj = aStudy->FindObjectID( qPrintable(entry) );
_PTR(GenericAttribute) anAttr;
_PTR(AttributeName) aName;
aType == HYPOTHESIS || aType == ALGORITHM) {
if ( !name.isEmpty() ) {
SMESHGUI::GetSMESHGen()->SetName(obj->GetIOR().c_str(), qPrintable(name) );
-
+
// update name of group object and its actor
- Handle(SALOME_InteractiveObject) IObject =
+ Handle(SALOME_InteractiveObject) IObject =
new SALOME_InteractiveObject ( qPrintable(entry), "SMESH", qPrintable(name) );
-
+
SMESH::SMESH_GroupBase_var aGroupObject = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
if( !aGroupObject->_is_nil() ) {
aGroupObject->SetName( qPrintable(name) );
}
return true;
}
- }
+ }
}
}
return false;