]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Suppression de l'appel aux méthodes DisplayedObjects et ObjectsInCollector et rempla...
authornge <nge>
Tue, 8 Jul 2008 14:23:31 +0000 (14:23 +0000)
committernge <nge>
Tue, 8 Jul 2008 14:23:31 +0000 (14:23 +0000)
src/SOCC/SOCC_ViewModel.cxx

index 51e48fc0155bbf57966f1766df43e8dfcc252745..539836496fadb11e4e84800cfc44a957c7fc18a4 100755 (executable)
@@ -24,7 +24,6 @@
 #include "SUIT_Session.h"
 #include "SUIT_Application.h"
 #include <iostream>
-#include <set>
 
 //#include "ToolsGUI.h"
 
 #include <SALOME_AISShape.hxx>
 #include <SALOME_AISObject.hxx>
 
-struct AISLessThan
-{
-  bool  operator()(const Handle(AIS_InteractiveObject)* theRightIO,
-                   const Handle(AIS_InteractiveObject)* theLeftIO) const
-  {
-    return (theLeftIO<theRightIO); 
-  } 
-};
-
 // Temporarily commented to avoid awful dependecy on SALOMEDS
 // TODO: better mechanism of storing display/erse status in a study
 // should be provided...
@@ -331,6 +321,7 @@ void SOCC_Viewer::rename( const Handle(SALOME_InteractiveObject)& obj,
 */
 void SOCC_Viewer::Display( const SALOME_OCCPrs* prs )
 {
+  START_TIMING
   // try do downcast object
   const SOCC_Prs* anOCCPrs = dynamic_cast<const SOCC_Prs*>( prs );
   if ( !anOCCPrs || anOCCPrs->IsNull() )
@@ -345,43 +336,12 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs )
   // get context
   Handle (AIS_InteractiveContext) ic = getAISContext();
 
-  // get all displayed objects
-  AIS_ListOfInteractive List;
-//CCAR
-#if 0
-#else
-  ic->DisplayedObjects( List );
-#endif
-  // get objects in the collector
-  AIS_ListOfInteractive ListCollector;
-//CCAR
-#if 0
-#else
-  ic->ObjectsInCollector( ListCollector );
-#endif
-
-
-  START_TIMING
   // get objects to be displayed
   AIS_ListOfInteractive anAISObjects;
   anOCCPrs->GetObjects( anAISObjects );
 
   AIS_ListIteratorOfListOfInteractive aIter( anAISObjects );
-  AIS_ListIteratorOfListOfInteractive ite( List );
-
-  std::set<Handle(AIS_InteractiveObject)*,AISLessThan> check;
-  std::set<Handle(AIS_InteractiveObject)*,AISLessThan> checkCollector;
-
-  for ( ; ite.More();ite.Next())
-    {
-      check.insert(&ite.Value());
-    }
-  ite.Initialize(ListCollector);
-  for ( ; ite.More();ite.Next())
-    {
-      checkCollector.insert(&ite.Value());
-    }
-
+  //~ START_TIMING
   for ( ; aIter.More(); aIter.Next() )
   {
     Handle(AIS_InteractiveObject) anAIS = aIter.Value();
@@ -390,17 +350,19 @@ void SOCC_Viewer::Display( const SALOME_OCCPrs* prs )
       // try to find presentation in the viewer
       bool bDisplayed = false;
       // if insert.second is True object was not displayed before
-      if ((check.insert(&anAIS)).second)
+      if (ic->IsDisplayed(anAIS))
+      { 
         // compare presentations by handles
         // if the object is already displayed - nothing to do more
           // Deactivate object if necessary
           if ( !anOCCPrs->ToActivate() )
             ic->Deactivate( anAIS );
           bDisplayed = true;
-      
+      }
+
       // then try to find presentation in the collector
       bDisplayed = false;
-      if ((checkCollector.insert(&anAIS)).second)
+      if (ic->IsInCollector(anAIS))
       {
         // compare presentations by handles
         // if the object is in collector - display it