mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-26 20:40:33 +05:00
PAL9391
This commit is contained in:
parent
98fe24f8c9
commit
40793ae45e
@ -110,7 +110,8 @@ LIB_SRC = SMESHGUI.cxx \
|
||||
SMESHGUI_SelectionOp.cxx \
|
||||
SMESHGUI_Dialog.cxx \
|
||||
SMESHGUI_MeshDlg.cxx \
|
||||
SMESHGUI_MeshOp.cxx
|
||||
SMESHGUI_MeshOp.cxx \
|
||||
SMESHGUI_Displayer.cxx
|
||||
|
||||
LIB_MOC = \
|
||||
SMESHGUI.h \
|
||||
|
@ -64,6 +64,7 @@
|
||||
#include "SMESHGUI_Selection.h"
|
||||
#include "SMESHGUI_CreatePolyhedralVolumeDlg.h"
|
||||
#include "SMESHGUI_MeshOp.h"
|
||||
#include "SMESHGUI_Displayer.h"
|
||||
|
||||
#include "SMESHGUI_Utils.h"
|
||||
#include "SMESHGUI_GEOMGenUtils.h"
|
||||
@ -806,6 +807,7 @@ SalomeApp_Module( "SMESH" )
|
||||
|
||||
myActiveDialogBox = 0 ;
|
||||
myState = -1 ;
|
||||
myDisplayer = 0;
|
||||
|
||||
SMESH::GetFilterManager();
|
||||
SMESH::GetPattern();
|
||||
@ -3045,5 +3047,14 @@ SalomeApp_Operation* SMESHGUI::createOperation( const int id ) const
|
||||
break;
|
||||
}
|
||||
|
||||
if( !op )
|
||||
op = SalomeApp_Module::createOperation( id );
|
||||
return op;
|
||||
}
|
||||
|
||||
SalomeApp_Displayer* SMESHGUI::displayer()
|
||||
{
|
||||
if( !myDisplayer )
|
||||
myDisplayer = new SMESHGUI_Displayer( dynamic_cast<SalomeApp_Study*>( getApp()->activeStudy() ) );
|
||||
return myDisplayer;
|
||||
}
|
||||
|
@ -71,6 +71,7 @@ public :
|
||||
|
||||
static bool automaticUpdate();
|
||||
|
||||
virtual SalomeApp_Displayer* displayer();
|
||||
virtual QString engineIOR() const;
|
||||
virtual void initialize( CAM_Application* );
|
||||
virtual void windows( QMap<int, int>& ) const;
|
||||
@ -135,6 +136,7 @@ private :
|
||||
QDialog* myActiveDialogBox;
|
||||
int myState;
|
||||
QMap<int,QString> myRules;
|
||||
SalomeApp_Displayer* myDisplayer;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
74
src/SMESHGUI/SMESHGUI_Displayer.cxx
Normal file
74
src/SMESHGUI/SMESHGUI_Displayer.cxx
Normal file
@ -0,0 +1,74 @@
|
||||
// SMESH SMESHGUI : Displayer for SMESH module
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : SMESHGUI_Displayer.cxx
|
||||
// Author : Alexander SOLOVYOV
|
||||
// Module : SMESH
|
||||
// $Header: /home/server/cvs/SMESH/SMESH_SRC/src/SMESHGUI/SMESHGUI_Displayer.cxx
|
||||
|
||||
#include "SMESHGUI_Displayer.h"
|
||||
#include "SMESHGUI_VTKUtils.h"
|
||||
|
||||
#include <SalomeApp_Study.h>
|
||||
#include <SVTK_ViewModel.h>
|
||||
#include <SVTK_ViewWindow.h>
|
||||
|
||||
SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Study* st )
|
||||
: SalomeApp_Displayer(),
|
||||
myStudy( st )
|
||||
{
|
||||
}
|
||||
|
||||
SMESHGUI_Displayer::~SMESHGUI_Displayer()
|
||||
{
|
||||
}
|
||||
|
||||
SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_View* theViewFrame )
|
||||
{
|
||||
SALOME_Prs* prs = 0;
|
||||
|
||||
SALOME_View* aViewFrame = theViewFrame ? theViewFrame : GetActiveView();
|
||||
|
||||
if ( aViewFrame )
|
||||
{
|
||||
SVTK_Viewer* vtk_viewer = dynamic_cast<SVTK_Viewer*>( aViewFrame );
|
||||
if( vtk_viewer )
|
||||
{
|
||||
SUIT_ViewWindow* wnd = vtk_viewer->getViewManager()->getActiveView();
|
||||
SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.latin1() );
|
||||
if( !anActor )
|
||||
anActor = SMESH::CreateActor( myStudy->studyDS(), entry.latin1(), true );
|
||||
if( anActor )
|
||||
{
|
||||
SMESH::DisplayActor( wnd, anActor );
|
||||
prs = SalomeApp_Displayer::buildPresentation( entry.latin1(), aViewFrame );
|
||||
}
|
||||
if( prs )
|
||||
UpdatePrs( prs );
|
||||
else if( anActor )
|
||||
SMESH::RemoveActor( vtk_viewer->getViewManager()->getActiveView(), anActor );
|
||||
}
|
||||
}
|
||||
|
||||
return prs;
|
||||
}
|
48
src/SMESHGUI/SMESHGUI_Displayer.h
Normal file
48
src/SMESHGUI/SMESHGUI_Displayer.h
Normal file
@ -0,0 +1,48 @@
|
||||
// SMESH SMESHGUI : Displayer for SMESH module
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : SMESHGUI_Displayer.h
|
||||
// Author : Alexander SOLOVYOV
|
||||
// Module : SMESH
|
||||
// $Header: /home/server/cvs/SMESH/SMESH_SRC/src/SMESHGUI/SMESHGUI_Displayer.h
|
||||
|
||||
#ifndef SMESHGUI_DISPLAYER_HEADER
|
||||
#define SMESHGUI_DISPLAYER_HEADER
|
||||
|
||||
#include <SalomeApp_Displayer.h>
|
||||
|
||||
class SalomeApp_Study;
|
||||
|
||||
class SMESHGUI_Displayer : public SalomeApp_Displayer
|
||||
{
|
||||
public:
|
||||
SMESHGUI_Displayer( SalomeApp_Study* );
|
||||
~SMESHGUI_Displayer();
|
||||
|
||||
virtual SALOME_Prs* buildPresentation( const QString&, SALOME_View* = 0 );
|
||||
|
||||
private:
|
||||
SalomeApp_Study* myStudy;
|
||||
};
|
||||
|
||||
#endif
|
@ -84,12 +84,16 @@ QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
|
||||
else if ( p=="displayMode" ) val = QtxValue( displayMode( ind ) );
|
||||
else if ( p=="isComputable" ) val = QtxValue( isComputable( ind ) );
|
||||
else if ( p=="hasReference" ) val = QtxValue( hasReference( ind ) );
|
||||
else if ( p=="isVisible" ) val = QtxValue( isVisible( ind ) );
|
||||
// else if ( p=="isVisible" ) val = QtxValue( isVisible( ind ) );
|
||||
|
||||
// printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
|
||||
//if ( val.type() == QVariant::List )
|
||||
//cout << "size: " << val.toList().count() << endl;
|
||||
return val;
|
||||
|
||||
if( val.isValid() )
|
||||
return val;
|
||||
else
|
||||
return SalomeApp_Selection::param( ind, p );
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user