mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-18 11:50:32 +05:00
Additional changes for the Point 2 of the "20948: EDF 1468 SMESH: Histogram of the quality controls" issue.
This commit is contained in:
parent
ddc98ff4c0
commit
1758d524e7
@ -533,6 +533,13 @@ SMESH_ActorDef::~SMESH_ActorDef()
|
||||
{
|
||||
if(MYDEBUG) MESSAGE("~SMESH_ActorDef - "<<this);
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
if(my2dHistogram) {
|
||||
SMESH::ProcessIn2DViewers(this,SMESH::RemoveFrom2dViewer);
|
||||
delete my2dHistogram;
|
||||
}
|
||||
#endif
|
||||
|
||||
// caught by SMESHGUI::ProcessEvents() static method
|
||||
this->InvokeEvent( SMESH::DeleteActorEvent, NULL );
|
||||
|
||||
@ -617,10 +624,6 @@ SMESH_ActorDef::~SMESH_ActorDef()
|
||||
myImplicitBoolean->Delete();
|
||||
|
||||
myTimeStamp->Delete();
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
if(my2dHistogram)
|
||||
delete my2dHistogram;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -1343,7 +1346,11 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
|
||||
|
||||
if(myIsCellsLabeled)
|
||||
myCellsLabels->VisibilityOn();
|
||||
}
|
||||
}
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
else
|
||||
SMESH::ProcessIn2DViewers(this,SMESH::RemoveFrom2dViewer);
|
||||
#endif
|
||||
UpdateHighlight();
|
||||
Modified();
|
||||
}
|
||||
|
@ -21,10 +21,19 @@
|
||||
//
|
||||
|
||||
#include "SMESH_ActorUtils.h"
|
||||
#include "SMESH_Actor.h"
|
||||
|
||||
#include "SUIT_Tools.h"
|
||||
#include "SUIT_Session.h"
|
||||
#include "SUIT_ResourceMgr.h"
|
||||
#include "SalomeApp_Application.h"
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
#include <SPlot2d_ViewModel.h>
|
||||
#include <SPlot2d_Histogram.h>
|
||||
#include <Plot2d_ViewManager.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
@ -126,4 +135,49 @@ namespace SMESH
|
||||
g = ig / 255.;
|
||||
b = ib / 255.;
|
||||
}
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
//=======================================================================
|
||||
/**
|
||||
Get histogram from the input actor
|
||||
Repaint/Remove the histogram in/from each opened Plot2D Viewer
|
||||
*/
|
||||
//=======================================================================
|
||||
void ProcessIn2DViewers( SMESH_Actor *theActor, Viewer2dActionType aType ) {
|
||||
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
|
||||
|
||||
if(!anApp || !theActor)
|
||||
return;
|
||||
|
||||
SPlot2d_Histogram* aHistogram = 0;
|
||||
|
||||
if(theActor->GetPlot2Histogram())
|
||||
if(aType == UpdateIn2dViewer)
|
||||
aHistogram = theActor->UpdatePlot2Histogram();
|
||||
else
|
||||
aHistogram = theActor->GetPlot2Histogram();
|
||||
else
|
||||
return;
|
||||
|
||||
ViewManagerList aViewManagerList;
|
||||
anApp->viewManagers(SPlot2d_Viewer::Type(), aViewManagerList);
|
||||
|
||||
aType = aHistogram->getPointList().empty() ? RemoveFrom2dViewer : aType;
|
||||
|
||||
SUIT_ViewManager* aViewManager;
|
||||
foreach( aViewManager, aViewManagerList ) {
|
||||
if (Plot2d_ViewManager* aManager = dynamic_cast<Plot2d_ViewManager*>(aViewManager)) {
|
||||
if (SPlot2d_Viewer* aViewer = dynamic_cast<SPlot2d_Viewer*>(aManager->getViewModel())) {
|
||||
if (Plot2d_ViewFrame* aViewFrame = aViewer->getActiveViewFrame()) {
|
||||
if(aType == UpdateIn2dViewer )
|
||||
aViewFrame->displayObject(aHistogram, true);
|
||||
else if (aType == RemoveFrom2dViewer)
|
||||
aViewFrame->eraseObject(aHistogram, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif //DISABLE_PLOT2DVIEWER
|
||||
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <QColor>
|
||||
|
||||
class vtkUnstructuredGrid;
|
||||
class SMESH_Actor;
|
||||
|
||||
namespace SMESH
|
||||
{
|
||||
@ -71,6 +72,17 @@ SMESHOBJECT_EXPORT
|
||||
WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid,
|
||||
const char* theFileName);
|
||||
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
|
||||
typedef enum {UpdateIn2dViewer = 0, RemoveFrom2dViewer } Viewer2dActionType;
|
||||
|
||||
SMESHOBJECT_EXPORT
|
||||
void ProcessIn2DViewers( SMESH_Actor* theActor, Viewer2dActionType = UpdateIn2dViewer );
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -89,6 +89,7 @@
|
||||
#include <SMESH_Client.hxx>
|
||||
#include <SMESH_Actor.h>
|
||||
#include <SMESH_ScalarBarActor.h>
|
||||
#include <SMESH_ActorUtils.h>
|
||||
#include <SMESH_TypeFilter.hxx>
|
||||
#include "SMESH_ControlsDef.hxx"
|
||||
|
||||
@ -1407,93 +1408,100 @@
|
||||
return;
|
||||
|
||||
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
|
||||
SUIT_ViewManager* vm = anApp->activeViewManager();
|
||||
int nbSf = vm ? vm->getViewsCount() : 0;
|
||||
|
||||
SALOME_ListIteratorOfListIO It(selected);
|
||||
ViewManagerList aViewMenegers = anApp->viewManagers();
|
||||
ViewManagerList::const_iterator it = aViewMenegers.begin();
|
||||
for( ; it != aViewMenegers.end(); it++) {
|
||||
|
||||
SUIT_ViewManager* vm = *it;
|
||||
int nbSf = vm ? vm->getViewsCount() : 0;
|
||||
|
||||
aStudyBuilder->NewCommand(); // There is a transaction
|
||||
for( ; It.More(); It.Next()){ // loop on selected IO's
|
||||
Handle(SALOME_InteractiveObject) IObject = It.Value();
|
||||
if(IObject->hasEntry()) {
|
||||
_PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
|
||||
|
||||
// disable removal of "SMESH" component object
|
||||
if(aSO->FindAttribute(anAttr, "AttributeIOR")){
|
||||
anIOR = anAttr;
|
||||
if ( engineIOR() == anIOR->Value().c_str() )
|
||||
continue;
|
||||
}
|
||||
//Check the referenced object
|
||||
_PTR(SObject) aRefSObject;
|
||||
if ( aSO && aSO->ReferencedObject( aRefSObject ) )
|
||||
aSO = aRefSObject; // Delete main Object instead of reference
|
||||
|
||||
// put the whole hierarchy of sub-objects of the selected SO into a list and
|
||||
// then treat them all starting from the deepest objects (at list back)
|
||||
|
||||
std::list< _PTR(SObject) > listSO;
|
||||
listSO.push_back( aSO );
|
||||
std::list< _PTR(SObject) >::iterator itSO = listSO.begin();
|
||||
for ( ; itSO != listSO.end(); ++itSO ) {
|
||||
_PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
|
||||
for (it->InitEx(false); it->More(); it->Next())
|
||||
listSO.push_back( it->Value() );
|
||||
}
|
||||
|
||||
// treat SO's in the list starting from the back
|
||||
|
||||
std::list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
|
||||
for ( ; ritSO != listSO.rend(); ++ritSO ) {
|
||||
_PTR(SObject) SO = *ritSO;
|
||||
if ( !SO ) continue;
|
||||
std::string anEntry = SO->GetID();
|
||||
|
||||
/** Erase graphical object **/
|
||||
if(SO->FindAttribute(anAttr, "AttributeIOR") && vm ){
|
||||
QVector<SUIT_ViewWindow*> aViews = vm->getViews();
|
||||
for(int i = 0; i < nbSf; i++){
|
||||
SUIT_ViewWindow *sf = aViews[i];
|
||||
if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
|
||||
SMESH::RemoveActor(sf,anActor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Remove an object from data structures **/
|
||||
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
|
||||
SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
|
||||
if ( !aGroup->_is_nil() ) { // DELETE GROUP
|
||||
SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
|
||||
aMesh->RemoveGroup( aGroup );
|
||||
}
|
||||
else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH
|
||||
SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
|
||||
aMesh->RemoveSubMesh( aSubMesh );
|
||||
|
||||
_PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
|
||||
if (aMeshSO)
|
||||
SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0);
|
||||
}
|
||||
else {
|
||||
IObject = new SALOME_InteractiveObject
|
||||
( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() );
|
||||
QString objType = CheckTypeObject(IObject);
|
||||
if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
|
||||
SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
|
||||
aStudyBuilder->RemoveObjectWithChildren( SO );
|
||||
}
|
||||
else {// default action: remove SObject from the study
|
||||
// san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
|
||||
//SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
|
||||
//op->start();
|
||||
aStudyBuilder->RemoveObjectWithChildren( SO );
|
||||
//op->finish();
|
||||
}
|
||||
}
|
||||
} /* listSO back loop */
|
||||
} /* IObject->hasEntry() */
|
||||
} /* more/next */
|
||||
SALOME_ListIteratorOfListIO It(selected);
|
||||
|
||||
aStudyBuilder->NewCommand(); // There is a transaction
|
||||
for( ; It.More(); It.Next()){ // loop on selected IO's
|
||||
Handle(SALOME_InteractiveObject) IObject = It.Value();
|
||||
if(IObject->hasEntry()) {
|
||||
_PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
|
||||
|
||||
// disable removal of "SMESH" component object
|
||||
if(aSO->FindAttribute(anAttr, "AttributeIOR")){
|
||||
anIOR = anAttr;
|
||||
if ( engineIOR() == anIOR->Value().c_str() )
|
||||
continue;
|
||||
}
|
||||
//Check the referenced object
|
||||
_PTR(SObject) aRefSObject;
|
||||
if ( aSO && aSO->ReferencedObject( aRefSObject ) )
|
||||
aSO = aRefSObject; // Delete main Object instead of reference
|
||||
|
||||
// put the whole hierarchy of sub-objects of the selected SO into a list and
|
||||
// then treat them all starting from the deepest objects (at list back)
|
||||
|
||||
std::list< _PTR(SObject) > listSO;
|
||||
listSO.push_back( aSO );
|
||||
std::list< _PTR(SObject) >::iterator itSO = listSO.begin();
|
||||
for ( ; itSO != listSO.end(); ++itSO ) {
|
||||
_PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
|
||||
for (it->InitEx(false); it->More(); it->Next())
|
||||
listSO.push_back( it->Value() );
|
||||
}
|
||||
|
||||
// treat SO's in the list starting from the back
|
||||
|
||||
std::list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
|
||||
for ( ; ritSO != listSO.rend(); ++ritSO ) {
|
||||
_PTR(SObject) SO = *ritSO;
|
||||
if ( !SO ) continue;
|
||||
std::string anEntry = SO->GetID();
|
||||
|
||||
/** Erase graphical object **/
|
||||
if(SO->FindAttribute(anAttr, "AttributeIOR") && vm ){
|
||||
QVector<SUIT_ViewWindow*> aViews = vm->getViews();
|
||||
for(int i = 0; i < nbSf; i++){
|
||||
SUIT_ViewWindow *sf = aViews[i];
|
||||
if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
|
||||
SMESH::RemoveActor(sf,anActor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Remove an object from data structures **/
|
||||
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
|
||||
SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
|
||||
if ( !aGroup->_is_nil() ) { // DELETE GROUP
|
||||
SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
|
||||
aMesh->RemoveGroup( aGroup );
|
||||
}
|
||||
else if ( !aSubMesh->_is_nil() ) { // DELETE SUBMESH
|
||||
SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
|
||||
aMesh->RemoveSubMesh( aSubMesh );
|
||||
|
||||
_PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
|
||||
if (aMeshSO)
|
||||
SMESH::ModifiedMesh(aMeshSO, false, aMesh->NbNodes()==0);
|
||||
}
|
||||
else {
|
||||
IObject = new SALOME_InteractiveObject
|
||||
( anEntry.c_str(), engineIOR().toLatin1().data(), SO->GetName().c_str() );
|
||||
QString objType = CheckTypeObject(IObject);
|
||||
if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
|
||||
SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
|
||||
aStudyBuilder->RemoveObjectWithChildren( SO );
|
||||
}
|
||||
else {// default action: remove SObject from the study
|
||||
// san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
|
||||
//SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
|
||||
//op->start();
|
||||
aStudyBuilder->RemoveObjectWithChildren( SO );
|
||||
//op->finish();
|
||||
}
|
||||
}
|
||||
} /* listSO back loop */
|
||||
} /* IObject->hasEntry() */
|
||||
} /* more/next */
|
||||
} /* aViewMenegers list loop */
|
||||
|
||||
aStudyBuilder->CommitCommand();
|
||||
|
||||
/* Clear any previous selection */
|
||||
@ -4131,6 +4139,16 @@ bool SMESHGUI::activateModule( SUIT_Study* study )
|
||||
GetSMESHGen()->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
|
||||
updateObjBrowser(); // objects can be removed
|
||||
}
|
||||
|
||||
// get all view currently opened in the study and connect their signals to
|
||||
// the corresponding slots of the class.
|
||||
SUIT_Desktop* aDesk = study->application()->desktop();
|
||||
if ( aDesk ) {
|
||||
QList<SUIT_ViewWindow*> wndList = aDesk->windows();
|
||||
SUIT_ViewWindow* wnd;
|
||||
foreach ( wnd, wndList )
|
||||
connectView( wnd );
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -4228,8 +4246,15 @@ void SMESHGUI::viewManagers( QStringList& list ) const
|
||||
|
||||
void SMESHGUI::onViewManagerActivated( SUIT_ViewManager* mgr )
|
||||
{
|
||||
if ( dynamic_cast<SVTK_ViewManager*>( mgr ) )
|
||||
if ( dynamic_cast<SVTK_ViewManager*>( mgr ) ) {
|
||||
SMESH::UpdateSelectionProp( this );
|
||||
|
||||
QVector<SUIT_ViewWindow*> aViews = mgr->getViews();
|
||||
for(int i = 0; i < aViews.count() ; i++){
|
||||
SUIT_ViewWindow *sf = aViews[i];
|
||||
connectView( sf );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SMESHGUI::onViewManagerRemoved( SUIT_ViewManager* theViewManager )
|
||||
@ -5677,3 +5702,34 @@ void SMESHGUI::onHypothesisEdit( int result )
|
||||
SMESHGUI::Modified();
|
||||
updateObjBrowser( true );
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
\brief Signal handler closing(SUIT_ViewWindow*) of a view
|
||||
\param pview view being closed
|
||||
*/
|
||||
void SMESHGUI::onViewClosed( SUIT_ViewWindow* pview ) {
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
//Crear all Plot2d Viewers if need.
|
||||
SMESH::ClearPlot2Viewers(pview);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Connects or disconnects signals about activating and cloning view on the module slots
|
||||
\param pview view which is connected/disconnected
|
||||
*/
|
||||
void SMESHGUI::connectView( const SUIT_ViewWindow* pview ) {
|
||||
if(!pview)
|
||||
return;
|
||||
|
||||
SUIT_ViewManager* viewMgr = pview->getViewManager();
|
||||
if ( viewMgr ) {
|
||||
disconnect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
|
||||
this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
|
||||
|
||||
connect( viewMgr, SIGNAL( deleteView( SUIT_ViewWindow* ) ),
|
||||
this, SLOT( onViewClosed( SUIT_ViewWindow* ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,6 +152,8 @@ public slots:
|
||||
virtual bool deactivateModule( SUIT_Study* );
|
||||
virtual bool activateModule( SUIT_Study* );
|
||||
virtual void studyClosed( SUIT_Study* );
|
||||
void onViewClosed( SUIT_ViewWindow* );
|
||||
|
||||
|
||||
private slots:
|
||||
void OnGUIEvent();
|
||||
@ -197,6 +199,9 @@ private:
|
||||
const int pId,
|
||||
const QString& param );
|
||||
|
||||
void connectView( const SUIT_ViewWindow* );
|
||||
|
||||
|
||||
private :
|
||||
static SMESH::SMESH_Gen_var myComponentSMESH;
|
||||
QDialog* myActiveDialogBox;
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "SMESHGUI_Utils.h"
|
||||
|
||||
#include <SMESH_Actor.h>
|
||||
#include <SMESH_ActorUtils.h>
|
||||
#include <SMESH_ScalarBarActor.h>
|
||||
#include <SMESH_ControlsDef.hxx>
|
||||
|
||||
|
@ -57,12 +57,6 @@
|
||||
#include <SalomeApp_Application.h>
|
||||
#include <SalomeApp_Study.h>
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
#include <SPlot2d_ViewModel.h>
|
||||
#include <SPlot2d_Histogram.h>
|
||||
#include <Plot2d_ViewManager.h>
|
||||
#endif
|
||||
|
||||
// SALOME KERNEL includes
|
||||
#include <utilities.h>
|
||||
|
||||
@ -659,9 +653,6 @@ namespace SMESH
|
||||
VISUAL_OBJ_CONT.erase(aKey);
|
||||
}
|
||||
}
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
ProcessIn2DViewers(theActor,RemoveFrom2dViewer);
|
||||
#endif
|
||||
theActor->Delete();
|
||||
vtkWnd->Repaint();
|
||||
}
|
||||
@ -1315,42 +1306,29 @@ namespace SMESH
|
||||
}
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
//=======================================================================
|
||||
/**
|
||||
Get histogram from the input actor
|
||||
Repaint/Remove the histogram in/from each opened Plot2D Viewer
|
||||
*/
|
||||
//=======================================================================
|
||||
void ProcessIn2DViewers( SMESH_Actor *theActor, Viewer2dActionType aType ) {
|
||||
SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
|
||||
|
||||
if(!anApp || !theActor)
|
||||
return;
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Find all SMESH_Actor's in the View Window.
|
||||
* If actor constains Plot2d_Histogram object remove it from each Plot2d Viewer.
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
SPlot2d_Histogram* aHistogram = 0;
|
||||
if(theActor->GetPlot2Histogram())
|
||||
aHistogram = theActor->UpdatePlot2Histogram();
|
||||
else
|
||||
return;
|
||||
|
||||
ViewManagerList aViewManagerList;
|
||||
anApp->viewManagers(SPlot2d_Viewer::Type(), aViewManagerList);
|
||||
|
||||
aType = aHistogram->getPointList().empty() ? RemoveFrom2dViewer : aType;
|
||||
|
||||
SUIT_ViewManager* aViewManager;
|
||||
foreach( aViewManager, aViewManagerList ) {
|
||||
if (Plot2d_ViewManager* aManager = dynamic_cast<Plot2d_ViewManager*>(aViewManager)) {
|
||||
if (SPlot2d_Viewer* aViewer = dynamic_cast<SPlot2d_Viewer*>(aManager->getViewModel())) {
|
||||
if (Plot2d_ViewFrame* aViewFrame = aViewer->getActiveViewFrame()) {
|
||||
if(aType == UpdateIn2dViewer )
|
||||
aViewFrame->displayObject(aHistogram, true);
|
||||
else if (aType == RemoveFrom2dViewer)
|
||||
aViewFrame->eraseObject(aHistogram, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void ClearPlot2Viewers( SUIT_ViewWindow* theWindow ) {
|
||||
if(SVTK_ViewWindow* aViewWindow = GetVtkViewWindow(theWindow)){
|
||||
vtkRenderer *aRenderer = aViewWindow->getRenderer();
|
||||
VTK::ActorCollectionCopy aCopy(aRenderer->GetActors());
|
||||
vtkActorCollection *aCollection = aCopy.GetActors();
|
||||
aCollection->InitTraversal();
|
||||
while(vtkActor *anAct = aCollection->GetNextActor()){
|
||||
if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)){
|
||||
if(anActor->hasIO() && anActor->GetPlot2Histogram() ){
|
||||
ProcessIn2DViewers(anActor,RemoveFrom2dViewer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif //DISABLE_PLOT2DVIEWER
|
||||
|
||||
#endif
|
||||
|
||||
} // end of namespace SMESH
|
||||
|
@ -40,11 +40,6 @@
|
||||
#include <SALOME_InteractiveObject.hxx>
|
||||
#include <VTKViewer_Filter.h>
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
class SPlot2d_Histogram;
|
||||
#endif
|
||||
|
||||
|
||||
class TColStd_IndexedMapOfInteger;
|
||||
|
||||
class SALOMEDSClient_Study;
|
||||
@ -196,6 +191,11 @@ SMESHGUI_EXPORT
|
||||
SMESHGUI_EXPORT
|
||||
void SetControlsPrecision( const long );
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
SMESHGUI_EXPORT
|
||||
void ClearPlot2Viewers( SUIT_ViewWindow* theWindow );
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
SMESHGUI_EXPORT
|
||||
bool ComputeClippingPlaneParameters( std::list<vtkActor*> theActorList,
|
||||
@ -203,16 +203,6 @@ SMESHGUI_EXPORT
|
||||
vtkFloatingPointType theDist,
|
||||
vtkFloatingPointType theBounds[6],
|
||||
vtkFloatingPointType theOrigin[3] );
|
||||
|
||||
#ifndef DISABLE_PLOT2DVIEWER
|
||||
|
||||
typedef enum {UpdateIn2dViewer = 0, RemoveFrom2dViewer } Viewer2dActionType;
|
||||
|
||||
SMESHGUI_EXPORT
|
||||
void ProcessIn2DViewers( SMESH_Actor* theActor, Viewer2dActionType = UpdateIn2dViewer );
|
||||
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
#endif // SMESHGUI_VTKUTILS_H
|
||||
|
Loading…
Reference in New Issue
Block a user