Salome HOME
Merge branch 'V9_6_BR'
[samples/atomsolv.git] / src / ATOMSOLVGUI / ATOMSOLVGUI_Displayer.cxx
index cb11c88cf98654d7c7dd1260017ffb0d90ee0be1..a254da1895ef911c61a970e07246ccbf2d769b78 100644 (file)
@@ -1,23 +1,21 @@
-//  Copyright (C) 2007-2010  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
+// 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, or (at your option) any later version.
 //
-//  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.
 //
-//  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
 //
-//  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.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "ATOMSOLVGUI_Displayer.h"
 #include "ATOMSOLVGUI.h"
@@ -65,7 +63,7 @@ bool ATOMSOLVGUI_Displayer::canBeDisplayed( const QString& entry, const QString&
   return result; // entry of an atom for sure
 }
 
-ATOMGEN_ORB::Atom_ptr getAtom( const QString& entry, const int studyID, double& temprature )
+ATOMGEN_ORB::Atom_ptr getAtom( const QString& entry, double& temprature )
 {
   QStringList es = entry.split( "_" );
 
@@ -78,7 +76,7 @@ ATOMGEN_ORB::Atom_ptr getAtom( const QString& entry, const int studyID, double&
 
   ATOMSOLV_ORB::ATOMSOLV_Gen_var engine = ATOMSOLVGUI::GetATOMSOLVGen();
   ATOMSOLV_ORB::TMoleculeList_var molecules;
-  if ( engine->getData( studyID, molecules ) && molID >= 0 && molID < molecules->length() ) {
+  if ( engine->getData( molecules ) && molID >= 0 && molID < molecules->length() ) {
     ATOMSOLV_ORB::TMolecule tmol = molecules[ molID ];
     ATOMGEN_ORB::Molecule_var mol = tmol.molecule;
     if ( atomID < mol->getNbAtoms() ) {
@@ -97,27 +95,14 @@ void setTemperature( SALOME_Actor* actor, double temperature )
   }
 }
 
-int getStudyID()
-{
-  int studyID = -1;
-  if ( SUIT_Application* app = SUIT_Session::session()->activeApplication() )
-    if ( SUIT_Study* study = app->activeStudy() )
-      studyID = study->id();
-  return studyID;
-}
-
 SALOME_Prs* ATOMSOLVGUI_Displayer::buildPresentation( const QString& entry, SALOME_View* view )
 {
-  const int studyID = getStudyID();
-  if ( studyID == -1 )
-    return 0;
-
   SVTK_Prs* prs = dynamic_cast<SVTK_Prs*>( LightApp_Displayer::buildPresentation( entry, view ) );
 
   if ( !prs ) return 0;
 
   double temperature;
-  ATOMGEN_ORB::Atom_var atom = getAtom( entry, studyID, temperature );
+  ATOMGEN_ORB::Atom_var atom = getAtom( entry, temperature );
   
   if ( !CORBA::is_nil( atom ) ) {
     //    PRESENTATION FOR OCC VIEWER
@@ -140,7 +125,7 @@ SALOME_Prs* ATOMSOLVGUI_Displayer::buildPresentation( const QString& entry, SALO
     vtkObj->SetPhiResolution( (int)( vtkObj->GetEndPhi() * quality_coefficient ) );
 
     vtkPolyDataMapper* vtkMapper = vtkPolyDataMapper::New();
-    vtkMapper->SetInput( vtkObj->GetOutput() );
+    vtkMapper->SetInputConnection( vtkObj->GetOutputPort() );
     
     vtkObj->Delete();
     
@@ -161,10 +146,9 @@ SALOME_Prs* ATOMSOLVGUI_Displayer::buildPresentation( const QString& entry, SALO
 
 void ATOMSOLVGUI_Displayer::updateActor( SALOME_Actor* actor )
 {
-  const int studyID = getStudyID();
-  if ( actor && actor->hasIO() && studyID >= 0 ) {
+  if ( actor && actor->hasIO() ) {
     double temperature;
-    getAtom( actor->getIO()->getEntry(), studyID, temperature );
+    getAtom( actor->getIO()->getEntry(), temperature );
     setTemperature( actor, temperature );
     actor->Update();
   }
@@ -223,7 +207,7 @@ QColor ATOMSOLVGUI_Displayer::getColor( const QString& entry )
        lst->InitTraversal();
        while ( vtkActor* actor = lst->GetNextActor() )
          if ( SALOME_Actor* salomeActor = SALOME_Actor::SafeDownCast( actor ) ) {
-           vtkFloatingPointType r, g, b;
+           double r, g, b;
            salomeActor->GetColor( r, g, b );
            return QColor( (int)(r * 255.), (int)(g * 255.), (int)(b * 255.) );
          }