//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// 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
// 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
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
else if ( p=="labeledTypes" ) val = QVariant( labeledTypes( ind ) );
else if ( p=="shrinkMode" ) val = QVariant( shrinkMode( ind ) );
else if ( p=="entityMode" ) val = QVariant( entityMode( ind ) );
else if ( p=="labeledTypes" ) val = QVariant( labeledTypes( ind ) );
else if ( p=="shrinkMode" ) val = QVariant( shrinkMode( ind ) );
else if ( p=="entityMode" ) val = QVariant( entityMode( ind ) );
else if ( p=="isNumFunctor" ) val = QVariant( isNumFunctor( ind ) );
else if ( p=="displayMode" ) val = QVariant( displayMode( ind ) );
else if ( p=="isComputable" ) val = QVariant( isComputable( ind ) );
else if ( p=="isNumFunctor" ) val = QVariant( isNumFunctor( ind ) );
else if ( p=="displayMode" ) val = QVariant( displayMode( ind ) );
else if ( p=="isComputable" ) val = QVariant( isComputable( ind ) );
+//=======================================================================
+//function : parameter
+//purpose :
+//=======================================================================
+QVariant SMESHGUI_Selection::parameter( const QString& p ) const
+{
+ QVariant val;
+ if ( p=="controlMode" ) val = QVariant( controlMode() );
+
+ if ( val.isValid() )
+ return val;
+ else
+ return LightApp_Selection::parameter( p );
+}
+
+//=======================================================================
+//function : controlMode
+//purpose : gets global control mode; return SMESH_Actor::eControl
+//=======================================================================
+QString SMESHGUI_Selection::controlMode() const
+{
+ if( myControls.count() > 0 ) {
+ QString mode = myControls[0];
+ for( int ind = 1; ind < myControls.count(); ind++ ) {
+ if( mode != myControls[ind] )
+ return "eNone";
+ }
+ return mode;
+ }
+ return "eNone";
+}
+
if( !CORBA::is_nil( obj ) ) {
SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
if ( !CORBA::is_nil( mesh ) ) {
if( !CORBA::is_nil( obj ) ) {
SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
if ( !CORBA::is_nil( mesh ) ) {
- if ( mesh->HasShapeToMesh() ) {
- GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
- return QVariant( !shape->_is_nil() );
- }
- else
- {
- return QVariant( mesh->NbFaces() !=0 );
- }
+ if ( mesh->HasShapeToMesh() ) {
+ GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
+ return QVariant( !shape->_is_nil() );
+ }
+ else
+ {
+ return QVariant( mesh->NbFaces() !=0 );
+ }
- GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
- return QVariant( !shape->_is_nil() );
+ GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
+ return QVariant( !shape->_is_nil() );
if ( objComponent->ComponentDataType() == "SMESH" ) {
if ( objComponent->GetIOR() == obj->GetIOR() ) {
if ( objComponent->ComponentDataType() == "SMESH" ) {
if ( objComponent->GetIOR() == obj->GetIOR() ) {
- int aLevel = obj->Depth() - objComponent->Depth(),
- aFTag = objFather->Tag(),
- anOTag = obj->Tag();
-
- switch ( aLevel )
- {
- case 1:
- if ( anOTag >= SMESH::Tag_FirstMeshRoot )
- res = SMESH::MESH;
- break;
- case 2:
- switch ( aFTag )
- {
- case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break;
- case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break;
- default: break;
- }
- break;
- case 3:
- switch ( aFTag )
- {
- case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break;
- case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break;
- case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break;
- case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break;
- case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break;
- default:
- if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP;
- else res = SMESH::SUBMESH;
- break;
- }
- break;
- }
+ int aLevel = obj->Depth() - objComponent->Depth(),
+ aFTag = objFather->Tag(),
+ anOTag = obj->Tag();
+
+ switch ( aLevel )
+ {
+ case 1:
+ if ( anOTag >= SMESH::Tag_FirstMeshRoot )
+ res = SMESH::MESH;
+ break;
+ case 2:
+ switch ( aFTag )
+ {
+ case SMESH::Tag_HypothesisRoot: res = SMESH::HYPOTHESIS; break;
+ case SMESH::Tag_AlgorithmsRoot: res = SMESH::ALGORITHM; break;
+ default: break;
+ }
+ break;
+ case 3:
+ switch ( aFTag )
+ {
+ case SMESH::Tag_SubMeshOnVertex: res = SMESH::SUBMESH_VERTEX; break;
+ case SMESH::Tag_SubMeshOnEdge: res = SMESH::SUBMESH_EDGE; break;
+ case SMESH::Tag_SubMeshOnFace: res = SMESH::SUBMESH_FACE; break;
+ case SMESH::Tag_SubMeshOnSolid: res = SMESH::SUBMESH_SOLID; break;
+ case SMESH::Tag_SubMeshOnCompound: res = SMESH::SUBMESH_COMPOUND; break;
+ default:
+ if ( aFTag >= SMESH::Tag_FirstGroup) res = SMESH::GROUP;
+ else res = SMESH::SUBMESH;
+ break;
+ }
+ break;
+ }