]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
[bos #32736][CEA] Threshold of criteria. Added Wireframe Off checkbox to hide edges... kleontev/32736_Threshold_of_criteria 5/head
authorkosta <kleontev@Debian11.kleontev.virtualbox.org>
Mon, 17 Apr 2023 16:03:01 +0000 (17:03 +0100)
committerkosta <kleontev@Debian11.kleontev.virtualbox.org>
Mon, 17 Apr 2023 16:03:01 +0000 (17:03 +0100)
src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_Actor.h
src/OBJECT/SMESH_ActorDef.h
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h
src/SMESHGUI/SMESH_msg_en.ts
src/SMESHGUI/SMESH_msg_fr.ts
src/SMESHGUI/SMESH_msg_ja.ts

index c1c6cdc3f9ba1960b4026df44cc052952e7dbcda..d9e47586c42f180086b608d097df2083ef781945 100644 (file)
@@ -842,6 +842,7 @@ void SMESH_ActorDef::SetControlMode( eControl theMode, bool theCheckEntityMode )
   myBallActor->GetMapper()->SetScalarVisibility(false);
   myScalarBarActor->SetVisibility(false);
   ClipThreshold(false);
+  SetWireframeOff(false);
 
   bool anIsScalarVisible = theMode > eNone;
 
@@ -1825,6 +1826,8 @@ void SMESH_ActorDef::UpdateHighlight()
   case SMESH_DeviceActor::eSurface:
   case SMESH_DeviceActor::eWireframe:
     {
+      anIsVisible = !IsWireframeOff();
+
       if(myIsHighlighted) {
         myHighlitableActor->SetProperty(myHighlightProp);
       }else if(myIsPreselected){
@@ -2526,6 +2529,14 @@ void SMESH_ActorDef::ClipThreshold(bool isThresholdOn, double min /*= 0.0*/, dou
   }
 }
 
+// Hides the wireframe if isWireframeOff == true.
+void SMESH_ActorDef::SetWireframeOff(bool isWireframeOff)
+{
+  myIsWireframeOff = isWireframeOff;
+
+  UpdateHighlight();
+}
+
 void SMESH_ActorDef::UpdateDistribution()
 {
   if(SMESH::Controls::NumericalFunctor* fun =
index b7e83ad7bb3b11a3c8c2122956295e7d4fa7f1fe..aa1c6762589dacbc5c266d77e3cb88b950f60e23 100644 (file)
@@ -168,6 +168,8 @@ class SMESHOBJECT_EXPORT SMESH_Actor: public SALOME_Actor
   virtual void UpdateDistribution() = 0;
   virtual void ClipThreshold(bool isThresholdOn, double min = 0.0, double max = 0.0) = 0;
   virtual bool IsClipThresholdOn() const = 0;
+  virtual void SetWireframeOff(bool isWireframeOff) = 0;
+  virtual bool IsWireframeOff() const = 0;
 
   virtual void SetPointsFontProperties( SMESH::LabelFont family, int size, 
                                         bool bold, bool italic, bool shadow,
index 2cca9bfc8d845141b8d20e0f75fb33d274167bb6..98c229d85a7a4bcd439163edd7da0130f497b298 100644 (file)
@@ -228,6 +228,8 @@ class SMESH_ActorDef : public SMESH_Actor
   virtual void UpdateDistribution();
   virtual void ClipThreshold(bool isThresholdOn, double min = 0.0, double max = 0.0);
   virtual bool IsClipThresholdOn() const { return myIsClipThresholdOn; }
+  virtual void SetWireframeOff(bool isWireframeOff);
+  virtual bool IsWireframeOff() const { return myIsWireframeOff; }
 
 #ifndef DISABLE_PLOT2DVIEWER
   virtual SPlot2d_Histogram* GetPlot2Histogram() { return my2dHistogram; }
@@ -303,6 +305,7 @@ class SMESH_ActorDef : public SMESH_Actor
   bool myIsEntityModeCache;
   bool myIsPointsVisible;
   bool myIsClipThresholdOn = false;
+  bool myIsWireframeOff = false;
 
   bool myIsShrinkable;
   bool myIsShrunk;
index 7446469668476745a0b4811ddd95af032fed689b..76752d62def9420aada67e7441a06e808f41def0 100644 (file)
@@ -152,12 +152,17 @@ SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*
   myThresholdCheck->setText(tr("SMESH_TRESHOLD_SCALARBAR"));
   myThresholdCheck->setChecked(false);
 
+  myWireframeOffCheck = new QCheckBox (myRangeGrp);
+  myWireframeOffCheck->setText(tr("SMESH_WIREFRAME_OFF_SCALARBAR"));
+  myWireframeOffCheck->setChecked(false);
+
   myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MIN" ), myRangeGrp ), 0, 0, 1, 1 );
   myRangeGrpLayout->addWidget( myMinEdit, 0, 1, 1, 1 );
   myRangeGrpLayout->addWidget( new QLabel( tr( "SMESH_RANGE_MAX" ), myRangeGrp ), 0, 2, 1, 1 );
   myRangeGrpLayout->addWidget( myMaxEdit, 0, 3, 1, 1 );
   myRangeGrpLayout->addWidget( myLogarithmicCheck, 1, 0, 1, 1 );
   myRangeGrpLayout->addWidget( myThresholdCheck, 1, 1, 1, 1 );
+  myRangeGrpLayout->addWidget( myWireframeOffCheck, 1, 2, 1, 1 );
 
   aTopLayout->addWidget( myRangeGrp );
 
@@ -573,6 +578,8 @@ bool SMESHGUI_Preferences_ScalarBarDlg::onApply()
   myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
   applyThreshold(aMin, aMax);
 
+  applyWireframeOff();
+
   bool scaleChanged = (myLogarithmicCheck->isChecked() != (myLookupTable->GetScale() == VTK_SCALE_LOG10));
   if (scaleChanged)
     myLookupTable->SetScale(myLogarithmicCheck->isChecked() ? VTK_SCALE_LOG10 : VTK_SCALE_LINEAR);
@@ -667,8 +674,12 @@ void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
 
           myThresholdCheck->setChecked(myActor->IsClipThresholdOn());
           applyThreshold(range[0], range[1]);
+
+          myWireframeOffCheck->setChecked(myActor->IsWireframeOff());
         }
 
+        applyWireframeOff();
+
         vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
         double aTColor[3];
         aTitleTextPrp->GetColor( aTColor );
@@ -897,12 +908,22 @@ void SMESHGUI_Preferences_ScalarBarDlg::initScalarBarFromResources()
 /*!
  *  SMESHGUI_Preferences_ScalarBarDlg::applyThreshold()
  *
- *  Switch on and off using of special color for values beyond the min-max range.
- *  Now this color is completely transparent - RGBA(0,0,0,0).
+ *  Hides and shows elements beyond the given min - max range by threshold filter inside the actor.
  */
 //=================================================================================================
-//void SMESHGUI_Preferences_ScalarBarDlg::applyThreshold(vtkLookupTable* aLookupTable)
 void SMESHGUI_Preferences_ScalarBarDlg::applyThreshold(double min, double max)
 {
   myActor->ClipThreshold(myThresholdCheck->isChecked(), min, max);
 }
+
+//=================================================================================================
+/*!
+ *  SMESHGUI_Preferences_ScalarBarDlg::applyWireframeOff()
+ *
+ *  Hides and shows edges' lines.
+ */
+//=================================================================================================
+void SMESHGUI_Preferences_ScalarBarDlg::applyWireframeOff()
+{
+  myActor->SetWireframeOff(myWireframeOffCheck->isChecked());
+}
index 204601772f25da25cf8c65a15cd66d1eb6e50f01..08b600cb6626b61e27e2ee499c31fae04c2c68b4 100644 (file)
@@ -74,6 +74,7 @@ public:
 
 protected:
   void                     applyThreshold(double min, double max);
+  void                     applyWireframeOff();
 
 protected slots:
   virtual void             reject();
@@ -103,6 +104,7 @@ private:
   QLineEdit*               myMaxEdit;
   QCheckBox*               myLogarithmicCheck;
   QCheckBox*               myThresholdCheck;
+  QCheckBox*               myWireframeOffCheck;
 
   QGroupBox*               myFontGrp;
   QtxColorButton*          myTitleColorBtn;
index 0a0f69bc6d52138832bcdedd1495d87e1069296d..fb04b585cfe546ac18bfa5ac9f530d145536e78d 100644 (file)
@@ -2228,6 +2228,10 @@ Check algorithm documentation for supported geometry</translation>
         <source>SMESH_TRESHOLD_SCALARBAR</source>
         <translation>Threshold</translation>
     </message>
+    <message>
+        <source>SMESH_WIREFRAME_OFF_SCALARBAR</source>
+        <translation>Wireframe Off</translation>
+    </message>
     <message>
         <source>SMESH_MAKE_GROUPS</source>
         <translation>Generate groups</translation>
index af8541f2d249b7c2c86c4b472c1a758b59a2e8b1..7fe5b70964fe35ab1e6980aa64c9e18f25b53ed5 100644 (file)
@@ -2226,6 +2226,10 @@ Référez-vous à la documentation sur l'algorithme et la géométrie supportée
         <source>SMESH_TRESHOLD_SCALARBAR</source>
         <translation>Seuil</translation>
     </message>
+    <message>
+        <source>SMESH_WIREFRAME_OFF_SCALARBAR</source>
+        <translation>Filaire désactivé</translation>
+    </message>
     <message>
         <source>SMESH_MAKE_GROUPS</source>
         <translation>Générer les groupes</translation>
index ba16e96d60d6ca9419b34172c37198cef0cfe5ea..01277cbd82242444e75112274a56eafa97c0dbcc 100644 (file)
         <source>SMESH_TRESHOLD_SCALARBAR</source>
         <translation>しきい値</translation>
     </message>
+    <message>
+        <source>SMESH_WIREFRAME_OFF_SCALARBAR</source>
+        <translation>ワイヤーフレーム オフ</translation>
+    </message>
     <message>
       <source>SMESH_MAKE_GROUPS</source>
       <translation>グループを生成します。</translation>