From 6568c4419f0b12bbf3b85d41b9a18bd76f149766 Mon Sep 17 00:00:00 2001 From: caremoli Date: Thu, 1 Jul 2010 08:25:34 +0000 Subject: [PATCH] CCAR: various optimisations : object browser and display --- doc/salome/gui/doxyfile.in | 7 +- doc/salome/gui/images/pref15.png | Bin 50233 -> 49591 bytes doc/salome/gui/input/geometry_preferences.doc | 11 ++ src/LightApp/LightApp_Application.cxx | 2 - src/LightApp/LightApp_Module.cxx | 2 - src/Prs/SALOME_Prs.h | 2 + src/SALOME_SWIG/SALOMEGUI_Swig.cxx | 2 - src/SOCC/SOCC_ViewModel.cxx | 100 +++++++++++++++++- src/SOCC/SOCC_ViewModel.h | 3 + src/SUIT/SUIT_DataObject.cxx | 2 - src/SUIT/SUIT_TreeModel.cxx | 4 +- src/SalomeApp/SalomeApp_Application.cxx | 2 - src/SalomeApp/SalomeApp_DataModel.cxx | 4 - src/SalomeApp/SalomeApp_DataObject.cxx | 4 - src/SalomeApp/SalomeApp_Study.h | 2 +- 15 files changed, 122 insertions(+), 25 deletions(-) diff --git a/doc/salome/gui/doxyfile.in b/doc/salome/gui/doxyfile.in index 84772c776..4d4cd2fda 100755 --- a/doc/salome/gui/doxyfile.in +++ b/doc/salome/gui/doxyfile.in @@ -62,4 +62,9 @@ GENERATE_LATEX = NO #--------------------------------------------------------------------------- #RTF related options #--------------------------------------------------------------------------- -GENERATE_RTF = NO \ No newline at end of file +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#Search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/doc/salome/gui/images/pref15.png b/doc/salome/gui/images/pref15.png index 9f1195e5cf42c2e465f2e4befcdffb7e89db26e2..f90b585329abcb8785867093f4050829d637189b 100755 GIT binary patch literal 49591 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 +
    +
  • Origin and base vectors
  • +
      +
    • Length of base vectors - allows to define a length +of base vectors.
    • +
    • Auto create - allows to automatically create a point +of origin and three base vectors of the rectangular coordinate +system immediately after activation of the module.
    • +
    +
