From 4fc4fb5adf8a07920ba3fa4838bd4e614bec0704 Mon Sep 17 00:00:00 2001 From: vsr Date: Mon, 5 Dec 2011 11:06:20 +0000 Subject: [PATCH] Merge from V6_4_BR 05/12/2011 --- clean_configure | 9 +- configure.ac | 2 +- src/OBJECT/VISU_SelectVisiblePoints.cxx | 3 +- src/PIPELINE/VISU_PlanesWidget.cxx | 2 +- src/PIPELINE/VISU_SphereWidget.cxx | 2 +- src/PIPELINE/VISU_XYPlotActor.cxx | 141 +++++++++++++++++++---- src/VISUGUI/VISU_msg_en.ts | 4 + src/VISUGUI/VISU_msg_fr.ts | 20 ++++ src/VISUGUI/VisuGUI.cxx | 24 +++- src/VISUGUI/VisuGUI_BuildProgressDlg.cxx | 4 +- src/VISUGUI/VisuGUI_Sweep.cxx | 3 +- src/VISU_I/VISU_ColoredPrs3dCache_i.cc | 6 +- src/VISU_I/VISU_Result_i.cc | 26 +++++ src/VISU_SWIG/VISU_Gen_s.cc | 2 +- 14 files changed, 208 insertions(+), 40 deletions(-) diff --git a/clean_configure b/clean_configure index 58606438..7bb2643d 100755 --- a/clean_configure +++ b/clean_configure @@ -24,10 +24,5 @@ find . -name "*.pyc" -print -exec rm {} \; #exit # ==================== ON SORT AVANT -find bin -name Makefile.in | xargs rm -f -find doc -name Makefile.in | xargs rm -f -find idl -name Makefile.in | xargs rm -f -find resources -name Makefile.in | xargs rm -f -find salome_adm -name Makefile.in | xargs rm -f -find src -name Makefile.in | xargs rm -f -rm -f Makefile.in +find . -name Makefile.in | xargs rm -f +( cd adm_local/unix/config_files && rm -f config.* depcomp install-sh ltmain.sh missing py-compile ) diff --git a/configure.ac b/configure.ac index ddb29aae..4d36c5c7 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Modified by : Marc Tajchman (CEA) # Modified by : Mikhail Ponikarov (OCN) # -AC_INIT([Salome2 Project VISU module], [6.3.1], [webmaster.salome@opencascade.com], [SalomeVISU]) +AC_INIT([Salome2 Project VISU module], [6.4.0], [webmaster.salome@opencascade.com], [SalomeVISU]) AC_CONFIG_AUX_DIR(adm_local/unix/config_files) AC_CANONICAL_HOST AC_CANONICAL_TARGET diff --git a/src/OBJECT/VISU_SelectVisiblePoints.cxx b/src/OBJECT/VISU_SelectVisiblePoints.cxx index 40eb6f1d..719f0ccf 100644 --- a/src/OBJECT/VISU_SelectVisiblePoints.cxx +++ b/src/OBJECT/VISU_SelectVisiblePoints.cxx @@ -120,8 +120,7 @@ int VISU_SelectVisiblePoints::RequestData( vtkMatrix4x4 *matrix = vtkMatrix4x4::New(); double view[4]; matrix->DeepCopy(this->Renderer->GetActiveCamera()-> - GetCompositePerspectiveTransformMatrix( - this->Renderer->GetTiledAspectRatio(),0,1)); + GetCompositeProjectionTransformMatrix(this->Renderer->GetTiledAspectRatio(),0,1)); // If we have more than a few query points, we grab the z-buffer for the // selection region all at once and probe the resulting array. When we diff --git a/src/PIPELINE/VISU_PlanesWidget.cxx b/src/PIPELINE/VISU_PlanesWidget.cxx index 180febf7..5732f27b 100644 --- a/src/PIPELINE/VISU_PlanesWidget.cxx +++ b/src/PIPELINE/VISU_PlanesWidget.cxx @@ -605,7 +605,7 @@ void VISU_PlanesWidget::OnLeftButtonDown() return; } - vtkProp *prop = path->GetFirstNode()->GetProp(); + vtkProp *prop = path->GetFirstNode()->GetViewProp(); this->ValidPick = 1; this->Picker->GetPickPosition(this->LastPickPosition); // diff --git a/src/PIPELINE/VISU_SphereWidget.cxx b/src/PIPELINE/VISU_SphereWidget.cxx index 141d51a3..3cc2b923 100755 --- a/src/PIPELINE/VISU_SphereWidget.cxx +++ b/src/PIPELINE/VISU_SphereWidget.cxx @@ -348,7 +348,7 @@ void VISU_SphereWidget::OnLeftButtonDown() // if no places picked, then try to pick the sphere. myPicker->Pick(X, Y, 0., CurrentRenderer); if(vtkAssemblyPath *aPath = myPicker->GetPath()){ - if(aPath->GetFirstNode()->GetProp() == mySphereActor){ + if(aPath->GetFirstNode()->GetViewProp() == mySphereActor){ myState = VISU_SphereWidget::Moving; HighlightSphere(1); } diff --git a/src/PIPELINE/VISU_XYPlotActor.cxx b/src/PIPELINE/VISU_XYPlotActor.cxx index 9c66379b..738780ab 100644 --- a/src/PIPELINE/VISU_XYPlotActor.cxx +++ b/src/PIPELINE/VISU_XYPlotActor.cxx @@ -600,12 +600,12 @@ int VISU_XYPlotActor::RenderOpaqueGeometry(vtkViewport *viewport) if (this->AxisLabelTextProperty && this->AxisLabelTextProperty->GetMTime() > this->BuildTime) { - if (this->XAxis->GetTitleTextProperty()) + if (this->XAxis->GetLabelTextProperty()) { this->XAxis->GetLabelTextProperty()->ShallowCopy( this->AxisLabelTextProperty); } - if (this->YAxis->GetTitleTextProperty()) + if (this->YAxis->GetLabelTextProperty()) { this->YAxis->GetLabelTextProperty()->ShallowCopy( this->AxisLabelTextProperty); @@ -1011,6 +1011,11 @@ void VISU_XYPlotActor::ComputeXRange(double range[2], double *lengths) (ds = this->InputList->GetNextDataSet(dsit)); dsNum++) { numPts = ds->GetNumberOfPoints(); + if (numPts == 0) + { + vtkErrorMacro(<<"No scalar data to plot!"); + continue; + } if ( this->XValues != VTK_XYPLOT_INDEX ) { @@ -1144,6 +1149,26 @@ void VISU_XYPlotActor::ComputeYRange(double range[2]) }//over all datasets } +//---------------------------------------------------------------------------- +static inline int VISU_XYPlotActorGetComponent(vtkFieldData* field, + vtkIdType tuple, int component, double* val) +{ + int array_comp; + int array_index = field->GetArrayContainingComponent(component, array_comp); + if (array_index < 0) + { + return 0; + } + vtkDataArray* da = field->GetArray(array_index); + if (!da) + { + // non-numeric array. + return 0; + } + *val = da->GetComponent(tuple, array_comp); + return 1; +} + //---------------------------------------------------------------------------- void VISU_XYPlotActor::ComputeDORange(double xrange[2], double yrange[2], double *lengths) @@ -1153,21 +1178,34 @@ void VISU_XYPlotActor::ComputeDORange(double xrange[2], double yrange[2], vtkFieldData *field; int doNum, numColumns; vtkIdType numTuples, numRows, num, ptId, maxNum; - double maxLength=0.0, x, y, xPrev = 0.0; + double maxLength=0.0; + double x = 0.0; + double y = 0.0; + double xPrev = 0.0; vtkDataArray *array; - + + // NOTE: FieldData can have non-numeric arrays. However, XY plot can only + // work on numeric arrays (or vtkDataArray subclasses). + xrange[0] = yrange[0] = VTK_DOUBLE_MAX; xrange[1] = yrange[1] = -VTK_DOUBLE_MAX; vtkCollectionSimpleIterator doit; for ( doNum=0, maxNum=0, this->DataObjectInputList->InitTraversal(doit); (dobj = this->DataObjectInputList->GetNextDataObject(doit)); doNum++) { + lengths[doNum] = 0.0; field = dobj->GetFieldData(); - numColumns = field->GetNumberOfComponents(); //number of "columns" + numColumns = field->GetNumberOfComponents(); //number of "columns" + // numColumns includes the components for non-numeric arrays as well. for (numRows = VTK_LARGE_ID, i=0; iGetNumberOfArrays(); i++) { array = field->GetArray(i); + if (!array) + { + // non-numeric array, skip. + continue; + } numTuples = array->GetNumberOfTuples(); if ( numTuples < numRows ) { @@ -1183,13 +1221,24 @@ void VISU_XYPlotActor::ComputeDORange(double xrange[2], double yrange[2], // gather the information to form a plot for ( ptId=0; ptId < num; ptId++ ) { + int status = 0; + if ( this->DataObjectPlotMode == VTK_XYPLOT_ROW ) { - x = field->GetComponent(this->XComponent->GetValue(doNum), ptId); + // x = field->GetComponent(this->XComponent->GetValue(doNum), ptId); + status = ::VISU_XYPlotActorGetComponent(field, + this->XComponent->GetValue(doNum), ptId, &x); } else //if ( this->DataObjectPlotMode == VTK_XYPLOT_COLUMN ) { - x = field->GetComponent(ptId, this->XComponent->GetValue(doNum)); + // x = field->GetComponent(ptId, this->XComponent->GetValue(doNum)); + status = ::VISU_XYPlotActorGetComponent(field, + ptId, this->XComponent->GetValue(doNum), &x); + } + if (!status) + { + // requested component falls in a non-numeric array, skip it. + continue; } if ( ptId == 0 ) { @@ -1244,13 +1293,24 @@ void VISU_XYPlotActor::ComputeDORange(double xrange[2], double yrange[2], // Get the y-values for ( ptId=0; ptId < num; ptId++ ) { + int status = 0; if ( this->DataObjectPlotMode == VTK_XYPLOT_ROW ) { - y = field->GetComponent(this->YComponent->GetValue(doNum), ptId); + //y = field->GetComponent(this->YComponent->GetValue(doNum), ptId); + status = ::VISU_XYPlotActorGetComponent(field, + this->YComponent->GetValue(doNum), ptId, &y); } else //if ( this->DataObjectPlotMode == VTK_XYPLOT_COLUMN ) { - y = field->GetComponent(ptId, this->YComponent->GetValue(doNum)); + //y = field->GetComponent(ptId, this->YComponent->GetValue(doNum)); + status = ::VISU_XYPlotActorGetComponent(field, + ptId, this->YComponent->GetValue(doNum), &y); + } + if (!status) + { + // requested component falls in non-numeric array. + // skip. + continue; } if ( y < yrange[0] ) { @@ -1526,9 +1586,15 @@ void VISU_XYPlotActor::CreatePlotData(int *pos, int *pos2Extern, double xRange[2 // determine the shape of the field field = dobj->GetFieldData(); numColumns = field->GetNumberOfComponents(); //number of "columns" + // numColumns also includes non-numeric array components. for (numRows = VTK_LARGE_ID, i=0; iGetNumberOfArrays(); i++) { array = field->GetArray(i); + if (!array) + { + // skip non-numeric arrays. + continue; + } numTuples = array->GetNumberOfTuples(); if ( numTuples < numRows ) { @@ -1546,15 +1612,42 @@ void VISU_XYPlotActor::CreatePlotData(int *pos, int *pos2Extern, double xRange[2 // gather the information to form a plot for ( numLinePts=0, length=0.0, ptId=0; ptId < numPts; ptId++ ) { + int status1, status2; if ( this->DataObjectPlotMode == VTK_XYPLOT_ROW ) { - x[0] = field->GetComponent(this->XComponent->GetValue(doNum),ptId); - xyz[1] = field->GetComponent(this->YComponent->GetValue(doNum),ptId); + //x[0] = field->GetComponent(this->XComponent->GetValue(doNum),ptId); + //xyz[1] = field->GetComponent(this->YComponent->GetValue(doNum),ptId); + status1 = ::VISU_XYPlotActorGetComponent(field, + this->XComponent->GetValue(doNum), ptId, &x[0]); + status2 = ::VISU_XYPlotActorGetComponent(field, + this->YComponent->GetValue(doNum), ptId, &xyz[1]); } else //if ( this->DataObjectPlotMode == VTK_XYPLOT_COLUMN ) { - x[0] = field->GetComponent(ptId, this->XComponent->GetValue(doNum)); - xyz[1] = field->GetComponent(ptId, this->YComponent->GetValue(doNum)); + //x[0] = field->GetComponent(ptId, this->XComponent->GetValue(doNum)); + //xyz[1] = field->GetComponent(ptId, this->YComponent->GetValue(doNum)); + + status1 = ::VISU_XYPlotActorGetComponent(field, + ptId, this->XComponent->GetValue(doNum), &x[0]); + + if (!status1) + { + vtkWarningMacro(<< this->XComponent->GetValue(doNum) << " is a non-numeric component."); + } + + status2 = ::VISU_XYPlotActorGetComponent(field, + ptId, this->YComponent->GetValue(doNum), &xyz[1]); + + if (!status2) + { + vtkWarningMacro(<< this->YComponent->GetValue(doNum) << " is a non-numeric component."); + } + } + if (!status1 || !status2) + { + // component is non-numeric. + // Skip it. + continue; } switch (this->XValues) @@ -2079,25 +2172,31 @@ void VISU_XYPlotActor::ClipPlotData(int *pos, int *pos2, vtkPolyData *pd) } else { + newPts[0] = -1; if (x1[0] >= p1[0] && x1[0] <= p2[0] && x1[1] >= p1[1] && x1[1] <= p2[1] ) {//first point in newPts[0] = pointMap[pts[i]]; } - else + else if (x2[0] >= p1[0] && x2[0] <= p2[0] && x2[1] >= p1[1] && x2[1] <= p2[1] ) {//second point in newPts[0] = pointMap[pts[i+1]]; } - for (j=0; j<4; j++) + + //only create cell if either x1 or x2 is inside the range + if (newPts[0] >= 0) { - this->ClipPlanes->GetPoints()->GetPoint(j, px); - this->ClipPlanes->GetNormals()->GetTuple(j, n); - if ( vtkPlane::IntersectWithLine(x1,x2,n,px,t,xint) && t >= 0 && t <= 1.0 ) + for (j=0; j<4; j++) { - newPts[1] = newPoints->InsertNextPoint(xint); - break; + this->ClipPlanes->GetPoints()->GetPoint(j, px); + this->ClipPlanes->GetNormals()->GetTuple(j, n); + if ( vtkPlane::IntersectWithLine(x1,x2,n,px,t,xint) && t >= 0 && t <= 1.0 ) + { + newPts[1] = newPoints->InsertNextPoint(xint); + break; + } } + newLines->InsertNextCell(2,newPts); } - newLines->InsertNextCell(2,newPts); } } } diff --git a/src/VISUGUI/VISU_msg_en.ts b/src/VISUGUI/VISU_msg_en.ts index f8eda5b4..05b5f2b1 100644 --- a/src/VISUGUI/VISU_msg_en.ts +++ b/src/VISUGUI/VISU_msg_en.ts @@ -1143,6 +1143,10 @@ Input value precision can be adjusted using UNKNOWN_IMPORT_ERROR Unknown error + + UNSUPPORTED_FILE_FORMAT + Unsupported file format + VALUES_LABELING Values labeling diff --git a/src/VISUGUI/VISU_msg_fr.ts b/src/VISUGUI/VISU_msg_fr.ts index 1a05fc8f..bac23835 100755 --- a/src/VISUGUI/VISU_msg_fr.ts +++ b/src/VISUGUI/VISU_msg_fr.ts @@ -667,6 +667,10 @@ le '%1' paramètre des préférences du module Post-Pro. FLT_MED_FILES Fichiers MED (*.med) + + FLT_SAUV_FILES + Fichiers SAUV (*.sauv*) + FLT_TABLE_FILES Tables (*.txt *.tab *.csv) @@ -739,6 +743,10 @@ le '%1' paramètre des préférences du module Post-Pro. MEN_CURVE_PROPS Paramètres... + + MEN_CURVE_SCALE + Facteur d'échelle... + MEN_CUT_LINES Lignes de coupe @@ -855,6 +863,10 @@ le '%1' paramètre des préférences du module Post-Pro. MEN_IMPORT_MED_TIMESTAMP Importer un pas de temps + + MEN_IMPORT_SAUV + Fichier SAUV + MEN_IMPORT_TABLE Table du Fichier @@ -1131,6 +1143,10 @@ le '%1' paramètre des préférences du module Post-Pro. UNKNOWN_IMPORT_ERROR Erreur inconnue + + UNSUPPORTED_FILE_FORMAT + Format de fichier non supporté + VALUES_LABELING Etiquettes des Valeurs @@ -1237,6 +1253,10 @@ le '%1' paramètre des préférences du module Post-Pro. FLT_MED_FILES Fichiers MED (*.med) + + FLT_SAUV_FILES + Fichiers SAUV (*.sauv*) + HELP Aide diff --git a/src/VISUGUI/VisuGUI.cxx b/src/VISUGUI/VisuGUI.cxx index 64f2fa6f..e5ea3f83 100644 --- a/src/VISUGUI/VisuGUI.cxx +++ b/src/VISUGUI/VisuGUI.cxx @@ -26,6 +26,9 @@ // Module : VISU #include // 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" #include "VisuGUI.h" @@ -507,7 +510,7 @@ VisuGUI } } catch(...) { - errors.append( QString( "%1 :\n\t%2" ).arg( aFileInfo.filePath() ).arg( tr( "UNKNOWN_IMPORT_ERROR" ) ) ); + errors.append( QString( "%1 :\n\t%2" ).arg( aFileInfo.filePath() ).arg( tr( "UNSUPPORTED_FILE_FORMAT" ) ) ); } } } @@ -4943,6 +4946,11 @@ bool VisuGUI::renameAllowed( const QString& entry) const { aType == VISU::TPOINTMAP3D || aType == VISU::TVIEW3D || aType == VISU::TPOINTMAP3D || aType == VISU::TGAUSSPOINTS) return true; + } else { + VISU::Storable::TRestoringMap aMap = VISU::Storable::GetStorableMap(anObjectInfo.mySObject); + bool anIsExist; + QString aVal = VISU::Storable::FindValue(aMap, "myComment", &anIsExist); + return anIsExist && "VIEW3D" == aVal; } return false; } @@ -4963,6 +4971,7 @@ bool VisuGUI::renameObject( const QString& entry, const QString& name) { _PTR(SObject) aSObject = anObjectInfo.mySObject; if (aSObject) { VISU::Base_i* aBase = anObjectInfo.myBase; + VISU::Storable::TRestoringMap aMap = VISU::Storable::GetStorableMap(anObjectInfo.mySObject); if(aBase){ VISU::VISUType aType = aBase->GetType(); if( aType == VISU::TCOLOREDPRS3DHOLDER ) { @@ -5030,6 +5039,19 @@ bool VisuGUI::renameObject( const QString& entry, const QString& name) { return true; } } + //Rename visual params + } + } else { + bool anIsExist; + QString aVal = VISU::Storable::FindValue(aMap, "myComment", &anIsExist); + if(anIsExist && "VIEW3D" == aVal) { + _PTR(GenericAttribute) anAttr; + if (aSObject->FindAttribute(anAttr, "AttributeName")) { + _PTR(AttributeName) aName (anAttr); + if (!name.isEmpty()) { + aName->SetValue(qPrintable(name)); + } + } } } } diff --git a/src/VISUGUI/VisuGUI_BuildProgressDlg.cxx b/src/VISUGUI/VisuGUI_BuildProgressDlg.cxx index 98adfe21..ab8ae239 100644 --- a/src/VISUGUI/VisuGUI_BuildProgressDlg.cxx +++ b/src/VISUGUI/VisuGUI_BuildProgressDlg.cxx @@ -263,7 +263,7 @@ void VisuGUI_BuildProgressDlg::onStart() if( aBuildAtOnce ) { QApplication::setOverrideCursor( Qt::WaitCursor ); - myCurrentTime = vtkTimerLog::GetCurrentTime(); + myCurrentTime = vtkTimerLog::GetUniversalTime(); } myTime.setHMS( 0, 0, 0 ); @@ -358,7 +358,7 @@ void VisuGUI_BuildProgressDlg::onTimer() QApplication::restoreOverrideCursor(); QTime aTime; - int mSecs = ( int )( 1000 * ( vtkTimerLog::GetCurrentTime() - myCurrentTime ) ); + int mSecs = ( int )( 1000 * ( vtkTimerLog::GetUniversalTime() - myCurrentTime ) ); aTime = aTime.addMSecs( mSecs ); if( aTime.minute() > 9 ) myTimeLCDNumber->setNumDigits( 9 ); diff --git a/src/VISUGUI/VisuGUI_Sweep.cxx b/src/VISUGUI/VisuGUI_Sweep.cxx index 74ea0207..f44a1e44 100644 --- a/src/VISUGUI/VisuGUI_Sweep.cxx +++ b/src/VISUGUI/VisuGUI_Sweep.cxx @@ -363,8 +363,7 @@ void VisuGUI_Sweep::onSelectionChanged() //---------------------------------------------------------------------------- void VisuGUI_Sweep::onValueChanged( int value ) { - bool anIsValidSelection = ( myColoredPrs3d != NULL ) - && (myActor != NULL ); + bool anIsValidSelection = ( myColoredPrs3d != 0 ) && ( myActor != 0 ); if ( !anIsValidSelection ) return; diff --git a/src/VISU_I/VISU_ColoredPrs3dCache_i.cc b/src/VISU_I/VISU_ColoredPrs3dCache_i.cc index 6df8e744..a385a8a0 100644 --- a/src/VISU_I/VISU_ColoredPrs3dCache_i.cc +++ b/src/VISU_I/VISU_ColoredPrs3dCache_i.cc @@ -39,6 +39,7 @@ #include "VISU_Actor.h" #include "VISU_PipeLine.hxx" +#include "VISU_Tools.h" #include "SALOME_Event.h" @@ -712,6 +713,7 @@ VISU::ColoredPrs3dCache_i ProcessVoidEvent(new TAddActorEvent(anActor,aViewWindow)); //aViewWindow->AddActor(anActor); anActor->SetVisibility(true); + SetVisibilityState( aHolderEntry, Qtx::ShownState); } if(aPrs3d != aLastVisitedPrs3d) @@ -728,8 +730,10 @@ VISU::ColoredPrs3dCache_i aNewActor = aPrs3d->CreateActor(); ProcessVoidEvent(new TAddActorEvent(aNewActor,aViewWindow)); //aViewWindow->AddActor(aNewActor); - }else + }else { aNewActor->SetVisibility(true); + SetVisibilityState( aHolderEntry, Qtx::ShownState); + } aNewActor->DeepCopy(anActor); aPrs3d->SetActiveState(true); diff --git a/src/VISU_I/VISU_Result_i.cc b/src/VISU_I/VISU_Result_i.cc index a49ff289..e3058e7a 100644 --- a/src/VISU_I/VISU_Result_i.cc +++ b/src/VISU_I/VISU_Result_i.cc @@ -141,6 +141,31 @@ namespace VISU aStudyBuilder->Addreference(newObj,aRefSObj); } + //--------------------------------------------------------------- + // Issue 0021403. Remove a ColoredPrs3dHolder if a Result it refers to is removed + // + void RemoveHolders(VISU::Result_i* theResult) + { + CORBA::String_var resultID1 = theResult->GetID(); + SALOMEDS::SObject_var theResSObject = theResult->GetSObject(); + SALOMEDS::Study_var aStudyDocument = theResSObject->GetStudy(); + SALOMEDS::SComponent_var aCompSObj = theResSObject->GetFatherComponent(); + SALOMEDS::ChildIterator_var aChildIter = aStudyDocument->NewChildIterator(aCompSObj); + for (aChildIter->InitEx(true); aChildIter->More(); aChildIter->Next()) + { + SALOMEDS::SObject_var aChildSObject = aChildIter->Value(); + if ( CORBA::is_nil( aChildSObject )) continue; + CORBA::Object_var aChildObj = aChildSObject->GetObject(); + if ( CORBA::is_nil( aChildObj )) continue; + VISU::ColoredPrs3dHolder_var prsHolder = ColoredPrs3dHolder::_narrow( aChildObj ); + if ( prsHolder->_is_nil() ) continue; + // check if the prsHolder refers to theResult + VISU::ColoredPrs3dHolder::BasicInput_var input = prsHolder->GetBasicInput(); + CORBA::String_var resultID2 = input->myResult->GetID(); + if ( strcmp( resultID1, resultID2 ) == 0 ) + prsHolder->RemoveFromStudy(); + } + } //--------------------------------------------------------------- } @@ -220,6 +245,7 @@ VISU::Result_i void Execute() { + RemoveHolders(myRemovable); VISU::RemoveFromStudy(myRemovable->GetSObject(),false); myRemovable->UnRegister(); } diff --git a/src/VISU_SWIG/VISU_Gen_s.cc b/src/VISU_SWIG/VISU_Gen_s.cc index 7055cb62..c4f8b258 100644 --- a/src/VISU_SWIG/VISU_Gen_s.cc +++ b/src/VISU_SWIG/VISU_Gen_s.cc @@ -84,7 +84,7 @@ void View3D::Display(ScalarMap* theScalarMap){ if(VISU_ScalarMapPL* aScalarMap = theScalarMap->GetImpl()){ aScalarMap->Update(); - myRen->RemoveAllProps(); + myRen->RemoveAllViewProps(); vtkActor* anActor = vtkActor::New(); anActor->SetMapper(aScalarMap->GetMapper()); -- 2.30.2