mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-06 23:00:34 +05:00
Fix bug 17655: 'Show' and 'Display only' don't work on Mesh root object.
This commit is contained in:
parent
9969477f2e
commit
4a314e77eb
@ -271,14 +271,14 @@ namespace SMESH {
|
||||
CORBA::String_var aVal = anIOR->Value().c_str();
|
||||
CORBA::Object_var anObj = app->orb()->string_to_object( aVal.in() );
|
||||
if(!CORBA::is_nil(anObj)){
|
||||
//Try narrow to SMESH_Mesh interafce
|
||||
//Try narrow to SMESH_Mesh interface
|
||||
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(anObj);
|
||||
if(!aMesh->_is_nil()){
|
||||
aVisualObj.reset(new SMESH_MeshObj(aMesh));
|
||||
TVisualObjCont::value_type aValue(aKey,aVisualObj);
|
||||
VISUAL_OBJ_CONT.insert(aValue);
|
||||
}
|
||||
//Try narrow to SMESH_Group interafce
|
||||
//Try narrow to SMESH_Group interface
|
||||
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObj);
|
||||
if(!aGroup->_is_nil()){
|
||||
_PTR(SObject) aFatherSObj = aSObj->GetFather();
|
||||
@ -293,7 +293,7 @@ namespace SMESH {
|
||||
VISUAL_OBJ_CONT.insert(aValue);
|
||||
}
|
||||
}
|
||||
//Try narrow to SMESH_subMesh interafce
|
||||
//Try narrow to SMESH_subMesh interface
|
||||
SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(anObj);
|
||||
if(!aSubMesh->_is_nil()){
|
||||
_PTR(SObject) aFatherSObj = aSObj->GetFather();
|
||||
@ -654,11 +654,16 @@ namespace SMESH {
|
||||
bool UpdateView(SUIT_ViewWindow *theWnd, EDisplaing theAction, const char* theEntry)
|
||||
{
|
||||
bool OK = false;
|
||||
if(SVTK_ViewWindow* aViewWnd = GetVtkViewWindow(theWnd)) {
|
||||
SVTK_ViewWindow* aViewWnd = GetVtkViewWindow(theWnd);
|
||||
if (!aViewWnd)
|
||||
return OK;
|
||||
|
||||
{
|
||||
OK = true;
|
||||
vtkRenderer *aRenderer = aViewWnd->getRenderer();
|
||||
vtkActorCollection *aCollection = aRenderer->GetActors();
|
||||
aCollection->InitTraversal();
|
||||
|
||||
switch (theAction) {
|
||||
case eDisplayAll: {
|
||||
while (vtkActor *anAct = aCollection->GetNextActor()) {
|
||||
@ -691,9 +696,14 @@ namespace SMESH {
|
||||
} else {
|
||||
switch (theAction) {
|
||||
case eDisplay:
|
||||
case eDisplayOnly:{
|
||||
case eDisplayOnly:
|
||||
{
|
||||
SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(theWnd->getViewManager()->study());
|
||||
_PTR(Study) aDocument = aStudy->studyDS();
|
||||
// Pass non-visual objects (hypotheses, etc.), return true in this case
|
||||
CORBA::Long anId = aDocument->StudyId();
|
||||
if (TVisualObjPtr aVisualObj = GetVisualObj(anId,theEntry))
|
||||
{
|
||||
if ((anActor = CreateActor(aDocument,theEntry,true))) {
|
||||
bool needFitAll = noSmeshActors(theWnd); // fit for the first object only
|
||||
DisplayActor(theWnd,anActor);
|
||||
@ -702,6 +712,7 @@ namespace SMESH {
|
||||
} else {
|
||||
OK = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user