+ */ diff --git a/src/LightApp/LightApp_Application.cxx b/src/LightApp/LightApp_Application.cxx index 2de22f06c..1c2be69d3 100644 --- a/src/LightApp/LightApp_Application.cxx +++ b/src/LightApp/LightApp_Application.cxx @@ -1211,10 +1211,8 @@ PyConsole_Console* LightApp_Application::pythonConsole() Updates object browser and maybe data models \param updateModels - if it is true, then data models are updated */ -#include "utilities.h" void LightApp_Application::updateObjectBrowser( const bool updateModels ) { - MESSAGE("Update from LightApp_Application"); /* // update existing data models if ( updateModels ) diff --git a/src/LightApp/LightApp_Module.cxx b/src/LightApp/LightApp_Module.cxx index db9af4287..7fa22775f 100644 --- a/src/LightApp/LightApp_Module.cxx +++ b/src/LightApp/LightApp_Module.cxx @@ -145,11 +145,9 @@ void LightApp_Module::contextMenuPopup( const QString& client, QMenu* menu, QStr /*!Update object browser. * For updating model or whole object browser use update() method can be used. */ -#include "utilities.h" void LightApp_Module::updateObjBrowser( bool theIsUpdateDataModel, SUIT_DataObject* theDataObject ) { - MESSAGE("Update from LightApp_Module"); /* bool upd = getApp()->objectBrowser()->autoUpdate(); getApp()->objectBrowser()->setAutoUpdate( false ); diff --git a/src/Prs/SALOME_Prs.h b/src/Prs/SALOME_Prs.h index 3ce235a4c..e9ca97d72 100755 --- a/src/Prs/SALOME_Prs.h +++ b/src/Prs/SALOME_Prs.h @@ -199,6 +199,8 @@ public: //! \retval Return false. virtual bool isVisible( const Handle_SALOME_InteractiveObject& ){ return false; } virtual void Repaint() {} //!< Null body here. + + virtual void updateViewer(SALOME_Prs* prs){}; }; /*! diff --git a/src/SALOME_SWIG/SALOMEGUI_Swig.cxx b/src/SALOME_SWIG/SALOMEGUI_Swig.cxx index 8a6b27c99..55cf9fb0d 100644 --- a/src/SALOME_SWIG/SALOMEGUI_Swig.cxx +++ b/src/SALOME_SWIG/SALOMEGUI_Swig.cxx @@ -173,14 +173,12 @@ bool SALOMEGUI_Swig::hasDesktop() */ void SALOMEGUI_Swig::updateObjBrowser( bool /*updateSelection*/ ) { - gettimeofday(&tv,0);tt0=tv.tv_usec+tv.tv_sec*1000000; class TEvent: public SALOME_Event { public: TEvent() {} virtual void Execute() { - END_TIMING(1); if ( LightApp_Application* anApp = getApplication() ) { anApp->updateObjectBrowser(); anApp->updateActions(); //SRN: added in order to update the toolbar diff --git a/src/SOCC/SOCC_ViewModel.cxx b/src/SOCC/SOCC_ViewModel.cxx index 260bed36e..ba3aa631f 100755 --- a/src/SOCC/SOCC_ViewModel.cxx +++ b/src/SOCC/SOCC_ViewModel.cxx @@ -61,6 +61,15 @@ #include +#include +static long tcount=0; +static long cumul; +#define START_TIMING long tt0; timeval tv; gettimeofday(&tv,0);tt0=tv.tv_usec+tv.tv_sec*1000000; +#define END_TIMING(NUMBER) \ + tcount=tcount+1;gettimeofday(&tv,0);cumul=cumul+tv.tv_usec+tv.tv_sec*1000000 -tt0; \ + if(tcount==NUMBER){ std::cerr << __FILE__ << __LINE__ << " temps CPU(mus): " << cumul << std::endl; tcount=0;cumul=0; } + + // in order NOT TO link with SalomeApp, here the code returns SALOMEDS_Study. // SalomeApp_Study::studyDS() does it as well, but -- here it is retrieved from // SALOMEDS::StudyManager - no linkage with SalomeApp. @@ -321,6 +330,7 @@ void SOCC_Viewer::rename( const Handle(SALOME_InteractiveObject)& obj, */ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) { + //std::cerr << "SOCC_Viewer::Display" << std::endl; // try do downcast object const SOCC_Prs* anOCCPrs = dynamic_cast( prs ); if ( !anOCCPrs || anOCCPrs->IsNull() ) @@ -335,12 +345,14 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) // get context Handle (AIS_InteractiveContext) ic = getAISContext(); + /* // get all displayed objects AIS_ListOfInteractive List; ic->DisplayedObjects( List ); // get objects in the collector AIS_ListOfInteractive ListCollector; ic->ObjectsInCollector( ListCollector ); + */ // get objects to be displayed AIS_ListOfInteractive anAISObjects; @@ -354,6 +366,7 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) { // try to find presentation in the viewer bool bDisplayed = false; + /* AIS_ListIteratorOfListOfInteractive ite( List ); for ( ; ite.More(); ite.Next() ) { @@ -361,6 +374,7 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) // if the object is already displayed - nothing to do more if ( ite.Value() == anAIS ) { +std::cerr << "ais found in displayed objects" << std::endl; // Deactivate object if necessary if ( !anOCCPrs->ToActivate() ) ic->Deactivate( anAIS ); @@ -368,12 +382,33 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) break; } } +*/ + AIS_DisplayStatus status = ic->DisplayStatus(anAIS); + if(status == AIS_DS_Displayed) + { +//std::cerr << "ais found in displayed objects" << std::endl; + // Deactivate object if necessary + if ( !anOCCPrs->ToActivate() ) + ic->Deactivate( anAIS ); + bDisplayed = true; + } if ( bDisplayed ) continue; // then try to find presentation in the collector bDisplayed = false; + if(status == AIS_DS_Erased) + { +//std::cerr << "ais found in collector" << std::endl; + ic->DisplayFromCollector( anAIS, false ); + + // Deactivate object if necessary + if ( !anOCCPrs->ToActivate() ) + ic->Deactivate( anAIS ); + bDisplayed = true; + } + /* ite.Initialize( ListCollector ); for ( ; ite.More(); ite.Next() ) { @@ -381,6 +416,7 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) // if the object is in collector - display it if ( ite.Value() == anAIS ) { +std::cerr << "ais found in collector" << std::endl; ic->DisplayFromCollector( anAIS, false ); // Deactivate object if necessary @@ -402,9 +438,12 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) break; } } + */ if ( bDisplayed ) continue; + //std::cerr << "ais not found in context. Display it" << std::endl; + // if object is not displayed and not found in the collector - display it if ( anAIS->IsKind( STANDARD_TYPE(AIS_Trihedron) ) ) { @@ -414,7 +453,9 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) aTrh->SetSize( aTrh == getTrihedron() ? aNewSize : 0.5 * aNewSize ); } + START_TIMING; ic->Display( anAIS, false ); + END_TIMING(100); // Set visibility flag // Temporarily commented to avoid awful dependecy on SALOMEDS @@ -443,6 +484,7 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs ) */ void SOCC_Viewer::Erase( const SALOME_OCCPrs* prs, const bool forced ) { + //std::cerr << "SOCC_Viewer::Erase " << forced << std::endl; // try do downcast object const SOCC_Prs* anOCCPrs = dynamic_cast( prs ); if ( !anOCCPrs || anOCCPrs->IsNull() ) @@ -510,8 +552,8 @@ void SOCC_Viewer::EraseAll( const bool forced ) ic->DisplayedObjects( aList ); AIS_ListIteratorOfListOfInteractive anIter( aList ); for ( ; anIter.More(); anIter.Next() ) { - if ( isTrihedronDisplayed && anIter.Value()->DynamicType() == STANDARD_TYPE( AIS_Trihedron ) || - anIter.Value()->DynamicType() == STANDARD_TYPE( OCCViewer_Trihedron )) + if ( (isTrihedronDisplayed && anIter.Value()->DynamicType() == STANDARD_TYPE( AIS_Trihedron ) )|| + (anIter.Value()->DynamicType() == STANDARD_TYPE( OCCViewer_Trihedron )) ) continue; // erase an object @@ -542,12 +584,26 @@ void SOCC_Viewer::EraseAll( const bool forced ) */ SALOME_Prs* SOCC_Viewer::CreatePrs( const char* entry ) { + //std::cerr << "SOCC_Viewer::CreatePrs " << entry << std::endl; SOCC_Prs* prs = new SOCC_Prs(); if ( entry ) { // get context Handle(AIS_InteractiveContext) ic = getAISContext(); + if(entry2aisobject.count(entry)>0) + { + //ais object exists + Handle(AIS_InteractiveObject) anAIS = entry2aisobject[entry]; + AIS_DisplayStatus status = ic->DisplayStatus(anAIS); + if((status == AIS_DS_Displayed) || (status == AIS_DS_Erased)) + { + //std::cerr << "ais found in context: add it in prs " << entry << std::endl; + prs->AddObject( anAIS ); + } + } + + /* // get displayed objects AIS_ListOfInteractive List; ic->DisplayedObjects( List ); @@ -563,8 +619,12 @@ SALOME_Prs* SOCC_Viewer::CreatePrs( const char* entry ) Handle(SALOME_InteractiveObject)::DownCast( ite.Value()->GetOwner() ); if ( !anObj.IsNull() && anObj->hasEntry() && strcmp( anObj->getEntry(), entry ) == 0 ) - prs->AddObject( ite.Value() ); + { + std::cerr << "ais found in context: add it in prs " << entry << std::endl; + prs->AddObject( ite.Value() ); + } } +*/ } return prs; } @@ -702,6 +762,40 @@ void SOCC_Viewer::Repaint() getViewer3d()->Update(); } +void SOCC_Viewer::updateViewer(SALOME_Prs* prs) +{ + //std::cerr << "SOCC_Viewer::updateViewer" << std::endl; + // try do downcast object + const SOCC_Prs* anOCCPrs = dynamic_cast( prs ); + if ( !anOCCPrs || anOCCPrs->IsNull() ) + return; + + AIS_ListOfInteractive anAISObjects; + anOCCPrs->GetObjects( anAISObjects ); + + AIS_ListIteratorOfListOfInteractive aIter( anAISObjects ); + for ( ; aIter.More(); aIter.Next() ) + { + Handle(SALOME_InteractiveObject) anObj = Handle(SALOME_InteractiveObject)::DownCast( aIter.Value()->GetOwner() ); + if ( !anObj.IsNull() && anObj->hasEntry() ) + { + //std::cerr << "add ais in map entry2aisobject" << anObj->getEntry() << std::endl; + if(entry2aisobject.count(anObj->getEntry())>0) + { + if(entry2aisobject[anObj->getEntry()] == aIter.Value()) + { + //std::cerr << "ais already in map entry2aisobject and the same" << std::endl; + continue; + } + else + { + //std::cerr << "ais already in map entry2aisobject but not the same" << std::endl; + } + } + entry2aisobject[anObj->getEntry()] = aIter.Value(); + } + } +} /*! create SOCC_ViewWindow diff --git a/src/SOCC/SOCC_ViewModel.h b/src/SOCC/SOCC_ViewModel.h index 7a5b10ef4..8bdd29ef9 100755 --- a/src/SOCC/SOCC_ViewModel.h +++ b/src/SOCC/SOCC_ViewModel.h @@ -68,6 +68,9 @@ public: // a utility function, used by SALOME_View_s methods bool getTrihedronSize( double& theNewSize, double& theSize ); + //a map to store AIS objects associated to a SALOME entry + std::map< std::string , Handle(AIS_InteractiveObject) > entry2aisobject; + virtual void updateViewer(SALOME_Prs* prs); }; #ifdef WIN32 diff --git a/src/SUIT/SUIT_DataObject.cxx b/src/SUIT/SUIT_DataObject.cxx index 89d899a60..db8e980c5 100755 --- a/src/SUIT/SUIT_DataObject.cxx +++ b/src/SUIT/SUIT_DataObject.cxx @@ -283,7 +283,6 @@ void SUIT_DataObject::appendChild( SUIT_DataObject* obj ) */ void SUIT_DataObject::insertChild( SUIT_DataObject* obj, int position ) { - START_TIMING; if ( !obj || myChildren.contains( obj ) ) return; @@ -296,7 +295,6 @@ void SUIT_DataObject::insertChild( SUIT_DataObject* obj, int position ) else signal()->emitInserted( obj, this ,myChildren.at(pos-1)); */ - END_TIMING(100); } /*! diff --git a/src/SUIT/SUIT_TreeModel.cxx b/src/SUIT/SUIT_TreeModel.cxx index f1222c2a7..69b9cfa95 100755 --- a/src/SUIT/SUIT_TreeModel.cxx +++ b/src/SUIT/SUIT_TreeModel.cxx @@ -1311,7 +1311,7 @@ void SUIT_TreeModel::removeItem( SUIT_TreeModel::TreeItem* item ) QModelIndex parentIdx = index( parentObj, 0 ); int row = item->position(); - beginRemoveRows( parentIdx, row, row ); + //beginRemoveRows( parentIdx, row, row ); myItems.remove( obj ); if ( obj == root() ) @@ -1321,7 +1321,7 @@ void SUIT_TreeModel::removeItem( SUIT_TreeModel::TreeItem* item ) delete item; - endRemoveRows(); + //endRemoveRows(); } void SUIT_TreeModel::onUpdated( SUIT_DataObject* object) diff --git a/src/SalomeApp/SalomeApp_Application.cxx b/src/SalomeApp/SalomeApp_Application.cxx index 215abb344..8dc5250f3 100644 --- a/src/SalomeApp/SalomeApp_Application.cxx +++ b/src/SalomeApp/SalomeApp_Application.cxx @@ -1246,8 +1246,6 @@ void SalomeApp_Application::contextMenuPopup( const QString& type, QMenu* thePop 3. update object browser if it exists */ void SalomeApp_Application::updateObjectBrowser( const bool updateModels ) { - //MESSAGE("UpdateObjBrowser"); - // update "non-existing" (not loaded yet) data models SalomeApp_Study* study = dynamic_cast(activeStudy()); /* diff --git a/src/SalomeApp/SalomeApp_DataModel.cxx b/src/SalomeApp/SalomeApp_DataModel.cxx index 9dcea194a..a1a8f02d9 100644 --- a/src/SalomeApp/SalomeApp_DataModel.cxx +++ b/src/SalomeApp/SalomeApp_DataModel.cxx @@ -296,7 +296,6 @@ bool SalomeApp_DataModel::create( CAM_Study* theStudy ) */ void SalomeApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study ) { - std::cerr << "in update" << std::endl; SalomeApp_Study* aSStudy = dynamic_cast(study); LightApp_RootObject* studyRoot = 0; _PTR(SComponent) sobj; @@ -333,8 +332,6 @@ void SalomeApp_DataModel::update( LightApp_DataObject*, LightApp_Study* study ) */ SUIT_DataObject* SalomeApp_DataModel::synchronize( const _PTR( SComponent )& sobj, SalomeApp_Study* study ) { - - std::cerr << "in synchronize" << std::endl; if( !study || !study->root() || !sobj ) return 0; @@ -364,7 +361,6 @@ SUIT_DataObject* SalomeApp_DataModel::synchronize( const _PTR( SComponent )& sob */ void SalomeApp_DataModel::updateTree( const _PTR( SComponent )& comp, SalomeApp_Study* study ) { - std::cerr << "in updatetree" << std::endl; SalomeApp_ModuleObject* aNewRoot = dynamic_cast( synchronize( comp, study ) ); if( aNewRoot ) { diff --git a/src/SalomeApp/SalomeApp_DataObject.cxx b/src/SalomeApp/SalomeApp_DataObject.cxx index 0d0a5048a..987af4c46 100644 --- a/src/SalomeApp/SalomeApp_DataObject.cxx +++ b/src/SalomeApp/SalomeApp_DataObject.cxx @@ -176,7 +176,6 @@ QPixmap SalomeApp_DataObject::icon( const int id ) const if ( id == NameId ) { _PTR(GenericAttribute) anAttr; if ( myObject && myObject->FindAttribute( anAttr, "AttributePixMap" ) ){ - // MESSAGE("SalomeApp_DataObject::icon : found attributePixmap") _PTR(AttributePixMap) aPixAttr ( anAttr ); if ( aPixAttr->HasPixMap() ) { QString componentType = componentDataType(); @@ -189,11 +188,8 @@ QPixmap SalomeApp_DataObject::icon( const int id ) const } QString pixmapName = QObject::tr( pixmapID.toLatin1().constData() ); LightApp_RootObject* aRoot = dynamic_cast( root() ); - //MESSAGE("SalomeApp_DataObject::icon : after dynamic cast") if ( aRoot && aRoot->study() ) { SUIT_ResourceMgr* mgr = aRoot->study()->application()->resourceMgr(); - //MESSAGE("SalomeApp_DataObject::icon : Call to mgr mgr == " << mgr ); - //MESSAGE("SalomeApp_DataObject::icon : Call to mgr loadPixmap ( " << componentType.toStdString() << " , " << pixmapName.toStdString() << " )"); return mgr->loadPixmap( componentType, pixmapName, false ); } } diff --git a/src/SalomeApp/SalomeApp_Study.h b/src/SalomeApp/SalomeApp_Study.h index 47e941685..ec9ed0a60 100644 --- a/src/SalomeApp/SalomeApp_Study.h +++ b/src/SalomeApp/SalomeApp_Study.h @@ -35,7 +35,7 @@ #include #include CORBA_SERVER_HEADER(SALOME_Observer) -class SALOMEAPP_EXPORT SalomeApp_Study : public LightApp_Study +class SALOMEAPP_EXPORT SalomeApp_Study : public LightApp_Study { Q_OBJECT -- 2.39.2