-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Application* app )
: LightApp_Displayer(),
- myApp( app )
+ myApp( app ),
+ isNeedFitAll(false)
{
}
if( vtk_viewer )
{
SUIT_ViewWindow* wnd = vtk_viewer->getViewManager()->getActiveView();
- SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.toLatin1().data() );
+ SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.toUtf8().data() );
if( !anActor )
- anActor = SMESH::CreateActor( study()->studyDS(), entry.toLatin1().data(), true );
+ anActor = SMESH::CreateActor( entry.toUtf8().data(), true );
if( anActor )
{
+ isNeedFitAll = SMESH::NoSmeshActors();
SMESH::DisplayActor( wnd, anActor );
- prs = LightApp_Displayer::buildPresentation( entry.toLatin1().data(), aViewFrame );
+ prs = LightApp_Displayer::buildPresentation( entry.toUtf8().data(), aViewFrame );
}
if( prs )
UpdatePrs( prs );
return dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
}
-bool SMESHGUI_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const {
+bool SMESHGUI_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const
+{
bool res = false;
if(viewer_type != SVTK_Viewer::Type())
return res;
- SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
- if( !study )
- return res;
-
-
- _PTR(SObject) obj = study->studyDS()->FindObjectID( (const char*)entry.toLatin1() );
+ _PTR(SObject) obj = SMESH::getStudy()->FindObjectID( (const char*)entry.toUtf8() );
CORBA::Object_var anObj = SMESH::SObjectToObject( obj );
- /*
- if( !CORBA::is_nil( anObj ) ) {
+ if ( !CORBA::is_nil( anObj ) )
+ {
SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( anObj );
- if ( ! mesh->_is_nil() )
- res = (mesh->NbNodes() > 0);
-
- SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObj );
- if ( !aSubMeshObj->_is_nil() )
- res = (aSubMeshObj->GetNumberOfNodes(true) > 0);
-
- SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObj );
- if ( !aGroupObj->_is_nil() )
- res = !aGroupObj->IsEmpty();
- }*/
- if( !CORBA::is_nil( anObj ) ) {
- if(!SMESH::SMESH_Mesh::_narrow( anObj )->_is_nil() ||
- !SMESH::SMESH_subMesh::_narrow( anObj )->_is_nil() ||
- !SMESH::SMESH_GroupBase::_narrow( anObj )->_is_nil())
- res = true;
+ if ( ! ( res = !mesh->_is_nil() ))
+ {
+ SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObj );
+ if ( ! ( res = !aSubMeshObj->_is_nil() ))
+ {
+ SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObj );
+ res = !aGroupObj->_is_nil();
+ }
+ }
}
return res;
}
+
+void SMESHGUI_Displayer::Display( const QStringList& theList, const bool anUpdateViewer, SALOME_View* theView )
+{
+ LightApp_Displayer::Display( theList, anUpdateViewer, theView );
+
+ if (isNeedFitAll) {
+ SMESH::FitAll();
+ isNeedFitAll = false;
+ }
+}
\ No newline at end of file