0023654: Problem with displaying vertices in OCC view after closing all OCC views...
[occt.git] / src / AIS / AIS_InteractiveContext_1.cxx
index c4674d5..6f4323a 100755 (executable)
@@ -1,7 +1,23 @@
-// File:       AIS_InteractiveContext_1.cxx
-// Created:    Wed Jan 29 10:29:35 1997
-// Author:     Robert COUBLANC
-//             <rob@robox.paris1.matra-dtv.fr>
+// Created on: 1997-01-29
+// Created by: Robert COUBLANC
+// Copyright (c) 1997-1999 Matra Datavision
+// Copyright (c) 1999-2012 OPEN CASCADE SAS
+//
+// The content of this file is subject to the Open CASCADE Technology Public
+// License Version 6.5 (the "License"). You may not use the content of this file
+// except in compliance with the License. Please obtain a copy of the License
+// at http://www.opencascade.org and read it completely before using this file.
+//
+// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+//
+// The Original Code and all software distributed under the License is
+// distributed on an "AS IS" basis, without warranty of any kind, and the
+// Initial Developer hereby disclaims all such warranties, including without
+// limitation, any warranties of merchantability, fitness for a particular
+// purpose or non-infringement. Please see the License for the specific terms
+// and conditions governing the rights and limitations under the License.
+
 
 #define UKI60826       //GG_161199     Use the requested selection color instead of default
 
@@ -130,7 +146,7 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
                                   const Standard_Integer YPix, 
                                   const Handle(V3d_View)& aView)
 {
-  if(HasOpenedContext()&& aView->Viewer()!=myCollectorVwr){
+  if(HasOpenedContext()){
     myWasLastMain = Standard_True;
     return myLocalContexts(myCurLocalIndex)->MoveTo(XPix,YPix,aView);
   }
@@ -153,13 +169,6 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
     myLastPicked = myLastinMain;
     myWasLastMain = Standard_True;
   }
-  else if (aView->Viewer()== myCollectorVwr){
-    pmgr = myCollectorPM;
-    selector=myCollectorSel;
-    myLastPicked = myLastinColl;
-    ismain = Standard_False;
-    myWasLastMain = Standard_False;
-  }
   else 
     return AIS_SOD_Error;
   
@@ -191,13 +200,14 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
   selector->Init();
   if ( selector->More() )
   {
-    if ( HasOpenedContext() )
+    if ( HasOpenedContext() ) 
+    {
       if ( !myFilters->IsOk( selector->OnePicked() ) ) 
-       return AIS_SOD_AllBad;
+        return AIS_SOD_AllBad;
       else
         if ( !myLocalContexts( myCurLocalIndex )->Filter()->IsOk( selector->OnePicked() ) )
           return AIS_SOD_AllBad;
-    
+    }
  
     // Does nothing if previously detected object is equal to the current one
     if ( selector->OnePicked()->Selectable() == myLastPicked )
@@ -230,8 +240,6 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
     
     if ( ismain )
       myLastinMain = myLastPicked;
-    else 
-      myLastinColl = myLastPicked;
 #ifdef IMP191001
     // Highlight detected object if it is not selected or myToHilightSelected flag is true
     if ( !myLastPicked.IsNull() && 
@@ -272,8 +280,6 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo(const Standard_Integer XPix
     
     if ( ismain )
       myLastinMain.Nullify();
-    else
-      myLastinColl.Nullify();
   }
   
   if(UpdVwr) aView->Viewer()->Update();
@@ -308,12 +314,7 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const Standard_Integer XPMin,
   if(aView->Viewer()== myMainVwr) {
     selector= myMainSel;
     myWasLastMain = Standard_True;}
-  
-  else if (aView->Viewer()==myCollectorVwr){
-    selector= myCollectorSel;
-    myWasLastMain = Standard_False;}
-  
-  
+
   selector->Pick(XPMin,YPMin,XPMax,YPMax,aView);
   AIS_Selection::SetCurrentSelection(myCurrentName.ToCString());
 
@@ -378,12 +379,7 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const TColgp_Array1OfPnt2d& aPol
   if(aView->Viewer()== myMainVwr) {
     selector= myMainSel;
     myWasLastMain = Standard_True;}
-  
-  else if (aView->Viewer()==myCollectorVwr){
-    selector= myCollectorSel;
-    myWasLastMain = Standard_False;}
-  
-  
+
   selector->Pick(aPolyline,aView);
   AIS_Selection::SetCurrentSelection(myCurrentName.ToCString());
 
@@ -450,12 +446,6 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const Standard_Boolean updatevie
       if(updateviewer)
        UpdateCurrentViewer();}
   }
-  else if (!myWasLastMain && !myLastinColl.IsNull()){
-    if(myLastinColl->State()!=1){
-      SetCurrentObject(myLastinColl,Standard_False);
-      if(updateviewer)
-       UpdateCollector();}
-  }
   else{
     AIS_Selection::SetCurrentSelection(myCurrentName.ToCString());
     Handle(AIS_Selection) S = AIS_Selection::CurrentSelection();
@@ -476,9 +466,7 @@ AIS_StatusOfPick AIS_InteractiveContext::Select(const Standard_Boolean updatevie
     AIS_Selection::Select();
     if(updateviewer){
       if(myWasLastMain)
-       UpdateCurrentViewer();
-      else
-       UpdateCollector();
+        UpdateCurrentViewer();
     }
   }
   Standard_Integer NS = NbCurrents();
@@ -507,10 +495,7 @@ AIS_StatusOfPick AIS_InteractiveContext::ShiftSelect(const Standard_Boolean upda
   }
   if(myWasLastMain && !myLastinMain.IsNull())
     AddOrRemoveCurrentObject(myLastinMain,updateviewer);
-  else if (!myWasLastMain && !myLastinColl.IsNull())
-    AddOrRemoveCurrentObject(myLastinColl,updateviewer);
-  
-  
+
   Standard_Integer NS = NbCurrents();
   if(NS==0) return AIS_SOP_NothingSelected;
   if(NS==1) return AIS_SOP_OneSelected;
@@ -541,10 +526,6 @@ AIS_StatusOfPick AIS_InteractiveContext::ShiftSelect(const Standard_Integer XPMi
   if(aView->Viewer()== myMainVwr) {
     selector= myMainSel;
     myWasLastMain = Standard_True;}
-  
-  else if (aView->Viewer()==myCollectorVwr){
-    selector= myCollectorSel;
-    myWasLastMain = Standard_False;}
   else
     return AIS_SOP_NothingSelected;
   
@@ -588,10 +569,6 @@ AIS_StatusOfPick AIS_InteractiveContext::ShiftSelect( const TColgp_Array1OfPnt2d
         selector= myMainSel;
         myWasLastMain = Standard_True;
     }
-    else if ( aView->Viewer() == myCollectorVwr ) {
-        selector= myCollectorSel;
-        myWasLastMain = Standard_False;
-    }
     else
         return AIS_SOP_NothingSelected;