X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FATOMSOLVGUI%2FATOMSOLVGUI_Displayer.cxx;h=a254da1895ef911c61a970e07246ccbf2d769b78;hb=e4ab836abf37c2cf0bc05664ce300103e576d9ba;hp=aa993bf373945759636eacda39e9f522e9d8814a;hpb=23b5a7c9c89b39b6b31f6bb74750f3e0fc4942b8;p=samples%2Fatomsolv.git diff --git a/src/ATOMSOLVGUI/ATOMSOLVGUI_Displayer.cxx b/src/ATOMSOLVGUI/ATOMSOLVGUI_Displayer.cxx index aa993bf..a254da1 100644 --- a/src/ATOMSOLVGUI/ATOMSOLVGUI_Displayer.cxx +++ b/src/ATOMSOLVGUI/ATOMSOLVGUI_Displayer.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -63,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( "_" ); @@ -76,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() ) { @@ -95,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( 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 @@ -138,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(); @@ -159,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(); } @@ -221,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.) ); }