]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
update interaction between viewer and scalar bar control
authorpkv <pkv@opencascade.com>
Tue, 4 Oct 2005 06:23:30 +0000 (06:23 +0000)
committerpkv <pkv@opencascade.com>
Tue, 4 Oct 2005 06:23:30 +0000 (06:23 +0000)
src/OBJECT/VISU_GaussPtsAct.cxx
src/PIPELINE/VISU_ScalarBarCtrl.cxx
src/PIPELINE/VISU_ScalarBarCtrl.hxx
src/VISU_I/VISU_GaussPoints_i.cc

index b70b8ec5357f92b96254560ec31492812a4c9a77..3b1e226ca62238e919b7cd4f744f94c54d01b0d2 100644 (file)
@@ -637,6 +637,11 @@ VISU_GaussPtsAct
     if(myPointPicker->GetActor() != this) {
       myTextActor->SetVisibility(aTextVisibility);
       mySphereActor->SetVisibility(aSphereVisibility);
+      //
+      if (GetScalarBarCtrl()->GetIsMarked()) {
+       GetScalarBarCtrl()->SetIsMarked(false);
+       GetScalarBarCtrl()->Update();
+      }
       return bRet;
     }
     //
@@ -650,8 +655,9 @@ VISU_GaussPtsAct
        if(theSelector->IsSelected(myIO))
          theSelector->AddOrRemoveIndex(myIO,anObjId,theSelectionEvent->myIsShift);
        else{
-         if(!theSelectionEvent->myIsShift)
+         if(!theSelectionEvent->myIsShift){
            theSelector->ClearIObjects();
+         }
          theSelector->AddOrRemoveIndex(myIO,anObjId,theSelectionEvent->myIsShift);
          theSelector->AddIObject(this);
        }
@@ -673,20 +679,28 @@ VISU_GaussPtsAct
        vtkDataSet* aDataSet = GetInput();
        vtkCellData* aCellData = aDataSet->GetCellData();
        if(vtkDataArray* aScalarArray = aCellData->GetScalars()){
+         float aVal = aScalarArray->GetTuple1(aVtkId);
          float aRadius = myGaussPointsPL->GetPointSize(aVtkId, aScalarArray);
          mySphereSourceSelected->SetRadius(aRadius);
+         //
          if(theSelector->HasIndex(myIO)){
            mySphereActorSelected->SetVisibility(1);
-         }else{
+           GetScalarBarCtrl()->SetIsMarked(true);
+           GetScalarBarCtrl()->SetMarkValue(aVal);
+         }
+         else{
            mySphereActorSelected->SetVisibility(0);
            mySphereActor->SetVisibility(1);
+           GetScalarBarCtrl()->SetIsMarked(false);
          }
+         GetScalarBarCtrl()->Update();
          myTextActor->SetVisibility(1);
        }
        if(aSelectionMode == CellSelection){
          // Hilighting an element from the parent Mesh
          if(theSelector->HasIndex(myIO)){
-           const VISU::PGaussPtsIDMapper& aGaussPtsIDMapper = myGaussPointsPL->GetGaussPtsIDMapper();
+           const VISU::PGaussPtsIDMapper& aGaussPtsIDMapper = 
+             myGaussPointsPL->GetGaussPtsIDMapper();
            VISU::TNamedIDMapper* aParent = aGaussPtsIDMapper->GetParent();
 
            myCellSource->Reset();
@@ -701,11 +715,14 @@ VISU_GaussPtsAct
            myCellActor->SetVisibility(1);
          }
        }
-       
        return bRet;
        //
       }// if( anObjId >= 0 ) {
     }//if( aVtkId >= 0  && theSelector->IsValid( this, aVtkId, true ) && hasIO()) 
+    if (GetScalarBarCtrl()->GetIsMarked()) {
+      GetScalarBarCtrl()->SetIsMarked(false);
+      GetScalarBarCtrl()->Update();
+    }
   }// if( !isRectangle )  
   //
   else {
@@ -805,6 +822,7 @@ VISU_GaussPtsAct
                      // shoe sphere
                      myTextActor->SetVisibility(1);
                      mySphereActor->SetVisibility(1);
+                     //
                      return bRet;
                    }// if (bIsAdded){
                  }//  if( anObjId >= 0 )
index cbd61e7b3cdfd9c75a3caac58faf34d6d81b1192..4d9c3f00ffd5bdaead1607b647336a0cd47dce37 100644 (file)
@@ -346,21 +346,36 @@ int VISU_ScalarBarCtrl::GetMaximumNumberOfColors()const
   return myMaximumNumberOfColors;
 }
 //==================================================================
-// function : MarkValue
+// function : SetMarkValue
 // purpose  :
 //==================================================================
-void VISU_ScalarBarCtrl::MarkValue(const float theValue) 
+void VISU_ScalarBarCtrl::SetMarkValue(const float theValue) 
 {
-  myMarked=true;
   myMarkedValue=theValue;
 }
 //==================================================================
-// function : UnmarkValue
+// function : GetMarkValue
 // purpose  :
 //==================================================================
-void VISU_ScalarBarCtrl::UnmarkValue()
+float VISU_ScalarBarCtrl::GetMarkValue()const
 {
-  myMarked=false;
+  return myMarkedValue;
+}
+//==================================================================
+// function : SetIsMarked
+// purpose  :
+//==================================================================
+void VISU_ScalarBarCtrl::SetIsMarked(const bool theFlag) 
+{
+  myMarked=theFlag;
+}
+//==================================================================
+// function : GetIsMarked
+// purpose  :
+//==================================================================
+bool VISU_ScalarBarCtrl::GetIsMarked()const
+{
+  return myMarked;
 }
 //==================================================================
 // function : Update
index 7436b22f1236408abc68ab59e4f1b6cba8facff1..c5f3e50dc067cc3428da8888b1d4f018e6760b06 100644 (file)
@@ -102,8 +102,10 @@ public:
   int GetMaximumNumberOfColors ()const;
   //
   // Misc
-  void MarkValue  (const float theValue);
-  void UnmarkValue();
+  void  SetMarkValue (const float theValue);
+  float GetMarkValue  ()const;
+  void  SetIsMarked(const bool theFlag);
+  bool  GetIsMarked()const;
   //
 protected:
   VISU_ScalarBarCtrl();
index aa9f70e9ec0d05bd9dc07399d68de7a12947677d..02381e3b539cfa00d4b917b22bcc41f5fbeedb47 100644 (file)
@@ -515,11 +515,13 @@ VISU::GaussPoints_i
 
       int aScalarBarMode;
       if(myIsActiveLocalScalarBar){
-       aScalarBarMode = 1;
-      }else{
+       aScalarBarMode = 2; 
+      }
+      else{
        if(myIsDispGlobalScalarBar){
-         aScalarBarMode = 2;
-       }else{
+         aScalarBarMode = 1;
+       }
+       else{
          aScalarBarMode = 0;
          aScalarBarCtrl->SetRangeGlobal(aRange);
        }