-// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// SMESH SMESHGUI_Selection
// File : SMESHGUI_Selection.cxx
// Author : Alexander SOLOVYOV, Open CASCADE S.A.S.
-// SMESH includes
//
+
+// SMESH includes
#include "SMESHGUI_Selection.h"
#include "SMESHGUI_Utils.h"
//=======================================================================
//function : elemTypes
-//purpose : may return {'Elem0d' 'Edge' 'Face' 'Volume'} at most
+//purpose : may return {'Elem0d' 'Edge' 'Face' 'Volume' 'BallElem'} at most
//=======================================================================
QList<QVariant> SMESHGUI_Selection::elemTypes( int ind ) const
TVisualObjPtr object = actor->GetObject();
if ( object ) {
if ( object->GetNbEntities( SMDSAbs_0DElement )) types.append( "Elem0d" );
+ if ( object->GetNbEntities( SMDSAbs_Ball )) types.append( "BallElem" );
if ( object->GetNbEntities( SMDSAbs_Edge )) types.append( "Edge" );
if ( object->GetNbEntities( SMDSAbs_Face )) types.append( "Face" );
if ( object->GetNbEntities( SMDSAbs_Volume )) types.append( "Volume" );
//=======================================================================
//function : entityMode
-//purpose : may return {'Elem0d' 'Edge' 'Face' 'Volume'} at most
+//purpose : may return {'Elem0d' 'Edge' 'Face' 'Volume' 'BallElem' } at most
//=======================================================================
QList<QVariant> SMESHGUI_Selection::entityMode( int ind ) const
if ( aMode & SMESH_Actor::eFaces ) types.append( "Face" );
if ( aMode & SMESH_Actor::eEdges ) types.append( "Edge" );
if ( aMode & SMESH_Actor::e0DElements ) types.append( "Elem0d" );
+ if ( aMode & SMESH_Actor::eBallElem ) types.append( "BallElem" );
}
return types;
}
case SMESH_Actor::eBareBorderVolume: mode = "eBareBorderVolume"; break;
case SMESH_Actor::eOverConstrainedFace: mode = "eOverConstrainedFace"; break;
case SMESH_Actor::eOverConstrainedVolume: mode = "eOverConstrainedVolume"; break;
+ case SMESH_Actor::eCoincidentNodes: mode = "eCoincidentNodes"; break;
+ case SMESH_Actor::eCoincidentElems1D: mode = "eCoincidentElems1D"; break;
+ case SMESH_Actor::eCoincidentElems2D: mode = "eCoincidentElems2D"; break;
+ case SMESH_Actor::eCoincidentElems3D: mode = "eCoincidentElems3D"; break;
default:break;
}
}
case SMESH::FACE : dim = std::max( dim, 2 ); break;
case SMESH::VOLUME: dim = std::max( dim, 3 ); break;
case SMESH::ELEM0D: dim = std::max( dim, 0 ); break;
+ case SMESH::BALL : dim = std::max( dim, 0 ); break;
default:;
}
}
return -1;
if( objComponent->GetIOR()==obj->GetIOR() )
- return COMPONENT;
+ return SMESH::COMPONENT;
int aLevel = obj->Depth() - objComponent->Depth(),
aFTag = objFather->Tag(),
{
case 1:
if (anOTag >= SMESH::Tag_FirstMeshRoot)
- res = MESH;
+ res = SMESH::MESH;
break;
case 2:
switch (aFTag)
{
case SMESH::Tag_HypothesisRoot:
- res = HYPOTHESIS;
+ res = SMESH::HYPOTHESIS;
break;
case SMESH::Tag_AlgorithmsRoot:
- res = ALGORITHM;
+ res = SMESH::ALGORITHM;
break;
}
break;
switch (aFTag)
{
case SMESH::Tag_SubMeshOnVertex:
- res = SUBMESH_VERTEX;
+ res = SMESH::SUBMESH_VERTEX;
break;
case SMESH::Tag_SubMeshOnEdge:
- res = SUBMESH_EDGE;
+ res = SMESH::SUBMESH_EDGE;
break;
case SMESH::Tag_SubMeshOnFace:
- res = SUBMESH_FACE;
+ res = SMESH::SUBMESH_FACE;
break;
case SMESH::Tag_SubMeshOnSolid:
- res = SUBMESH_SOLID;
+ res = SMESH::SUBMESH_SOLID;
break;
case SMESH::Tag_SubMeshOnCompound:
- res = SUBMESH_COMPOUND;
+ res = SMESH::SUBMESH_COMPOUND;
break;
default:
if (aFTag >= SMESH::Tag_FirstGroup)
- res = GROUP;
+ res = SMESH::GROUP;
else
- res = SUBMESH;
+ res = SMESH::SUBMESH;
}
break;
}
{
switch( t )
{
- case HYPOTHESIS:
+ case SMESH::HYPOTHESIS:
return "Hypothesis";
- case ALGORITHM:
+ case SMESH::ALGORITHM:
return "Algorithm";
- case MESH:
+ case SMESH::MESH:
return "Mesh";
- case SUBMESH:
+ case SMESH::SUBMESH:
return "SubMesh";
- case MESHorSUBMESH:
+ case SMESH::MESHorSUBMESH:
return "Mesh or submesh";
- case SUBMESH_VERTEX:
+ case SMESH::SUBMESH_VERTEX:
return "Mesh vertex";
- case SUBMESH_EDGE:
+ case SMESH::SUBMESH_EDGE:
return "Mesh edge";
- case SUBMESH_FACE:
+ case SMESH::SUBMESH_FACE:
return "Mesh face";
- case SUBMESH_SOLID:
+ case SMESH::SUBMESH_SOLID:
return "Mesh solid";
- case SUBMESH_COMPOUND:
+ case SMESH::SUBMESH_COMPOUND:
return "Mesh compound";
- case GROUP:
+ case SMESH::GROUP:
return "Group";
- case COMPONENT:
+ case SMESH::COMPONENT:
return "Component";
default:
return "Unknown";
{
QString e = entry( ind );
_PTR(SObject) SO = SMESH::GetActiveStudyDocument()->FindObjectID( e.toLatin1().constData() );
- QString type;
if( SO )
{
- CORBA::Object_var obj = SMESH::SObjectToObject( SO );
-
- SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( obj );
- SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow( obj );
- if( !aGroup->_is_nil() )
- type = QString( "Group" );
- else if ( !aGroupOnGeom->_is_nil() )
- type = QString( "GroupOnGeom" );
+ SMESH::SMESH_Group_var g = SMESH::SObjectToInterface<SMESH::SMESH_Group>( SO );
+ if( !g->_is_nil() )
+ return "Group";
+
+ SMESH::SMESH_GroupOnGeom_var gog = SMESH::SObjectToInterface<SMESH::SMESH_GroupOnGeom>( SO );
+ if( !gog->_is_nil() )
+ return "GroupOnGeom";
+
+ SMESH::SMESH_GroupOnFilter_var gof = SMESH::SObjectToInterface<SMESH::SMESH_GroupOnFilter>(SO);
+ if ( !gof->_is_nil() )
+ return "GroupOnFilter";
}
- return type;
+ return "";
}