]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
PAL13174 - EDF226 VISU: Sweep improvement
authorepa <epa@opencascade.com>
Tue, 17 Oct 2006 05:54:12 +0000 (05:54 +0000)
committerepa <epa@opencascade.com>
Tue, 17 Oct 2006 05:54:12 +0000 (05:54 +0000)
src/VISUGUI/VISU_msg_en.po
src/VISUGUI/VisuGUI.cxx

index eebc49c8fbd7aea26381c270127bbed0542a0668..2cc01cee4729ea6a45eb69d6e6e13c0a697dd1bf 100644 (file)
@@ -147,6 +147,24 @@ msgstr "Max:"
 msgid "VISU_SWEEPING_PREF"
 msgstr "Sweeping preferences"
 
+msgid "VISU_LINEAR_SWEEP"
+msgstr "Linear" 
+
+msgid "VISU_U_SWEEP"
+msgstr "Periodic"
+
+msgid "VISU_SWEEPING_MODES"
+msgstr "Mode of the sweeping "
+
+msgid "VISU_IS2PI"
+msgstr "Parameter varies:"
+
+msgid "PERIOD_2PI"
+msgstr "From -PI to PI"
+
+msgid "PERIOD_PI"
+msgstr "From 0 to PI"
+
 msgid "VISU_TIME_STEP"
 msgstr "Time step(second)"
 
index 8266ce946340111e04c392d9c4a006a855177532..64573fb3b5bb10e61443ba713aaeb8e875877ada 100644 (file)
@@ -1608,12 +1608,24 @@ OnSweep()
   int aCycles = aResourceMgr->integerValue("VISU", "sweeping_number_cycles", 1);
   int aSteps  = aResourceMgr->integerValue("VISU", "sweeping_number_steps", 40);
 
+  int aMode = aResourceMgr->integerValue("VISU", "sweeping_modes", 0);
+
+  int is2Pi = aResourceMgr->integerValue("VISU", "sweeping_is2PI", 0);
+
   // Sweep
   QApplication::setOverrideCursor(Qt::waitCursor);
+
   for (int j = 0; j < aCycles; j++) {
     for (int i = 0; i <= aSteps; i++) {
       try {
-        float aPercents = float(i)/aSteps;
+        float aPercents;
+        if( aMode == 1 ){  //if selected Periodic mode of sweeping
+         float aT = ( is2Pi == 1 ? -PI + 2. * PI * float(i)/aSteps : PI * float(i)/aSteps );
+          //This is necessary in order for animation to retrun to the initial picture
+          aPercents = (1.+sin( aT - PI/2. ))/2.;
+        }
+        else //if selected Linear mode of sweeping
+          aPercents = float(i)/aSteps;
         aPrsObject->SetMapScale(aPercents);
         aPrsObject->UpdateActor(aActor);
         vw->getRenderWindow()->Render();
@@ -3026,6 +3038,16 @@ void VisuGUI::createPreferences()
   // group: "Sweeping preferences"
   int sweepGr = addPreference( tr( "VISU_SWEEPING_PREF" ), srangeTab );
   setPreferenceProperty( sweepGr, "columns", 1 );
+  
+  int modeSw = addPreference( tr( "VISU_SWEEPING_MODES" ), sweepGr, LightApp_Preferences::Selector, "VISU", "sweeping_modes" );
+  QStringList sweep_modes;
+  sweep_modes.append( tr( "VISU_LINEAR_SWEEP" ) );
+  sweep_modes.append( tr( "VISU_U_SWEEP" ) );
+  indices.clear();
+  indices.append( 0 );
+  indices.append( 1 );
+  setPreferenceProperty( modeSw, "strings", sweep_modes );
+  setPreferenceProperty( modeSw, "indexes", indices );
 
   int timestep   = addPreference( tr( "VISU_TIME_STEP" ), sweepGr,
                                   LightApp_Preferences::DblSpin, "VISU", "sweeping_time_step" );
@@ -3033,11 +3055,21 @@ void VisuGUI::createPreferences()
                                   LightApp_Preferences::IntSpin, "VISU", "sweeping_number_cycles" );
   int nbsteps    = addPreference( tr( "VISU_NB_STEPS" ),  sweepGr,
                                   LightApp_Preferences::IntSpin, "VISU", "sweeping_number_steps" );
+  int rangeSw = addPreference( tr( "VISU_IS2PI" ), sweepGr, LightApp_Preferences::Selector, "VISU", "sweeping_is2PI" );
+  QStringList ranges;
+  ranges.append( tr( "PERIOD_PI" ) );
+  ranges.append( tr( "PERIOD_2PI" ) );
+  indices.clear();
+  indices.append( 0 );
+  indices.append( 1 );
+  setPreferenceProperty( rangeSw, "strings", ranges );
+  setPreferenceProperty( rangeSw, "indexes", indices );
+
   setPreferenceProperty( timestep, "min",  0.1 );
   setPreferenceProperty( timestep, "step", 0.1 );
   setPreferenceProperty( timestep, "max",  1000 );
   setPreferenceProperty( nbcycles, "max",  100  );
-  setPreferenceProperty( nbsteps,  "max",  200  );
+  setPreferenceProperty( nbsteps,  "max",  200  );  
 
   // group: "MED files import"
   int importGr = addPreference( tr( "MED files import" ), srangeTab );