]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
1. To introduce new intermediate level for ScalarMap interface hierarchy - ColoredPrs3d.
authorapo <apo@opencascade.com>
Fri, 30 Sep 2005 13:33:08 +0000 (13:33 +0000)
committerapo <apo@opencascade.com>
Fri, 30 Sep 2005 13:33:08 +0000 (13:33 +0000)
2. Now GaussPoints interface inherits from ColoredPrs3d

20 files changed:
idl/VISU_Gen.idl
src/OBJECT/VISU_GaussPtsAct.cxx
src/OBJECT/VISU_GaussPtsAct.h
src/VISUGUI/VisuGUI_GaussPointsDlg.cxx
src/VISUGUI/VisuGUI_GaussPointsDlg.h
src/VISU_I/Makefile.in
src/VISU_I/VISU_ColoredPrs3d_i.cc [new file with mode: 0644]
src/VISU_I/VISU_ColoredPrs3d_i.hh [new file with mode: 0644]
src/VISU_I/VISU_CutLines_i.cc
src/VISU_I/VISU_CutPlanes_i.cc
src/VISU_I/VISU_DeformedShape_i.cc
src/VISU_I/VISU_GaussPoints_i.cc
src/VISU_I/VISU_GaussPoints_i.hh
src/VISU_I/VISU_IsoSurfaces_i.cc
src/VISU_I/VISU_Plot3D_i.cc
src/VISU_I/VISU_Prs3d_i.cc
src/VISU_I/VISU_ScalarMap_i.cc
src/VISU_I/VISU_ScalarMap_i.hh
src/VISU_I/VISU_StreamLines_i.cc
src/VISU_I/VISU_Vectors_i.cc

index 46b782033f5cc1daf8f408b1cb0c4dcfd2364cac..c2f9b0472a9c8efb9ca78381b77f8fa416b90f2f 100644 (file)
@@ -365,8 +365,9 @@ module VISU {
     PresentationType GetPresentationType();
   };
 
+
   //-------------------------------------------------------
-  /*! \brief Interface of the %Scalar Map
+  /*! \brief Basic Interface for the %Colored 3D Presentations
    *
    * This interface is responsable for coloring of 3D field presentations
    * according the scalar values applied to different cells.
@@ -374,7 +375,7 @@ module VISU {
    * bar is displayed along with each colored field presentation and serves for
    * consulting the correspondance between colors and data values.
    */
-  interface ScalarMap : Prs3d {
+  interface ColoredPrd3d : Prs3d {
     /*! Sets the method of coloring of the elements composing a 3D presentation.
      */
     void SetScalarMode(in long theScalarMode);
@@ -383,36 +384,8 @@ module VISU {
      */
     long GetScalarMode();
 
-    /*!
-     * Sets the type of scaling of the values reflected by the scalar bar.
-     * \param theScaling The value of this parameter is taken from the <VAR>Scaling</VAR> enumeration.
-     */
-    void SetScaling(in Scaling theScaling);
-
-    /*!
-     * Gets the type of scaling of the values reflected by this presentation.
-     */
-    Scaling GetScaling();
-
-    /*!
-     * Sets scalar range - min and max boundaries of the scalar bar.
-     * \param theMin  Min boundary of the scalar bar.
-     * \param theMax  Max boundary of the scalar bar.
-     */
-    void SetRange(in double theMin, in double theMax);
-
-    /*!
-     * Gets the min boundary of the scalar bar.
-     */
-    double GetMin();
-
-    /*!
-     * Gets the max boundary of the scalar bar.
-     */
-    double GetMax();
-
     /*! %Orientation of the scalar bar. */
-    enum Orientation {
+    enum ScalarBarOrientation {
       HORIZONTAL, /*!< Horizontal orientation of the scalar bar.*/
       VERTICAL    /*!< Vertical orientation of the scalar bar.*/
     };
@@ -422,12 +395,12 @@ module VISU {
      * \param theOrientation This parameter defines the orientation of the scalar bar.
      *                       It is taken from the <VAR>Orientaton</VAR> enumeration.
      */
-    void SetBarOrientation(in Orientation theOrientation);
+    void SetScalarBarOrientation(in ScalarBarOrientation theOrientation);
 
     /*!
      * Gets the type of orientation of the scalar bar.
      */
-    Orientation GetBarOrientation();
+    ScalarBarOrientation GetScalarBarOrientation();
 
     /*! \brief Position of the scalar bar.
      *
@@ -506,13 +479,71 @@ module VISU {
     string GetTitle();
   };
 
+
+  //-------------------------------------------------------
+  /*! \brief Interface of the %Scalar Map
+   *
+   * This interface is responsable for coloring of 3D field presentations
+   * according the scalar values applied to different cells.
+   * As well it contains presentation parameters of the scalar bar. The scalar
+   * bar is displayed along with each colored field presentation and serves for
+   * consulting the correspondance between colors and data values.
+   */
+  interface ScalarMap : ColoredPrd3d {
+    /*!
+     * Sets the type of scaling of the values reflected by the scalar bar.
+     * \param theScaling The value of this parameter is taken from the <VAR>Scaling</VAR> enumeration.
+     */
+    void SetScaling(in Scaling theScaling);
+
+    /*!
+     * Gets the type of scaling of the values reflected by this presentation.
+     */
+    Scaling GetScaling();
+
+    /*!
+     * Sets scalar range - min and max boundaries of the scalar bar.
+     * \param theMin  Min boundary of the scalar bar.
+     * \param theMax  Max boundary of the scalar bar.
+     */
+    void SetRange(in double theMin, in double theMax);
+
+    /*!
+     * Gets the min boundary of the scalar bar.
+     */
+    double GetMin();
+
+    /*!
+     * Gets the max boundary of the scalar bar.
+     */
+    double GetMax();
+
+    /*! %Orientation of the scalar bar (to provide backward compatibility). */
+    enum Orientation {
+      HORIZONTAL, /*!< Horizontal orientation of the scalar bar.*/
+      VERTICAL    /*!< Vertical orientation of the scalar bar.*/
+    };
+
+    /*!
+     * Sets the type of orientation of the scalar bar (to provide backward compatibility).
+     * \param theOrientation This parameter defines the orientation of the scalar bar.
+     *                       It is taken from the <VAR>Orientaton</VAR> enumeration.
+     */
+    void SetBarOrientation(in Orientation theOrientation);
+
+    /*!
+     * Gets the type of orientation of the scalar bar (to provide backward compatibility).
+     */
+    Orientation GetBarOrientation();
+  };
+
   //-------------------------------------------------------
   /*! \brief Gauss Points presentation interface
    *
    * Presentation parameters of the Gauss Points presentation.
    */
   //-------------------------------------------------------
-  interface GaussPoints : ScalarMap {
+  interface GaussPoints : ColoredPrd3d {
   };
 
   /*! \brief Deformed shape presentation interface
index 3fa5a171a527c47505b7bd74e303e6053f47c1e0..ed2dcd92757c812430ebe06b89431362c98e6c27 100644 (file)
@@ -119,7 +119,9 @@ VISU_GaussPtsAct
   mySphereSourceSelected(vtkSphereSource::New()),
   mySphereActorSelected(vtkActor::New()),
   myCellSource(vtkUnstructuredGrid::New()),
-  myCellActor(vtkActor::New())
+  myCellActor(vtkActor::New()),
+  myScalarBarCtrl(VISU_ScalarBarCtrl::New()),
+  myBarVisibility(true)
 {
   if(MYDEBUG) MESSAGE("VISU_GaussPtsAct::VISU_GaussPtsAct - this = "<<this);
   
@@ -179,15 +181,13 @@ VISU_GaussPtsAct
   myCellActor->GetProperty()->SetAmbient(1.0);
   myCellActor->GetProperty()->SetDiffuse(0.0);
   myCellActor->GetProperty()->SetRepresentationToWireframe(); 
-  mySBCtrl=VISU_ScalarBarCtrl::New();
-  mySBCtrl->Delete();
-  mySBCtrl->SetMode(0);
-  mySBCtrl->SetRangeGlobal(0.,10.);
-  mySBCtrl->SetOrientationToHorizontal();
-  mySBCtrl->GetScalarBarActor(0)->SetTitle("GLB"); 
-  mySBCtrl->GetScalarBarActor(1)->SetTitle("LOC"); 
-
-  myScalarBar->SetVisibility(0);
+
+  myScalarBarCtrl->Delete();
+  myScalarBarCtrl->SetMode(0);
+  myScalarBarCtrl->SetRangeGlobal(0.,10.);
+  myScalarBarCtrl->SetOrientationToHorizontal();
+  myScalarBarCtrl->GetScalarBarActor(0)->SetTitle("GLB"); 
+  myScalarBarCtrl->GetScalarBarActor(1)->SetTitle("LOC"); 
 }
 
 VISU_GaussPtsAct
@@ -278,7 +278,7 @@ VISU_GaussPtsAct
   theRenderer->AddActor(myCellActor.GetPointer());
 
   myCursorPyramid->AddToRender(theRenderer);
-  mySBCtrl->AddToRender(theRenderer);
+  myScalarBarCtrl->AddToRender(theRenderer);
 }
 
 void 
@@ -297,7 +297,7 @@ VISU_GaussPtsAct
   theRenderer->RemoveActor(myCellActor.GetPointer());
   
   myCursorPyramid->RemoveFromRender(theRenderer);
-  mySBCtrl->RemoveFromRender(theRenderer);
+  myScalarBarCtrl->RemoveFromRender(theRenderer);
 }
 
 void 
@@ -418,6 +418,30 @@ VISU_GaussPtsAct
 ::SetVisibility(int theMode)
 {
   Superclass::SetVisibility(theMode);
+  myScalarBarCtrl->SetBarVisibility(theMode && myBarVisibility);
+}
+
+//----------------------------------------------------------------------------
+void
+VISU_GaussPtsAct
+::SetBarVisibility(bool theMode)
+{
+  myBarVisibility = theMode;
+  myScalarBarCtrl->SetBarVisibility(theMode);
+}
+
+bool
+VISU_GaussPtsAct
+::GetBarVisibility()
+{ 
+  return myBarVisibility;
+}
+
+VISU_ScalarBarCtrl* 
+VISU_GaussPtsAct
+::GetScalarBarCtrl()
+{
+  return myScalarBarCtrl.GetPointer();
 }
 
 //----------------------------------------------------------------------------
@@ -813,26 +837,6 @@ VISU_GaussPtsAct
   return bRet;
 }
 
-//==================================================================
-// function : SetBarVisibility
-// purpose  :
-//==================================================================
-void VISU_GaussPtsAct::SetBarVisibility(bool theMode)
-{
-  myBarVisibility = theMode;
-  mySBCtrl->SetBarVisibility(myBarVisibility);
-  //VISU_ScalarMapAct::SetBarVisibility(theMode);
-}
-
-//==================================================================
-// function : GetScalarBarCtrl
-// purpose  :
-//==================================================================
-VISU_ScalarBarCtrl* VISU_GaussPtsAct::GetScalarBarCtrl()
-{
-  return mySBCtrl.GetPointer();
-}
-
 //==============================================================================
 vtkStandardNewMacro(VISU_GaussPtsAct1);
 
index 85e10a6e2e7863ec9ba0e7ce4d4e56d744af1b1d..095447f3c1fbfeef2d325adc86a603fa12a10192 100644 (file)
@@ -29,7 +29,7 @@
 #ifndef VISU_GaussPtsAct_HeaderFile
 #define VISU_GaussPtsAct_HeaderFile
 
-#include "VISU_ScalarMapAct.h"
+#include "VISU_Actor.h"
 #include "VISU_GaussPtsActorFactory.h"
 
 #include <vtkSmartPointer.h>
@@ -58,6 +58,8 @@ class vtkInteractorObserver;
 class vtkCallbackCommand;
 class VISU_ScalarBarCtrl;
 
+
+//============================================================================
 class VTKOCC_EXPORT VISU_OutsideCursorSettings : public vtkObject
 {
  public:
@@ -98,11 +100,12 @@ private:
   float               Color[3];
 };
 
-//----------------------------------------------------------------------------
-class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_ScalarMapAct
+
+//============================================================================
+class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_Actor
 {
  public:
-  vtkTypeMacro(VISU_GaussPtsAct,VISU_ScalarMapAct);
+  vtkTypeMacro(VISU_GaussPtsAct,VISU_Actor);
   typedef vtkSmartPointer<VISU_GaussPtsDeviceActor> PDeviceActor;
 
   static
@@ -175,6 +178,15 @@ class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_ScalarMapAct
   void
   SetVisibility(int theMode);
 
+  VISU_ScalarBarCtrl* 
+  GetScalarBarCtrl();
+
+  void
+  SetBarVisibility(bool theMode);
+
+  bool
+  GetBarVisibility();
+
   virtual
   void
   SetImplicitFunctionWidget(VISU_ImplicitFunctionWidget* theWidget);
@@ -202,9 +214,6 @@ class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_ScalarMapAct
            SVTK_SelectionEvent* theSelectionEvent,
            bool theIsHighlight);
 
-  virtual void SetBarVisibility(bool theMode);
-  VISU_ScalarBarCtrl* GetScalarBarCtrl();
-
  protected:
   //----------------------------------------------------------------------------
   VISU_GaussPtsAct();
@@ -257,7 +266,9 @@ class VTKOCC_EXPORT VISU_GaussPtsAct : public VISU_ScalarMapAct
 
   vtkSmartPointer<vtkUnstructuredGrid> myCellSource;
   vtkSmartPointer<vtkActor> myCellActor;
-  vtkSmartPointer<VISU_ScalarBarCtrl> mySBCtrl;
+
+  bool myBarVisibility;
+  vtkSmartPointer<VISU_ScalarBarCtrl> myScalarBarCtrl;
 
   vtkSmartPointer<VISU_OutsideCursorSettings> myOutsideCursorSettings;
 };
index 88095ca04c93d305480e6585738926b96c7de2a5..d1354b68311a47f00995993b4eb30a08a95da2a7 100644 (file)
@@ -59,7 +59,7 @@ VisuGUI_GaussScalarBarPane::VisuGUI_GaussScalarBarPane (QWidget * parent, bool S
 {
   myVerX = 0.01;  myVerY = 0.10;  myVerW = 0.10;  myVerH = 0.80;
   myHorX = 0.20;  myHorY = 0.01;  myHorW = 0.60;  myHorH = 0.12;
-  Imin = 0.0; Imax = 0.0; /*Fmin = 0.0; Fmax = 0.0;*/ Rmin = 0.0; Rmax = 0.0;
+  Imin = 0.0; Imax = 0.0;
   myRangeMode = -1;
 
   setSpacing(6);
@@ -500,7 +500,7 @@ void VisuGUI_GaussScalarBarPane::initFromPrsObject(VISU::GaussPoints_i* thePrs)
                 thePrs->GetPosY(),
                 thePrs->GetWidth(),
                 thePrs->GetHeight(),
-                thePrs->GetBarOrientation());
+                thePrs->GetScalarBarOrientation());
 
   bool bicolor = thePrs->GetGaussPointsPL()->GetBicolor();
   BicolorButton->setChecked( bicolor );
@@ -510,9 +510,6 @@ void VisuGUI_GaussScalarBarPane::initFromPrsObject(VISU::GaussPoints_i* thePrs)
   LabelLabel->setEnabled( !bicolor );
   LabelSpin->setEnabled( !bicolor );
 
-  float aRange[2];
-  thePrs->GetGaussPointsPL()->GetSourceRange(aRange);
-  Rmin = aRange[0]; Rmax = aRange[1];
   setScalarBarData( thePrs->GetNbColors(), thePrs->GetLabels() );
 
   // Update myModeCombo
@@ -573,10 +570,9 @@ int VisuGUI_GaussScalarBarPane::storeToPrsObject(VISU::GaussPoints_i* thePrs) {
   thePrs->SetScalarMode(myModeCombo->currentItem());
   thePrs->SetPosition(XSpin->value(), YSpin->value());
   thePrs->SetSize(WidthSpin->value(), HeightSpin->value());
-  thePrs->SetBarOrientation((RBvert->isChecked())? VISU::ScalarMap::VERTICAL : VISU::ScalarMap::HORIZONTAL);
+  thePrs->SetScalarBarOrientation((RBvert->isChecked())? VISU::ColoredPrd3d::VERTICAL : VISU::ColoredPrd3d::HORIZONTAL);
   thePrs->SetIsActiveLocalScalarBar(myRBLocal->isChecked());
   thePrs->SetIsDispGlobalScalarBar(myCBDisplayed->isChecked());
-  thePrs->SetSourceRange();
   thePrs->SetNbColors(ColorSpin->value());
   thePrs->SetLabels(LabelSpin->value());
 
index bd8faff9952c77fbaebce3994bdcc9ee2e6950d0..d963fc11cdc22f3f1248e4a07d7f1a8d4e8f41cc 100644 (file)
@@ -105,7 +105,7 @@ class VisuGUI_GaussScalarBarPane : public QVBox
   QRadioButton*   myRBLocal;
   QCheckBox*      myCBDisplayed;
 
-  double          Imin,   Imax,  /* Fmin,   Fmax,*/   Rmin,   Rmax;
+  double          Imin,   Imax;
   double          myHorX, myHorY, myHorW, myHorH;
   double          myVerX, myVerY, myVerW, myVerH;
   int             myRangeMode;
index af558c6fab0246d6aaf22a440b423a962b9f7eef..4ce33ec50902646202a331b4d80431c5a10079d5 100644 (file)
@@ -20,13 +20,11 @@ LIB = libVISUEngineImpl.la
 
 LIB_SRC = \
        VISUConfig.cc \
-       VISU_Gen_i.cc \
-       VISU_Result_i.cc \
        VISU_PrsObject_i.cc \
-       VISU_Table_i.cc \
        VISU_Prs3d_i.cc \
-       VISU_Mesh_i.cc \
+       VISU_ColoredPrs3d_i.cc \
        VISU_ScalarMap_i.cc \
+       VISU_GaussPoints_i.cc \
        VISU_IsoSurfaces_i.cc \
        VISU_DeformedShape_i.cc \
        VISU_Plot3D_i.cc \
@@ -34,7 +32,10 @@ LIB_SRC = \
        VISU_CutLines_i.cc \
        VISU_Vectors_i.cc \
        VISU_StreamLines_i.cc \
-       VISU_GaussPoints_i.cc \
+       VISU_Mesh_i.cc \
+       VISU_Table_i.cc \
+       VISU_Gen_i.cc \
+       VISU_Result_i.cc \
        VISU_ViewManager_i.cc \
        VISU_View_i.cc \
        VISU_TimeAnimation.cxx \
@@ -71,6 +72,7 @@ EXPORT_HEADERS = \
        VISU_Table_i.hh \
        VISU_Prs3d_i.hh \
        VISU_Mesh_i.hh \
+       VISU_ColoredPrs3d_i.hh \
        VISU_ScalarMap_i.hh \
        VISU_IsoSurfaces_i.hh \
        VISU_DeformedShape_i.hh \
diff --git a/src/VISU_I/VISU_ColoredPrs3d_i.cc b/src/VISU_I/VISU_ColoredPrs3d_i.cc
new file mode 100644 (file)
index 0000000..154bec6
--- /dev/null
@@ -0,0 +1,690 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//  File   : VISU_PrsObject_i.cxx
+//  Author : Alexey PETROV
+//  Module : VISU
+
+#include "VISU_ColoredPrs3d_i.hh"
+
+#include "VISU_ScalarMapPL.hxx"
+#include "VISU_Result_i.hh"
+#include "VISU_Convertor.hxx"
+
+#include "SUIT_ResourceMgr.h"
+
+#include <vtkMapper.h>
+
+using namespace VISU;
+using namespace std;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+static int INCMEMORY = 4;
+
+
+//============================================================================
+VISU::ColoredPrs3d_i::
+ColoredPrs3d_i(Result_i* theResult,
+              bool theAddToStudy) :
+  PrsObject_i(theResult->GetStudyDocument()),
+  Prs3d_i(theResult,theAddToStudy),
+  myScalarMapPL(NULL),
+  myIsFixedRange(false)
+{}
+
+VISU::ColoredPrs3d_i::
+ColoredPrs3d_i(Result_i* theResult,
+              SALOMEDS::SObject_ptr theSObject) :
+  PrsObject_i(theResult->GetStudyDocument()),
+  Prs3d_i(theResult,theSObject),
+  myScalarMapPL(NULL),
+  myIsFixedRange(false)
+{}
+
+VISU::ColoredPrs3d_i
+::~ColoredPrs3d_i()
+{}
+
+void 
+VISU::ColoredPrs3d_i
+::RemoveFromStudy()
+{
+  TSuperClass::RemoveFromStudy();
+  VISU::RemoveFromStudy(mySObject,false);
+}
+
+void
+VISU::ColoredPrs3d_i
+::SameAs(const ColoredPrs3d_i* theOrigin)
+{
+  DoHook();
+
+  TSuperClass::SameAs(theOrigin);
+
+  ColoredPrs3d_i* anOrigin = const_cast<ColoredPrs3d_i*>(theOrigin);
+  myField = anOrigin->GetField();
+  myMeshName = myField->myMeshName;
+  myEntity = myField->myEntity;
+  myIteration = anOrigin->GetIteration();
+  myFieldName = anOrigin->GetFieldName();
+
+  SetScalarMode(anOrigin->GetScalarMode());
+  SetNbColors(anOrigin->GetNbColors());
+  SetScalarBarOrientation(anOrigin->GetScalarBarOrientation());
+
+  SetPosition(anOrigin->GetPosX(), anOrigin->GetPosY());
+  SetSize(anOrigin->GetWidth(), anOrigin->GetHeight());
+  SetLabels(anOrigin->GetLabels());
+  SetTitle(anOrigin->GetTitle());
+
+  SetBoldTitle(anOrigin->IsBoldTitle());
+  SetItalicTitle(anOrigin->IsItalicTitle());
+  SetShadowTitle(anOrigin->IsShadowTitle());
+  SetTitFontType(anOrigin->GetTitFontType());
+  float r,g,b;
+  anOrigin->GetTitleColor(&r,&g,&b);
+  SetTitleColor(r,g,b);
+
+  SetBoldLabel(anOrigin->IsBoldLabel());
+  SetItalicLabel(anOrigin->IsItalicLabel());
+  SetShadowLabel(anOrigin->IsShadowLabel());
+  SetLblFontType(anOrigin->GetLblFontType());
+  anOrigin->GetLabelColor(&r,&g,&b);
+  SetLabelColor(r,g,b);
+}
+
+void
+VISU::ColoredPrs3d_i
+::SameAsParams(const ColoredPrs3d_i* theOrigin)
+{
+  int anIteration = GetIteration();
+  SameAs(theOrigin);
+  myIteration = anIteration;
+
+  Build(-1);
+  Update();
+}
+
+
+//----------------------------------------------------------------------------
+CORBA::Long 
+VISU::ColoredPrs3d_i
+::GetScalarMode()
+{
+  return myScalarMapPL->GetScalarMode();
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetScalarMode(CORBA::Long theScalarMode) 
+{
+  myScalarMapPL->SetScalarMode(theScalarMode);
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetNbColors(CORBA::Long theNbColors)
+{
+  myScalarMapPL->SetNbColors(theNbColors);
+}
+
+CORBA::Long 
+VISU::ColoredPrs3d_i
+::GetNbColors()
+{
+  return myScalarMapPL->GetNbColors();
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetScalarBarOrientation(VISU::ColoredPrd3d::ScalarBarOrientation theOrientation)
+{
+  myOrientation = theOrientation;
+}
+
+VISU::ColoredPrd3d::ScalarBarOrientation 
+VISU::ColoredPrs3d_i
+::GetScalarBarOrientation() 
+{
+  return myOrientation;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetPosition(CORBA::Double X, CORBA::Double Y) 
+{ 
+  myPosition[0] = X; 
+  myPosition[1] = Y;
+}
+
+CORBA::Double
+VISU::ColoredPrs3d_i
+::GetPosX() 
+{
+  return myPosition[0];
+}
+
+CORBA::Double
+VISU::ColoredPrs3d_i
+::GetPosY() 
+{ 
+  return myPosition[1];
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetSize(CORBA::Double theWidth, CORBA::Double theHeight) 
+{
+  myWidth = theWidth; 
+  myHeight = theHeight;
+}
+
+CORBA::Double
+VISU::ColoredPrs3d_i
+::GetWidth() 
+{
+  return myWidth;
+}
+
+CORBA::Double
+VISU::ColoredPrs3d_i
+::GetHeight() 
+{ 
+  return myHeight;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetLabels(CORBA::Long theNbLabels)
+{
+  myNumberOfLabels = theNbLabels;
+}
+
+CORBA::Long
+VISU::ColoredPrs3d_i
+::GetLabels() 
+{ 
+  return myNumberOfLabels;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetTitle(const char* theName) 
+{
+  myTitle = theName;
+}
+
+char* 
+VISU::ColoredPrs3d_i
+::GetTitle() 
+{ 
+  return CORBA::string_dup(myTitle.c_str());
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsBoldTitle() 
+{ 
+  return myIsBoldTitle;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetBoldTitle(bool isBold)
+{
+  myIsBoldTitle = isBold;
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsItalicTitle() 
+{ 
+  return myIsItalicTitle;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetItalicTitle(bool isItalic)
+{ 
+  myIsItalicTitle = isItalic;
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsShadowTitle() 
+{ 
+  return myIsShadowTitle;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetShadowTitle(bool isShadow)
+{ 
+  myIsShadowTitle = isShadow;
+}
+
+int
+VISU::ColoredPrs3d_i
+::GetTitFontType()
+{
+  return myTitFontType;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetTitFontType(int theType)
+{
+  myTitFontType = theType;
+}
+
+void
+VISU::ColoredPrs3d_i
+::GetTitleColor(float* theR, float* theG, float* theB)
+{
+  *theR = myTitleColor[0]; 
+  *theG = myTitleColor[1]; 
+  *theB = myTitleColor[2];
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetTitleColor(float theR, float theG, float theB)
+{
+  myTitleColor[0] = theR; 
+  myTitleColor[1] = theG; 
+  myTitleColor[2] = theB; 
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsBoldLabel()
+{
+  return myIsBoldLabel;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetBoldLabel(bool isBold) 
+{
+  myIsBoldLabel = isBold;
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsItalicLabel() 
+{
+  return myIsItalicLabel;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetItalicLabel(bool isItalic)
+{
+  myIsItalicLabel = isItalic;
+}
+
+bool
+VISU::ColoredPrs3d_i
+::IsShadowLabel() 
+{
+  return myIsShadowLabel;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetShadowLabel(bool isShadow)
+{
+  myIsShadowLabel = isShadow;
+}
+
+int
+VISU::ColoredPrs3d_i
+::GetLblFontType()
+{
+  return myLblFontType;
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetLblFontType(int theType)
+{
+  myLblFontType = theType;
+}
+
+void
+VISU::ColoredPrs3d_i
+::GetLabelColor(float* theR, float* theG, float* theB)
+{
+  *theR = myLabelColor[0]; 
+  *theG = myLabelColor[1]; 
+  *theB = myLabelColor[2];
+}
+
+void
+VISU::ColoredPrs3d_i
+::SetLabelColor(float theR, float theG, float theB)
+{
+  myLabelColor[0] = theR; 
+  myLabelColor[1] = theG; 
+  myLabelColor[2] = theB; 
+}
+
+
+//----------------------------------------------------------------------------
+/**
+ * Creates ColoredPrs3d and initialises it from resources
+ */
+VISU::Storable* 
+VISU::ColoredPrs3d_i
+::Create(const char* theMeshName, 
+        VISU::Entity theEntity,
+        const char* theFieldName, 
+        int theIteration)
+{
+  DoHook();
+
+  SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr();
+
+  int aScalarMode = aResourceMgr->integerValue("VISU", "scalar_bar_mode", 0);
+  SetScalarMode(aScalarMode);
+
+  int aNumberOfColors = aResourceMgr->integerValue( "VISU", "scalar_bar_num_colors", 64 );
+  SetNbColors(aNumberOfColors);
+
+  // Orientation
+  int anOrientation = aResourceMgr->integerValue("VISU", "scalar_bar_orientation", 0);
+  if(anOrientation == 1)
+    myOrientation = VISU::ColoredPrd3d::HORIZONTAL;
+  else
+    myOrientation = VISU::ColoredPrd3d::VERTICAL;
+
+  // Scalar Bar origin
+  QString propertyName = QString( "scalar_bar_%1_" ).arg( anOrientation == 0 ? "vertical" : "horizontal" );
+
+  float aXorigin = (myOrientation == VISU::ColoredPrd3d::VERTICAL) ? 0.01 : 0.2;
+  aXorigin = aResourceMgr->doubleValue("VISU", propertyName + "x", aXorigin);
+  myPosition[0] = aXorigin;
+
+  float aYorigin = (myOrientation == VISU::ColoredPrd3d::VERTICAL) ? 0.1 : 0.012;
+  aYorigin = aResourceMgr->doubleValue("VISU", propertyName + "y", aYorigin);
+  myPosition[1] = aYorigin;
+
+  // Scalar Bar size
+  myWidth = (myOrientation == VISU::ColoredPrd3d::VERTICAL)? 0.1 : 0.6;
+  myWidth = aResourceMgr->doubleValue("VISU", propertyName + "width", myWidth);
+
+  myHeight = (myOrientation == VISU::ColoredPrd3d::VERTICAL)? 0.8:0.12;
+  myHeight = aResourceMgr->doubleValue("VISU", propertyName + "height", myHeight);
+
+  // Nb of Labels
+  myNumberOfLabels = aResourceMgr->integerValue( "VISU", "scalar_bar_num_labels", 5 );
+
+  // Fonts properties definition
+  myIsBoldTitle = myIsItalicTitle = myIsShadowTitle = true;
+  myTitFontType = VTK_ARIAL;
+
+  if(aResourceMgr->hasValue( "VISU", "scalar_bar_title_font" )){
+    QFont f = aResourceMgr->fontValue( "VISU", "scalar_bar_title_font" );
+    if ( f.family() == "Arial" )
+      myTitFontType = VTK_ARIAL;
+    else if ( f.family() == "Courier" )
+      myTitFontType = VTK_COURIER;
+    else if ( f.family() == "Times" )
+      myTitFontType = VTK_TIMES;
+    
+    myIsBoldTitle   = f.bold();
+    myIsItalicTitle = f.italic();
+    myIsShadowTitle =  f.underline();
+  }
+
+  QColor aTextColor = aResourceMgr->colorValue( "VISU", "scalar_bar_title_color", QColor( 255, 255, 255 ) );
+
+  myTitleColor[0] = aTextColor.red()   / 255;
+  myTitleColor[1] = aTextColor.green() / 255;
+  myTitleColor[2] = aTextColor.blue()  / 255;
+
+  myIsBoldLabel = myIsItalicLabel = myIsShadowLabel = true;
+  myLblFontType = VTK_ARIAL;
+
+  if( aResourceMgr->hasValue( "VISU", "scalar_bar_label_font" )){
+    QFont f = aResourceMgr->fontValue( "VISU", "scalar_bar_label_font" );
+    if ( f.family() == "Arial" )
+      myLblFontType = VTK_ARIAL;
+    else if ( f.family() == "Courier" )
+      myLblFontType = VTK_COURIER;
+    else if ( f.family() == "Times" )
+      myLblFontType = VTK_TIMES;
+    
+    myIsBoldLabel   = f.bold();
+    myIsItalicLabel = f.italic();
+    myIsShadowLabel =  f.underline();
+  }
+
+  QColor aLabelColor = aResourceMgr->colorValue( "VISU", "scalar_bar_label_color", QColor( 255, 255, 255 ) );
+
+  myLabelColor[0] = aLabelColor.red()   / 255;
+  myLabelColor[1] = aLabelColor.green() / 255;
+  myLabelColor[2] = aLabelColor.blue()  / 255;
+
+  myMeshName = theMeshName;
+  myEntity = (VISU::TEntity)theEntity;
+  myFieldName =theFieldName;
+  myIteration = theIteration;
+  
+  return Build(false);
+}
+
+VISU::Storable* 
+VISU::ColoredPrs3d_i
+::Restore(const Storable::TRestoringMap& theMap)
+{
+  DoHook();
+
+  TSuperClass::Restore(theMap);
+
+  SetScalarMode(VISU::Storable::FindValue(theMap,"myScalarMode").toInt());
+  SetNbColors(VISU::Storable::FindValue(theMap,"myNumberOfColors").toInt());
+  SetScalarBarOrientation((VISU::ColoredPrd3d::ScalarBarOrientation)VISU::Storable::FindValue(theMap,"myOrientation").toInt());
+  
+  myMeshName = VISU::Storable::FindValue(theMap,"myMeshName").latin1();
+  myEntity = (VISU::TEntity)VISU::Storable::FindValue(theMap,"myEntity").toInt();
+  myFieldName = VISU::Storable::FindValue(theMap,"myFieldName").latin1();
+  myIteration = VISU::Storable::FindValue(theMap,"myIteration").toInt();
+
+  myTitle = VISU::Storable::FindValue(theMap,"myTitle").latin1();
+  myNumberOfLabels = VISU::Storable::FindValue(theMap,"myNumberOfLabels").toInt();
+  myPosition[0] = VISU::Storable::FindValue(theMap,"myPosition[0]").toDouble();
+  myPosition[1] = VISU::Storable::FindValue(theMap,"myPosition[1]").toDouble();
+  myWidth = VISU::Storable::FindValue(theMap,"myWidth").toDouble();
+  myHeight = VISU::Storable::FindValue(theMap,"myHeight").toDouble();
+
+  myTitFontType = VISU::Storable::FindValue(theMap,"myTitFontType").toInt();
+  myIsBoldTitle = VISU::Storable::FindValue(theMap,"myIsBoldTitle").toInt();
+  myIsItalicTitle = VISU::Storable::FindValue(theMap,"myIsItalicTitle").toInt();
+  myIsShadowTitle = VISU::Storable::FindValue(theMap,"myIsShadowTitle").toInt();
+  myTitleColor[0] = VISU::Storable::FindValue(theMap,"myTitleColor[0]").toFloat();
+  myTitleColor[1] = VISU::Storable::FindValue(theMap,"myTitleColor[1]").toFloat();
+  myTitleColor[2] = VISU::Storable::FindValue(theMap,"myTitleColor[2]").toFloat();
+
+  myLblFontType = VISU::Storable::FindValue(theMap,"myLblFontType").toInt();
+  myIsBoldLabel = VISU::Storable::FindValue(theMap,"myIsBoldLabel").toInt();
+  myIsItalicLabel = VISU::Storable::FindValue(theMap,"myIsItalicLabel").toInt();
+  myIsShadowLabel = VISU::Storable::FindValue(theMap,"myIsShadowLabel").toInt();
+  myLabelColor[0] = VISU::Storable::FindValue(theMap,"myLabelColor[0]").toFloat();
+  myLabelColor[1] = VISU::Storable::FindValue(theMap,"myLabelColor[1]").toFloat();
+  myLabelColor[2] = VISU::Storable::FindValue(theMap,"myLabelColor[2]").toFloat();
+
+  myAddToStudy = false; //SRN Added 21/06/2003 SAL2983: to avoid addition of the new ScalarMap to study.
+
+  return Build(true);
+}
+
+void 
+VISU::ColoredPrs3d_i
+::ToStream(std::ostringstream& theStr)
+{
+  TSuperClass::ToStream(theStr);
+
+  Storable::DataToStream( theStr, "myScalarMode",     int(GetScalarMode()) );
+  Storable::DataToStream( theStr, "myNumberOfColors", int(GetNbColors()) );
+  Storable::DataToStream( theStr, "myOrientation",    myOrientation );
+
+  Storable::DataToStream( theStr, "myMeshName",       myMeshName.c_str() );
+  Storable::DataToStream( theStr, "myEntity",         myEntity );
+  Storable::DataToStream( theStr, "myFieldName",      myFieldName.c_str() );
+  Storable::DataToStream( theStr, "myIteration",      myIteration );
+
+  Storable::DataToStream( theStr, "myTitle",          myTitle.c_str() );
+  Storable::DataToStream( theStr, "myNumberOfLabels", myNumberOfLabels );
+  Storable::DataToStream( theStr, "myPosition[0]",    myPosition[0] );
+  Storable::DataToStream( theStr, "myPosition[1]",    myPosition[1] );
+  Storable::DataToStream( theStr, "myWidth",          myWidth );
+  Storable::DataToStream( theStr, "myHeight",         myHeight );
+
+  Storable::DataToStream( theStr, "myTitFontType",    myTitFontType );
+  Storable::DataToStream( theStr, "myIsBoldTitle",    myIsBoldTitle );
+  Storable::DataToStream( theStr, "myIsItalicTitle",  myIsItalicTitle );
+  Storable::DataToStream( theStr, "myIsShadowTitle",  myIsShadowTitle );
+  Storable::DataToStream( theStr, "myTitleColor[0]",  myTitleColor[0] );
+  Storable::DataToStream( theStr, "myTitleColor[1]",  myTitleColor[1] );
+  Storable::DataToStream( theStr, "myTitleColor[2]",  myTitleColor[2] );
+
+  Storable::DataToStream( theStr, "myLblFontType",    myLblFontType );
+  Storable::DataToStream( theStr, "myIsBoldLabel",    myIsBoldLabel );
+  Storable::DataToStream( theStr, "myIsItalicLabel",  myIsItalicLabel );
+  Storable::DataToStream( theStr, "myIsShadowLabel",  myIsShadowLabel );
+  Storable::DataToStream( theStr, "myLabelColor[0]",  myLabelColor[0] );
+  Storable::DataToStream( theStr, "myLabelColor[1]",  myLabelColor[1] );
+  Storable::DataToStream( theStr, "myLabelColor[2]",  myLabelColor[2] );
+}
+
+
+//----------------------------------------------------------------------------
+void
+VISU::ColoredPrs3d_i
+::DoHook()
+{
+  if(MYDEBUG) MESSAGE("ColoredPrs3d_i::DoHook() - "<<myPipeLine);
+  if(!myPipeLine){
+    myPipeLine = VISU_ScalarMapPL::New();
+    myPipeLine->GetMapper()->SetScalarVisibility(1);
+  }
+  myScalarMapPL = dynamic_cast<VISU_ScalarMapPL*>(myPipeLine);
+}
+
+//----------------------------------------------------------------------------
+VISU::Storable* 
+VISU::ColoredPrs3d_i
+::Build(int theRestoring)
+{
+  if(MYDEBUG)
+    MESSAGE("ColoredPrs3d_i::Build - "<<myFieldName<<"; theRestoring = "<<theRestoring);
+  SALOMEDS::StudyBuilder_var aStudyBuilder = myStudy->NewBuilder();
+  if(myAddToStudy) 
+    aStudyBuilder->NewCommand();  // There is a transaction
+  try{
+    DoSetInput(myResult);
+    QString aComment;
+    myName = "NoName";
+    if(theRestoring <= 0){
+      if(theRestoring == 0) myScalarMapPL->Init();
+      if(!myIsFixedRange) myScalarMapPL->SetSourceRange();
+      const VISU::TValField& aValField = myField->myValField;
+      const VISU::PValForTime aValForTime = aValField.find(myIteration)->second;
+      aComment.sprintf("%s %s",myFieldName.c_str(),VISU_Convertor::GenerateName(aValForTime->myTime).c_str());
+      if (theRestoring == 0) myTitle = aComment.simplifyWhiteSpace().latin1();
+    }
+    if(myAddToStudy){
+      myName = GenerateName().latin1();
+      aComment.sprintf("myComment=TIMESTAMP;myType=%d;myMeshName=%s;myEntityId=%d;myFieldName=%s;myTimeStampId=%d;myNumComponent=%d",
+                      VISU::TTIMESTAMP,myMeshName.c_str(),myEntity,myFieldName.c_str(),myIteration,myField->myNbComp);
+      string aResultEntry = myResult->GetEntry();
+      string aRefFatherEntry = myResult->GetRefFatherEntry();
+      string anEntry = myResult->GetEntry(aComment.latin1());
+      if(anEntry == "") throw std::runtime_error("There is no Entry for binding the presentation !!!");
+      aComment.sprintf("myComment=%s;myMeshName=%s;myEntityId=%d;myFieldName=%s;myTimeStampId=%d;myNumComponent=%d",
+                      GetComment(),myMeshName.c_str(),myEntity,myFieldName.c_str(),myIteration,myField->myNbComp);
+      CORBA::String_var anIOR = GetID();
+      CreateAttributes(myStudy,anEntry.c_str(),aRefFatherEntry.c_str(),anIOR,myName.c_str(),"",aComment.latin1(),true);
+      mySObject = myStudy->FindObjectIOR(anIOR);
+    }
+  }catch(std::exception& exc){
+    INFOS("Follow exception was occured :\n"<<exc.what());
+    return NULL;
+  }catch(...){
+    INFOS("Unknown exception was occured!");
+    return NULL;
+  }
+  if(myAddToStudy) 
+    aStudyBuilder->CommitCommand();
+  return this;
+}
+
+
+//----------------------------------------------------------------------------
+const VISU::PField&
+VISU::ColoredPrs3d_i
+::GetField() const 
+{ 
+  return myField;
+}
+
+const std::string&
+VISU::ColoredPrs3d_i
+::GetMeshName() const 
+{ 
+  return myMeshName;
+}
+
+VISU::Entity
+VISU::ColoredPrs3d_i
+::GetEntity() const 
+{ 
+  return VISU::Entity(myEntity);
+}
+
+const std::string&
+VISU::ColoredPrs3d_i
+::GetFieldName() const 
+{ 
+  return myFieldName;
+}
+
+int
+VISU::ColoredPrs3d_i
+::GetIteration() const 
+{ 
+  return myIteration;
+}
+
+VISU_ScalarMapPL*
+VISU::ColoredPrs3d_i
+::GetScalarMapPL()
+{ 
+  return myScalarMapPL;
+}
diff --git a/src/VISU_I/VISU_ColoredPrs3d_i.hh b/src/VISU_I/VISU_ColoredPrs3d_i.hh
new file mode 100644 (file)
index 0000000..5745625
--- /dev/null
@@ -0,0 +1,296 @@
+//  VISU OBJECT : interactive object for VISU entities implementation
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+//
+//
+//  File   : VISU_PrsObject_i.hxx
+//  Author : Alexey PETROV
+//  Module : VISU
+
+#ifndef VISU_ColoredPrs3d_i_HeaderFile
+#define VISU_ColoredPrs3d_i_HeaderFile
+
+#include "VISU_Prs3d_i.hh"
+
+class VISU_ScalarMapPL;
+
+namespace VISU
+{
+  //============================================================================
+  class ColoredPrs3d_i : public virtual POA_VISU::ColoredPrd3d,
+                        public virtual Prs3d_i
+  {
+    ColoredPrs3d_i();
+    ColoredPrs3d_i(const ColoredPrs3d_i&);
+  public:
+    //----------------------------------------------------------------------------
+    typedef Prs3d_i TSuperClass;
+
+    explicit
+    ColoredPrs3d_i(Result_i* theResult,
+                  bool theAddToStudy);
+    explicit
+    ColoredPrs3d_i(Result_i* theResult,
+                  SALOMEDS::SObject_ptr theSObject);
+
+    virtual
+    ~ColoredPrs3d_i();
+
+    virtual
+    void
+    RemoveFromStudy();
+
+    //----------------------------------------------------------------------------
+    virtual
+    CORBA::Long
+    GetScalarMode();
+
+    virtual
+    void 
+    SetScalarMode(CORBA::Long theScalarMode);
+
+    virtual 
+    void 
+    SetNbColors(CORBA::Long theNbColors);
+
+    virtual
+    CORBA::Long 
+    GetNbColors();
+
+    virtual
+    void
+    SetScalarBarOrientation(VISU::ColoredPrd3d::ScalarBarOrientation theOrientation);
+
+    virtual 
+    VISU::ColoredPrd3d::ScalarBarOrientation 
+    GetScalarBarOrientation();
+
+    virtual
+    void
+    SetPosition(CORBA::Double X, CORBA::Double Y);
+
+    virtual
+    CORBA::Double
+    GetPosX();
+
+    virtual
+    CORBA::Double
+    GetPosY();
+
+    virtual 
+    void
+    SetSize(CORBA::Double theWidth, CORBA::Double theHeight);
+    
+    virtual 
+    CORBA::Double
+    GetWidth();
+
+    virtual
+    CORBA::Double
+    GetHeight();
+
+    virtual 
+    void
+    SetLabels(CORBA::Long theNbLabels);
+
+    virtual
+    CORBA::Long
+    GetLabels();
+
+    virtual
+    void
+    SetTitle(const char* theName);
+
+    virtual
+    char* 
+    GetTitle();
+
+    //----------------------------------------------------------------------------
+  protected:
+    VISU::ColoredPrd3d::ScalarBarOrientation myOrientation;
+    std::string myTitle;
+    int myNumberOfLabels;
+    float myPosition[2], myWidth, myHeight;
+
+  public:
+    //----------------------------------------------------------------------------
+    virtual
+    Storable* 
+    Create(const char* theMeshName, 
+          VISU::Entity theEntity,
+          const char* theFieldName, 
+          int theIteration);
+
+    virtual 
+    Storable* 
+    Restore(const Storable::TRestoringMap& theMap);
+
+    virtual 
+    void
+    ToStream(std::ostringstream& theStr);
+
+    virtual 
+    void
+    SameAs(const ColoredPrs3d_i* theOrigin);
+
+    /*!
+     *  \brief Works like SameAs() method, but keep myIteration value unchanged.
+     *
+     *  Is used in VISU_TimeAnimation class implementation.
+     */
+    void
+    SameAsParams(const ColoredPrs3d_i* theOrigin);
+
+    const VISU::PField&
+    GetField() const;
+
+    const std::string& 
+    GetMeshName() const;
+
+    VISU::Entity
+    GetEntity() const;
+
+    const std::string& 
+    GetFieldName() const;
+
+    int
+    GetIteration() const;
+
+    VISU_ScalarMapPL* 
+    GetScalarMapPL();
+
+    virtual 
+    bool
+    IsBoldTitle();
+
+    virtual
+    void
+    SetBoldTitle(bool isBold);
+
+    virtual
+    bool
+    IsItalicTitle();
+
+    virtual
+    void
+    SetItalicTitle(bool isItalic);
+
+    virtual 
+    bool
+    IsShadowTitle();
+
+    virtual
+    void
+    SetShadowTitle(bool isShadow);
+
+    virtual 
+    int
+    GetTitFontType();
+
+    virtual
+    void
+    SetTitFontType(int theType);
+
+    virtual 
+    void
+    GetTitleColor(float* theR, float* theG, float* theB);
+    
+    virtual
+    void
+    SetTitleColor(float theR, float theG, float theB);    
+
+    virtual
+    bool
+    IsBoldLabel();
+
+    virtual
+    void
+    SetBoldLabel(bool isBold);
+
+    virtual
+    bool
+    IsItalicLabel();
+
+    virtual
+    void
+    SetItalicLabel(bool isItalic);
+
+    virtual
+    bool
+    IsShadowLabel();
+
+    virtual
+    void
+    SetShadowLabel(bool isShadow);
+
+    virtual 
+    int
+    GetLblFontType();
+
+    virtual
+    void
+    SetLblFontType(int theType);
+
+    virtual 
+    void
+    GetLabelColor(float* theR, float* theG, float* theB);
+
+    virtual
+    void
+    SetLabelColor(float theR, float theG, float theB);
+
+    //----------------------------------------------------------------------------
+  protected:
+    PField myField;
+    TEntity myEntity;
+    std::string myFieldName;
+    int myIteration;
+
+    //Font management
+    bool myIsBoldTitle;
+    bool myIsItalicTitle;
+    bool myIsShadowTitle;
+    int  myTitFontType;
+    float myTitleColor[3];
+
+    bool myIsBoldLabel;
+    bool myIsItalicLabel;
+    bool myIsShadowLabel;
+    int  myLblFontType;
+    float myLabelColor[3];
+
+    VISU_ScalarMapPL* myScalarMapPL;
+    bool myIsFixedRange;
+
+    virtual 
+    void
+    DoSetInput(Result_i* theResult) = 0;
+
+    Storable* 
+    Build(int theRestoring);
+
+    virtual
+    void 
+    DoHook();
+  };
+
+}
+
+#endif
index 12a3e679c488819bce48d9a1883c93c94ef78dcc..90eb9f0c93d6daf550e97236c501b4d0aafdb4d8 100644 (file)
@@ -63,10 +63,10 @@ CutLines_i(Result_i* theResult,
           bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   myCutLinesPL(NULL)
-{
-}
+{}
 
 
 VISU::CutLines_i::
@@ -74,6 +74,7 @@ CutLines_i(Result_i* theResult,
           SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   myCutLinesPL(NULL)
 {
index 120cae90bf7e6a86b60f76ecacd430ebd1ca8c8f..cff4a1a2cfd95b4cc31aeb1074d9af03727e626f 100644 (file)
@@ -58,10 +58,10 @@ CutPlanes_i(Result_i* theResult,
            bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   myCutPlanesPL(NULL)
-{
-}
+{}
 
 
 VISU::CutPlanes_i::
@@ -69,10 +69,10 @@ CutPlanes_i(Result_i* theResult,
            SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   myCutPlanesPL(NULL)
-{
-}
+{}
 
 
 void VISU::CutPlanes_i::SameAs(const CutPlanes_i* theOrigin){
index 8ba69d30d49a230b3ce4cde171b7d060c2f6e0ff..ae4dbe45f9329356342ad81a693c89c9a7e4f84d 100644 (file)
@@ -69,6 +69,7 @@ DeformedShape_i(Result_i* theResult,
                bool theAddToStudy) : 
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   myDeformedShapePL(NULL)
 {
@@ -81,6 +82,7 @@ DeformedShape_i(Result_i* theResult,
                SALOMEDS::SObject_ptr theSObject) : 
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   myDeformedShapePL(NULL)
 {
index 6392349cad74684dbf9af656bef47bc17fe7aefd..6be98763267cc92f8216bb17c9c684b2316bf921 100644 (file)
@@ -25,6 +25,7 @@
 //  Module :
 
 #include "VISU_GaussPoints_i.hh"
+#include "VISU_ScalarMap_i.hh"
 
 #include "VISU_Result_i.hh"
 #include "VISU_GaussPtsAct.h"
@@ -97,10 +98,10 @@ VISU::GaussPoints_i
 //----------------------------------------------------------------------------
 VISU::GaussPoints_i::
 GaussPoints_i(Result_i* theResult, 
-               bool theAddToStudy) : 
+             bool theAddToStudy) : 
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
-  ScalarMap_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   myGaussPointsPL(NULL),
   myIsColored(true),
   myColor(Qt::blue),
@@ -117,7 +118,7 @@ GaussPoints_i(Result_i* theResult,
              SALOMEDS::SObject_ptr theSObject) : 
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
-  ScalarMap_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   myGaussPointsPL(NULL),
   myIsColored(true),
   myColor(Qt::blue),
@@ -131,10 +132,12 @@ GaussPoints_i(Result_i* theResult,
 //----------------------------------------------------------------------------
 VISU::Storable* 
 VISU::GaussPoints_i
-::Create(const char* theMeshName, VISU::Entity theEntity, 
-        const char* theFieldName, int theIteration)
+::Create(const char* theMeshName, 
+        VISU::Entity theEntity, 
+        const char* theFieldName, 
+        int theIteration)
 {
-  VISU::ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration);
+  TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration);
 
   SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr();
 
@@ -182,8 +185,9 @@ VISU::Storable*
 VISU::GaussPoints_i
 ::Restore(const Storable::TRestoringMap& theMap)
 {
-  DoHook();
-  return VISU::ScalarMap_i::Restore(theMap);
+  TSuperClass::Restore(theMap);
+
+  return this;
 }
 
 
@@ -192,7 +196,7 @@ void
 VISU::GaussPoints_i
 ::ToStream(std::ostringstream& theStr)
 {
-  VISU::ScalarMap_i::ToStream(theStr);
+  TSuperClass::ToStream(theStr);
 }
 
 
@@ -353,15 +357,16 @@ void
 VISU::GaussPoints_i
 ::DoSetInput(Result_i* theResult)
 {
-  if(theResult->GetInput() == NULL)
+  VISU::Result_i::TInput* anInput = theResult->GetInput();
+  if(!anInput)
     throw std::runtime_error("Mesh_i::Build - theResult->GetInput() == NULL !!!");
 
-  myField = theResult->GetInput()->GetField(myMeshName,myEntity,myFieldName);
-  if(myField == NULL
+  myField = anInput->GetField(myMeshName,myEntity,myFieldName);
+  if(!myField
     throw std::runtime_error("There is no Field with the parameters !!!");
 
   VISU::PGaussPtsIDMapper aGaussPtsIDMapper =
-    theResult->GetInput()->GetTimeStampOnGaussPts(myMeshName,myEntity,myFieldName,myIteration);
+    anInput->GetTimeStampOnGaussPts(myMeshName,myEntity,myFieldName,myIteration);
 
   if(!aGaussPtsIDMapper) 
     throw std::runtime_error("There is no TimeStamp with the parameters !!!");
@@ -381,7 +386,7 @@ VISU::GaussPoints_i
 
   myGaussPointsPL = dynamic_cast<VISU_GaussPointsPL*>(myPipeLine);
 
-  ScalarMap_i::DoHook();
+  TSuperClass::DoHook();
 }
 
 
@@ -406,7 +411,7 @@ VISU::GaussPoints_i
                const Handle(SALOME_InteractiveObject)& theIO)
 {
   try{
-    VISU::Prs3d_i::CreateActor(theActor,theIO);
+    TSuperClass::CreateActor(theActor,theIO);
     theActor->GetPipeLine()->Delete();
     theActor->SetRepresentation(VTK_POINTS);
     UpdateActor(theActor);
@@ -459,8 +464,11 @@ VISU::GaussPoints_i
 }
 
 //----------------------------------------------------------------------------
-void VISU::GaussPoints_i::UpdateActor(VISU_Actor* theActor) 
+void 
+VISU::GaussPoints_i
+::UpdateActor(VISU_Actor* theActor) 
 {
+  TSuperClass::UpdateActor(theActor);
   if(VISU_GaussPtsAct* anActor = dynamic_cast<VISU_GaussPtsAct*>(theActor)){
     if(GetIsColored()){
       anActor->SetBarVisibility(true);
@@ -474,82 +482,62 @@ void VISU::GaussPoints_i::UpdateActor(VISU_Actor* theActor)
                                       myColor.green() / 255.0,
                                       myColor.blue() / 255.0);
     }
-    //
-    VISU_ScalarBarCtrl *aSBCtrl = anActor->GetScalarBarCtrl();
-    //
-    // Ranges
-    float *pRange=myScalarMapPL->GetBarTable()->GetRange();
-    //
-    
-    VISU::TField *pField=myField.get();
-    vtkIdType aIndexOfComponent=(vtkIdType)GetScalarMode();
-    TMinMax aTMinMax=pField->GetMinMax(aIndexOfComponent);
-    aSBCtrl->SetRangeGlobal(aTMinMax.first, aTMinMax.second);
-    
-    /* Stub for testing
-    {
-      float dR;
-      //
-      dR=0.5*(pRange[1]-pRange[0]);
-      aSBCtrl->SetRangeGlobal (pRange[0]-dR, pRange[1]+dR);
-    }
-    */
-    aSBCtrl->SetRangeLocal (pRange);
-    aSBCtrl->SetOrientation(myOrientation);
-    //
-    // Mode
-    int iSBMode;
-    //
-    if (myIsActiveLocalScalarBar) {
-      iSBMode=1;
-    }
-    else {
-      if (myIsDispGlobalScalarBar) {
-       iSBMode=2;
-      }
-      else {
-       iSBMode=0;
-       aSBCtrl->SetRangeGlobal(pRange);
+    if(VISU_ScalarBarCtrl *aScalarBarCtrl = anActor->GetScalarBarCtrl()){
+      vtkIdType aScalarMode = GetScalarMode();
+      TMinMax aTMinMax = myField->GetMinMax(aScalarMode);
+      float *aRange = myScalarMapPL->GetBarTable()->GetRange();
+
+      aScalarBarCtrl->SetRangeGlobal(aTMinMax.first, aTMinMax.second);
+      aScalarBarCtrl->SetRangeLocal(aRange);
+
+      aScalarBarCtrl->SetOrientation(myOrientation);
+
+      int aScalarBarMode;
+      if(myIsActiveLocalScalarBar){
+       aScalarBarMode = 1;
+      }else{
+       if(myIsDispGlobalScalarBar){
+         aScalarBarMode = 2;
+       }else{
+         aScalarBarMode = 0;
+         aScalarBarCtrl->SetRangeGlobal(aRange);
+       }
       }
-    }
-    aSBCtrl->SetMode(iSBMode);
-    //
-    // Position
-    aSBCtrl->SetWidth(myWidth);
-    aSBCtrl->SetHeight(myHeight);
-    aSBCtrl->SetPosition(myPosition);
-    //
-    // Bicolor
-    bool bBicolor=GetGaussPointsPL()->GetBicolor();
-    aSBCtrl->SetBicolor(bBicolor);
-    //
-    aSBCtrl->Update();
-    //
-    for (int i=0; i<2; ++i) {
-      vtkScalarBarActor *aScalarBar = aSBCtrl->GetScalarBarActor(i);
-      
-      aScalarBar->SetTitle(myTitle.c_str());
+      aScalarBarCtrl->SetMode(aScalarBarMode);
 
-      aScalarBar->SetNumberOfLabels(myNumberOfLabels);
+      // Position
+      aScalarBarCtrl->SetWidth(myWidth);
+      aScalarBarCtrl->SetHeight(myHeight);
+      aScalarBarCtrl->SetPosition(myPosition);
+
+      // Bicolor
+      bool anIsBicolor = GetGaussPointsPL()->GetBicolor();
+      aScalarBarCtrl->SetBicolor(anIsBicolor);
+      
+      aScalarBarCtrl->Update();
       
-      vtkTextProperty* aTitleProp = aScalarBar->GetTitleTextProperty();
-      aTitleProp->SetFontFamily(myTitFontType);
-      aTitleProp->SetColor(myTitleColor);
-      (myIsBoldTitle)? aTitleProp->BoldOn() : aTitleProp->BoldOff();
-      (myIsItalicTitle)? aTitleProp->ItalicOn() : aTitleProp->ItalicOff();
-      (myIsShadowTitle)? aTitleProp->ShadowOn() : aTitleProp->ShadowOff();
+      for(int i = 0; i < 2; ++i){
+       vtkScalarBarActor *aScalarBar = aScalarBarCtrl->GetScalarBarActor(i);
+       aScalarBar->SetTitle(myTitle.c_str());
+       aScalarBar->SetNumberOfLabels(myNumberOfLabels);
       
-      vtkTextProperty* aLabelProp = aScalarBar->GetLabelTextProperty();
-      aLabelProp->SetFontFamily(myLblFontType);
-      aLabelProp->SetColor(myLabelColor);
-      (myIsBoldLabel)? aLabelProp->BoldOn() : aLabelProp->BoldOff();
-      (myIsItalicLabel)? aLabelProp->ItalicOn() : aLabelProp->ItalicOff();
-      (myIsShadowLabel)? aLabelProp->ShadowOn() : aLabelProp->ShadowOff();
-
-      aScalarBar->Modified();
+       vtkTextProperty* aTitleProp = aScalarBar->GetTitleTextProperty();
+       aTitleProp->SetFontFamily(myTitFontType);
+       aTitleProp->SetColor(myTitleColor);
+       (myIsBoldTitle)? aTitleProp->BoldOn() : aTitleProp->BoldOff();
+       (myIsItalicTitle)? aTitleProp->ItalicOn() : aTitleProp->ItalicOff();
+       (myIsShadowTitle)? aTitleProp->ShadowOn() : aTitleProp->ShadowOff();
+       
+       vtkTextProperty* aLabelProp = aScalarBar->GetLabelTextProperty();
+       aLabelProp->SetFontFamily(myLblFontType);
+       aLabelProp->SetColor(myLabelColor);
+       (myIsBoldLabel)? aLabelProp->BoldOn() : aLabelProp->BoldOff();
+       (myIsItalicLabel)? aLabelProp->ItalicOn() : aLabelProp->ItalicOff();
+       (myIsShadowLabel)? aLabelProp->ShadowOn() : aLabelProp->ShadowOff();
+       
+       aScalarBar->Modified();
+      }
     }
-    //
-    VISU::ScalarMap_i::UpdateActor(theActor);
   }
 }
 
@@ -597,19 +585,33 @@ VISU::GaussPoints_i
     anImageData->Delete();
   }
 }
+
+
 //----------------------------------------------------------------------------
-void VISU::GaussPoints_i::SetIsActiveLocalScalarBar(const bool theFlag){
-  myIsActiveLocalScalarBar=theFlag;
+void
+VISU::GaussPoints_i
+::SetIsActiveLocalScalarBar(const bool theFlag)
+{
+  myIsActiveLocalScalarBar = theFlag;
 }
-//----------------------------------------------------------------------------
-bool VISU::GaussPoints_i::GetIsActiveLocalScalarBar()const {
+
+bool
+VISU::GaussPoints_i
+::GetIsActiveLocalScalarBar() const 
+{
   return myIsActiveLocalScalarBar;
 }
-//----------------------------------------------------------------------------
-void VISU::GaussPoints_i::SetIsDispGlobalScalarBar(const bool theFlag){
+
+void
+VISU::GaussPoints_i
+::SetIsDispGlobalScalarBar(const bool theFlag)
+{
   myIsDispGlobalScalarBar=theFlag;
 }
-//----------------------------------------------------------------------------
-bool VISU::GaussPoints_i::GetIsDispGlobalScalarBar()const {
+
+bool
+VISU::GaussPoints_i
+::GetIsDispGlobalScalarBar() const 
+{
   return myIsDispGlobalScalarBar;
 }
index f1a0a1f3314e9032f265f06e2db5b7c760d8bab6..312c1c8d64aefd1e6b6458ae8b8ec3b567a6d500 100644 (file)
@@ -27,7 +27,7 @@
 #ifndef VISU_GaussPoints_i_HeaderFile
 #define VISU_GaussPoints_i_HeaderFile
 
-#include "VISU_ScalarMap_i.hh"
+#include "VISU_ColoredPrs3d_i.hh"
 #include "VISU_GaussPtsActorFactory.h"
 
 class VISU_GaussPointsPL;
@@ -36,13 +36,16 @@ namespace VISU
 {
   class GaussPoints_i : public virtual POA_VISU::GaussPoints,
                        public virtual VISU::TGaussPtsActorFactory,
-                       public virtual ScalarMap_i
+                       public virtual ColoredPrs3d_i
   {
     static int myNbPresent;
     GaussPoints_i();
     GaussPoints_i(const GaussPoints_i&);
 
   public:
+    //----------------------------------------------------------------------------
+    typedef ColoredPrs3d_i TSuperClass;
+
     explicit
     GaussPoints_i(Result_i* theResult,
                  bool theAddToStudy);
index 3895cc7eb9f4048ac02e8aac7c931814f41f0592..2ea83ae041645291bdf262d3e1fe96548dd7ba60 100644 (file)
@@ -56,10 +56,10 @@ IsoSurfaces_i(Result_i* theResult,
              bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   myIsoSurfacesPL(NULL)
-{
-}
+{}
 
 
 VISU::IsoSurfaces_i::
@@ -67,10 +67,10 @@ IsoSurfaces_i(Result_i* theResult,
              SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   myIsoSurfacesPL(NULL)
-{
-}
+{}
 
 
 void VISU::IsoSurfaces_i::SameAs(const IsoSurfaces_i* theOrigin) {
index 641afcb0b350be930f6652522e859265034927e4..cb6dff6142132d652f050b9d297cb931738a094a 100644 (file)
@@ -29,21 +29,25 @@ QString VISU::Plot3D_i::GenerateName() { return VISU::GenerateName("Plot3D",myNb
 const string VISU::Plot3D_i::myComment = "PLOT3D";
 const char* VISU::Plot3D_i::GetComment() const { return myComment.c_str(); }
 
-VISU::Plot3D_i::Plot3D_i (Result_i* theResult, bool theAddToStudy)
-     : PrsObject_i(theResult->GetStudyDocument()),
-       Prs3d_i(theResult,theAddToStudy),
-       ScalarMap_i(theResult,theAddToStudy),
-       myPlot3DPL(NULL)
-{
-}
+VISU::Plot3D_i
+::Plot3D_i(Result_i* theResult, 
+          bool theAddToStudy) :
+  PrsObject_i(theResult->GetStudyDocument()),
+  Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
+  ScalarMap_i(theResult,theAddToStudy),
+  myPlot3DPL(NULL)
+{}
 
-VISU::Plot3D_i::Plot3D_i (Result_i* theResult, SALOMEDS::SObject_ptr theSObject)
-     : PrsObject_i(theResult->GetStudyDocument()),
-       Prs3d_i(theResult,theSObject),
-       ScalarMap_i(theResult,theSObject),
-       myPlot3DPL(NULL)
-{
-}
+VISU::Plot3D_i
+::Plot3D_i(Result_i* theResult, 
+          SALOMEDS::SObject_ptr theSObject) :
+  PrsObject_i(theResult->GetStudyDocument()),
+  Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
+  ScalarMap_i(theResult,theSObject),
+  myPlot3DPL(NULL)
+{}
 
 void VISU::Plot3D_i::SameAs (const Plot3D_i* theOrigin)
 {
index 49a093b5aa0e01b3baf2a9c0331da11f73dd49ac..a2486ce29b7655cff426496fd93e089391a1933d 100644 (file)
@@ -49,7 +49,7 @@ static int MYDEBUG = 0;
 //----------------------------------------------------------------------------
 VISU::Prs3d_i
 ::Prs3d_i(Result_i* theResult,
-       SALOMEDS::SObject_ptr theSObject) :
+         SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()),
   mySObject(SALOMEDS::SObject::_duplicate(theSObject)),
   myActorCollection(vtkActorCollection::New()),
@@ -65,7 +65,7 @@ VISU::Prs3d_i
 
 VISU::Prs3d_i
 ::Prs3d_i(Result_i* theResult,
-       bool theAddToStudy) :
+         bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()),
   myActorCollection(vtkActorCollection::New()),
   mySObject(SALOMEDS::SObject::_nil()),
index 5fcedadfd8ee0faf937f641102eecc8d69b8a56d..66b1f09a9c032693d24c6ee0784e5cefc0b81f36 100644 (file)
@@ -49,8 +49,14 @@ static int MYDEBUG = 0;
 
 static int INCMEMORY = 4;
 
-int VISU::ScalarMap_i::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity,
-                                 const char* theFieldName, int theIteration, int isMemoryCheck)
+
+//============================================================================
+int
+VISU::ScalarMap_i
+::IsPossible(Result_i* theResult, 
+            const char* theMeshName, 
+            VISU::Entity theEntity,
+            const char* theFieldName, int theIteration, int isMemoryCheck)
 {
   try{
     float aSize = INCMEMORY*
@@ -69,149 +75,94 @@ int VISU::ScalarMap_i::IsPossible(Result_i* theResult, const char* theMeshName,
   return 0;
 }
 
-int VISU::ScalarMap_i::myNbPresent = 0;
-QString VISU::ScalarMap_i::GenerateName() { return VISU::GenerateName("ScalarMap",myNbPresent++);}
+//----------------------------------------------------------------------------
+int
+VISU::ScalarMap_i
+::myNbPresent = 0;
+
+QString
+VISU::ScalarMap_i
+::GenerateName() 
+{ 
+  return VISU::GenerateName("ScalarMap",myNbPresent++);
+}
+
+const string
+VISU::ScalarMap_i
+::myComment = "SCALARMAP";
+
+const char* 
+VISU::ScalarMap_i
+::GetComment() const { 
+  return myComment.c_str();
+}
+
 
-const string VISU::ScalarMap_i::myComment = "SCALARMAP";
-const char* VISU::ScalarMap_i::GetComment() const { return myComment.c_str();}
+//----------------------------------------------------------------------------
 VISU::ScalarMap_i::
 ScalarMap_i(Result_i* theResult,
            bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()),
   Prs3d_i(theResult,theAddToStudy),
-  myScalarMapPL(NULL)
-{
-}
-
+  ColoredPrs3d_i(theResult,theAddToStudy)
+{}
 
 VISU::ScalarMap_i::
 ScalarMap_i(Result_i* theResult,
            SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()),
   Prs3d_i(theResult,theSObject),
-  myScalarMapPL(NULL)
-{
-}
-
+  ColoredPrs3d_i(theResult,theSObject)
+{}
 
-void VISU::ScalarMap_i::RemoveFromStudy()
-{
-  VISU::Prs3d_i::RemoveFromStudy();
-  VISU::RemoveFromStudy(mySObject,false);
-}
+VISU::ScalarMap_i
+::~ScalarMap_i()
+{}
 
 
-void VISU::ScalarMap_i::SameAs(const ScalarMap_i* theOrigin)
+//----------------------------------------------------------------------------
+void
+VISU::ScalarMap_i
+::SameAs(const ScalarMap_i* theOrigin)
 {
-  ScalarMap_i* aScalarMap = const_cast<ScalarMap_i*>(theOrigin);
-  DoHook();
-  VISU::Prs3d_i::SameAs(aScalarMap);
-  myField = aScalarMap->GetField();
-  myMeshName = myField->myMeshName;
-  myEntity = myField->myEntity;
-  myIteration = aScalarMap->GetIteration();
-  myFieldName = aScalarMap->GetFieldName();
-
-  SetScalarMode(aScalarMap->GetScalarMode());
-
-  SetRange(aScalarMap->GetMin(), aScalarMap->GetMax());
-  myIsFixedRange = aScalarMap->IsRangeFixed();
-
-  SetScaling(aScalarMap->GetScaling());
-
-  SetBarOrientation(aScalarMap->GetBarOrientation());
-  SetPosition(aScalarMap->GetPosX(), aScalarMap->GetPosY());
-  SetSize(aScalarMap->GetWidth(), aScalarMap->GetHeight());
-  SetNbColors(aScalarMap->GetNbColors());
-  SetLabels(aScalarMap->GetLabels());
-  SetTitle(aScalarMap->GetTitle());
-
-  SetBoldTitle(aScalarMap->IsBoldTitle());
-  SetItalicTitle(aScalarMap->IsItalicTitle());
-  SetShadowTitle(aScalarMap->IsShadowTitle());
-  SetTitFontType(aScalarMap->GetTitFontType());
-  float r,g,b;
-  aScalarMap->GetTitleColor(&r,&g,&b);
-  SetTitleColor(r,g,b);
-
-  SetBoldLabel(aScalarMap->IsBoldLabel());
-  SetItalicLabel(aScalarMap->IsItalicLabel());
-  SetShadowLabel(aScalarMap->IsShadowLabel());
-  SetLblFontType(aScalarMap->GetLblFontType());
-  aScalarMap->GetLabelColor(&r,&g,&b);
-  SetLabelColor(r,g,b);
+  TSuperClass::SameAs(theOrigin);
 
-  Build(-1);
-  Update();
-}
+  ScalarMap_i* anOrigin = const_cast<ScalarMap_i*>(theOrigin);
+  SetRange(anOrigin->GetMin(), anOrigin->GetMax());
+  myIsFixedRange = anOrigin->IsRangeFixed();
 
-void VISU::ScalarMap_i::SameAsParams (const ScalarMap_i* theOrigin)
-{
-  int time = GetIteration();
-  SameAs(theOrigin);
-  myIteration = time;
+  SetScaling(anOrigin->GetScaling());
 
-  //??Build(true);
   Build(-1);
   Update();
 }
 
 
+//----------------------------------------------------------------------------
 /**
  * Creates Scalar Map and initialises it from resources
  */
-VISU::Storable* VISU::ScalarMap_i::Create(const char* theMeshName, VISU::Entity theEntity,
-                                         const char* theFieldName, int theIteration)
+VISU::Storable* 
+VISU::ScalarMap_i
+::Create(const char* theMeshName, 
+        VISU::Entity theEntity,
+        const char* theFieldName, 
+        int theIteration)
 {
-  DoHook();
+  TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration);
 
   SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr();
 
-  int aScalarMode = aResourceMgr->integerValue("VISU", "scalar_bar_mode", 0);
-  SetScalarMode(aScalarMode);
-
-  // Orientation
-  int orient = aResourceMgr->integerValue("VISU", "scalar_bar_orientation", 0);
-  if (orient == 1)
-    myOrientation = VISU::ScalarMap::HORIZONTAL;
-  else
-    myOrientation = VISU::ScalarMap::VERTICAL;
-
-  // Scalar Bar origin
-  QString propertyName = QString( "scalar_bar_%1_" ).arg( orient == 0 ? "vertical" : "horizontal" );
-
-  float aXorigin = (myOrientation == VISU::ScalarMap::VERTICAL) ? 0.01 : 0.2;
-  aXorigin = aResourceMgr->doubleValue("VISU", propertyName + "x", aXorigin);
-  myPosition[0] = aXorigin;
-
-  float aYorigin = (myOrientation == VISU::ScalarMap::VERTICAL) ? 0.1 : 0.012;
-  aYorigin = aResourceMgr->doubleValue("VISU", propertyName + "y", aYorigin);
-  myPosition[1] = aYorigin;
-
-  // Scalar Bar size
-  myWidth = (myOrientation == VISU::ScalarMap::VERTICAL)? 0.1 : 0.6;
-  myWidth = aResourceMgr->doubleValue("VISU", propertyName + "width", myWidth);
-
-  myHeight = (myOrientation == VISU::ScalarMap::VERTICAL)? 0.8:0.12;
-  myHeight = aResourceMgr->doubleValue("VISU", propertyName + "height", myHeight);
-
-  // Nb of Colors
-  int aNumberOfColors = aResourceMgr->integerValue( "VISU", "scalar_bar_num_colors", 64 );
-  SetNbColors(aNumberOfColors);
-
-  // Nb of Labels
-  myNumberOfLabels = aResourceMgr->integerValue( "VISU", "scalar_bar_num_labels", 5 );
-
   // Scalar Range
-  int rangeType = aResourceMgr->integerValue("VISU" , "scalar_range_type", 0);
-  myIsFixedRange = (rangeType == 1) ? true : false;
-
-  if (myIsFixedRange)
-    {
-      float aMin = aResourceMgr->doubleValue("VISU", "scalar_range_min", 0);
-      float aMax = aResourceMgr->doubleValue("VISU", "scalar_range_max", 0);
-      SetRange(aMin,aMax);
-    }
+  int aRangeType = aResourceMgr->integerValue("VISU" , "scalar_range_type", 0);
+  myIsFixedRange = (aRangeType == 1) ? true : false;
+
+  if(myIsFixedRange){
+    float aMin = aResourceMgr->doubleValue("VISU", "scalar_range_min", 0);
+    float aMax = aResourceMgr->doubleValue("VISU", "scalar_range_max", 0);
+    SetRange(aMin,aMax);
+  }
 
   bool isLog = aResourceMgr->booleanValue("VISU", "scalar_bar_logarithmic", false);
 
@@ -220,253 +171,109 @@ VISU::Storable* VISU::ScalarMap_i::Create(const char* theMeshName, VISU::Entity
   else
     SetScaling(VISU::LINEAR);
 
-  // Fonts properties definition
-  myIsBoldTitle = myIsItalicTitle = myIsShadowTitle = true;
-  myTitFontType = VTK_ARIAL;
-
-  if ( aResourceMgr->hasValue( "VISU", "scalar_bar_title_font" ) )
-    {
-      QFont f = aResourceMgr->fontValue( "VISU", "scalar_bar_title_font" );
-
-      if ( f.family() == "Arial" )
-       myTitFontType = VTK_ARIAL;
-      else if ( f.family() == "Courier" )
-       myTitFontType = VTK_COURIER;
-      else if ( f.family() == "Times" )
-       myTitFontType = VTK_TIMES;
-
-      myIsBoldTitle   = f.bold();
-      myIsItalicTitle = f.italic();
-      myIsShadowTitle =  f.underline();
-    }
-
-  QColor aTextColor = aResourceMgr->colorValue( "VISU", "scalar_bar_title_color", QColor( 255, 255, 255 ) );
-
-  myTitleColor[0] = aTextColor.red()   / 255;
-  myTitleColor[1] = aTextColor.green() / 255;
-  myTitleColor[2] = aTextColor.blue()  / 255;
-
-  ///
-
-  myIsBoldLabel = myIsItalicLabel = myIsShadowLabel = true;
-  myLblFontType = VTK_ARIAL;
-
-  if ( aResourceMgr->hasValue( "VISU", "scalar_bar_label_font" ) )
-    {
-      QFont f = aResourceMgr->fontValue( "VISU", "scalar_bar_label_font" );
-
-      if ( f.family() == "Arial" )
-       myLblFontType = VTK_ARIAL;
-      else if ( f.family() == "Courier" )
-       myLblFontType = VTK_COURIER;
-      else if ( f.family() == "Times" )
-       myLblFontType = VTK_TIMES;
-
-      myIsBoldLabel   = f.bold();
-      myIsItalicLabel = f.italic();
-      myIsShadowLabel =  f.underline();
-    }
-
-  QColor aLabelColor = aResourceMgr->colorValue( "VISU", "scalar_bar_label_color", QColor( 255, 255, 255 ) );
-
-  myLabelColor[0] = aLabelColor.red()   / 255;
-  myLabelColor[1] = aLabelColor.green() / 255;
-  myLabelColor[2] = aLabelColor.blue()  / 255;
-
-
-  myMeshName = theMeshName;
-  myEntity = (VISU::TEntity)theEntity;
-  myFieldName =theFieldName;
-  myIteration = theIteration;
-
-  return Build(false);
+  return this;
 }
 
-
-VISU::Storable* VISU::ScalarMap_i::Restore(const Storable::TRestoringMap& theMap)
+VISU::Storable* 
+VISU::ScalarMap_i
+::Restore(const Storable::TRestoringMap& theMap)
 {
-  DoHook();
-  myMeshName = VISU::Storable::FindValue(theMap,"myMeshName").latin1();
-  myEntity = (VISU::TEntity)VISU::Storable::FindValue(theMap,"myEntity").toInt();
-  myFieldName = VISU::Storable::FindValue(theMap,"myFieldName").latin1();
-  myIteration = VISU::Storable::FindValue(theMap,"myIteration").toInt();
+  TSuperClass::Restore(theMap);
 
-  SetScalarMode(VISU::Storable::FindValue(theMap,"myScalarMode").toInt());
   SetScaling(VISU::Scaling(VISU::Storable::FindValue(theMap,"myScaling").toInt()));
+
   float aMin = VISU::Storable::FindValue(theMap,"myScalarRange[0]").toDouble();
   float aMax = VISU::Storable::FindValue(theMap,"myScalarRange[1]").toDouble();
   SetRange(aMin,aMax);
+
   myIsFixedRange = VISU::Storable::FindValue(theMap,"myIsFixedRange").toInt();
 
-  myTitle = VISU::Storable::FindValue(theMap,"myTitle").latin1();
-  myOrientation = (VISU::ScalarMap::Orientation)VISU::Storable::FindValue(theMap,"myOrientation").toInt();
-  SetNbColors(VISU::Storable::FindValue(theMap,"myNumberOfColors").toInt());
-  myNumberOfLabels = VISU::Storable::FindValue(theMap,"myNumberOfLabels").toInt();
-  myPosition[0] = VISU::Storable::FindValue(theMap,"myPosition[0]").toDouble();
-  myPosition[1] = VISU::Storable::FindValue(theMap,"myPosition[1]").toDouble();
-  myWidth = VISU::Storable::FindValue(theMap,"myWidth").toDouble();
-  myHeight = VISU::Storable::FindValue(theMap,"myHeight").toDouble();
-
-  myTitFontType = VISU::Storable::FindValue(theMap,"myTitFontType").toInt();
-  myIsBoldTitle = VISU::Storable::FindValue(theMap,"myIsBoldTitle").toInt();
-  myIsItalicTitle = VISU::Storable::FindValue(theMap,"myIsItalicTitle").toInt();
-  myIsShadowTitle = VISU::Storable::FindValue(theMap,"myIsShadowTitle").toInt();
-  myTitleColor[0] = VISU::Storable::FindValue(theMap,"myTitleColor[0]").toFloat();
-  myTitleColor[1] = VISU::Storable::FindValue(theMap,"myTitleColor[1]").toFloat();
-  myTitleColor[2] = VISU::Storable::FindValue(theMap,"myTitleColor[2]").toFloat();
-
-  myLblFontType = VISU::Storable::FindValue(theMap,"myLblFontType").toInt();
-  myIsBoldLabel = VISU::Storable::FindValue(theMap,"myIsBoldLabel").toInt();
-  myIsItalicLabel = VISU::Storable::FindValue(theMap,"myIsItalicLabel").toInt();
-  myIsShadowLabel = VISU::Storable::FindValue(theMap,"myIsShadowLabel").toInt();
-  myLabelColor[0] = VISU::Storable::FindValue(theMap,"myLabelColor[0]").toFloat();
-  myLabelColor[1] = VISU::Storable::FindValue(theMap,"myLabelColor[1]").toFloat();
-  myLabelColor[2] = VISU::Storable::FindValue(theMap,"myLabelColor[2]").toFloat();
-
-  Prs3d_i::Restore(theMap);
-  myAddToStudy = false; //SRN Added 21/06/2003 SAL2983: to avoid addition of the new ScalarMap to study.
-  return Build(true);
+  return this;
 }
 
+void 
+VISU::ScalarMap_i
+::ToStream(std::ostringstream& theStr)
+{
+  TSuperClass::ToStream(theStr);
 
-void VISU::ScalarMap_i::ToStream(std::ostringstream& theStr){
-  Prs3d_i::ToStream(theStr);
-
-  Storable::DataToStream( theStr, "myMeshName",       myMeshName.c_str() );
-  Storable::DataToStream( theStr, "myEntity",         myEntity );
-  Storable::DataToStream( theStr, "myFieldName",      myFieldName.c_str() );
-  Storable::DataToStream( theStr, "myIteration",      myIteration );
-
-  Storable::DataToStream( theStr, "myScalarMode",     int(GetScalarMode()) );
   Storable::DataToStream( theStr, "myScalarRange[0]", GetMin() );
   Storable::DataToStream( theStr, "myScalarRange[1]", GetMax() );
   Storable::DataToStream( theStr, "myIsFixedRange",   myIsFixedRange );
   Storable::DataToStream( theStr, "myScaling",        GetScaling() );
-
-  Storable::DataToStream( theStr, "myTitle",          myTitle.c_str() );
-  Storable::DataToStream( theStr, "myOrientation",    myOrientation );
-  Storable::DataToStream( theStr, "myNumberOfColors", int(GetNbColors()) );
-  Storable::DataToStream( theStr, "myNumberOfLabels", myNumberOfLabels );
-  Storable::DataToStream( theStr, "myPosition[0]",    myPosition[0] );
-  Storable::DataToStream( theStr, "myPosition[1]",    myPosition[1] );
-  Storable::DataToStream( theStr, "myWidth",          myWidth );
-  Storable::DataToStream( theStr, "myHeight",         myHeight );
-
-  Storable::DataToStream( theStr, "myTitFontType",    myTitFontType );
-  Storable::DataToStream( theStr, "myIsBoldTitle",    myIsBoldTitle );
-  Storable::DataToStream( theStr, "myIsItalicTitle",  myIsItalicTitle );
-  Storable::DataToStream( theStr, "myIsShadowTitle",  myIsShadowTitle );
-  Storable::DataToStream( theStr, "myTitleColor[0]",  myTitleColor[0] );
-  Storable::DataToStream( theStr, "myTitleColor[1]",  myTitleColor[1] );
-  Storable::DataToStream( theStr, "myTitleColor[2]",  myTitleColor[2] );
-
-  Storable::DataToStream( theStr, "myLblFontType",    myLblFontType );
-  Storable::DataToStream( theStr, "myIsBoldLabel",    myIsBoldLabel );
-  Storable::DataToStream( theStr, "myIsItalicLabel",  myIsItalicLabel );
-  Storable::DataToStream( theStr, "myIsShadowLabel",  myIsShadowLabel );
-  Storable::DataToStream( theStr, "myLabelColor[0]",  myLabelColor[0] );
-  Storable::DataToStream( theStr, "myLabelColor[1]",  myLabelColor[1] );
-  Storable::DataToStream( theStr, "myLabelColor[2]",  myLabelColor[2] );
 }
 
 
-CORBA::Long VISU::ScalarMap_i::GetScalarMode(){
-  return myScalarMapPL->GetScalarMode();
-}
-void VISU::ScalarMap_i::SetScalarMode(CORBA::Long theScalarMode) {
-  myScalarMapPL->SetScalarMode(theScalarMode);
+//----------------------------------------------------------------------------
+void
+VISU::ScalarMap_i
+::SetBarOrientation(VISU::ScalarMap::Orientation theOrientation)
+{
+  SetScalarBarOrientation((VISU::ColoredPrd3d::ScalarBarOrientation)theOrientation);
 }
 
+VISU::ScalarMap::Orientation 
+VISU::ScalarMap_i
+::GetBarOrientation() 
+{
+  return (VISU::ScalarMap::Orientation)GetScalarBarOrientation();
+}
 
-VISU::Scaling VISU::ScalarMap_i::GetScaling(){
+VISU::Scaling 
+VISU::ScalarMap_i
+::GetScaling()
+{
   return VISU::Scaling(myScalarMapPL->GetScaling());
 }
-void VISU::ScalarMap_i::SetScaling(VISU::Scaling theScaling){
+
+void
+VISU::ScalarMap_i
+::SetScaling(VISU::Scaling theScaling)
+{
   myScalarMapPL->SetScaling(theScaling);
 }
 
-
-void VISU::ScalarMap_i::SetRange(CORBA::Double theMin, CORBA::Double theMax){
-  if(theMin > theMax) return;
+void
+VISU::ScalarMap_i
+::SetRange(CORBA::Double theMin, CORBA::Double theMax)
+{
+  if(theMin > theMax) 
+    return;
   float aScalarRange[2] = {theMin, theMax};
   myScalarMapPL->SetScalarRange(aScalarRange);
   myIsFixedRange = true;
 }
 
-CORBA::Double VISU::ScalarMap_i::GetMin(){
+CORBA::Double 
+VISU::ScalarMap_i
+::GetMin()
+{
   return myScalarMapPL->GetScalarRange()[0];
 }
 
-CORBA::Double VISU::ScalarMap_i::GetMax(){
+CORBA::Double 
+VISU::ScalarMap_i
+::GetMax()
+{
   return myScalarMapPL->GetScalarRange()[1];
 }
 
 
-void VISU::ScalarMap_i::SetNbColors(CORBA::Long theNbColors){
-  myScalarMapPL->SetNbColors(theNbColors);
-}
-
-CORBA::Long VISU::ScalarMap_i::GetNbColors(){
-  return myScalarMapPL->GetNbColors();
-}
-
-
-VISU::ScalarMap_i::~ScalarMap_i(){}
-
-
-VISU::Storable* VISU::ScalarMap_i::Build(int theRestoring){
-  if(MYDEBUG)
-    MESSAGE("ScalarMap_i::Build - "<<myFieldName<<"; theRestoring = "<<theRestoring);
-  SALOMEDS::StudyBuilder_var aStudyBuilder = myStudy->NewBuilder();
-  if(myAddToStudy) aStudyBuilder->NewCommand();  // There is a transaction
-  try{
-    DoSetInput(myResult);
-    QString aComment;
-    myName = "NoName";
-    if(theRestoring <= 0){
-      if(theRestoring == 0) myScalarMapPL->Init();
-      if(!myIsFixedRange) myScalarMapPL->SetSourceRange();
-      const VISU::TValField& aValField = myField->myValField;
-      const VISU::PValForTime aValForTime = aValField.find(myIteration)->second;
-      aComment.sprintf("%s %s",myFieldName.c_str(),VISU_Convertor::GenerateName(aValForTime->myTime).c_str());
-      if (theRestoring == 0) myTitle = aComment.simplifyWhiteSpace().latin1();
-    }
-    if(myAddToStudy){
-      myName = GenerateName().latin1();
-      aComment.sprintf("myComment=TIMESTAMP;myType=%d;myMeshName=%s;myEntityId=%d;myFieldName=%s;myTimeStampId=%d;myNumComponent=%d",
-                      VISU::TTIMESTAMP,myMeshName.c_str(),myEntity,myFieldName.c_str(),myIteration,myField->myNbComp);
-      string aResultEntry = myResult->GetEntry();
-      string aRefFatherEntry = myResult->GetRefFatherEntry();
-      string anEntry = myResult->GetEntry(aComment.latin1());
-      if(anEntry == "") throw std::runtime_error("There is no Entry for binding the presentation !!!");
-      aComment.sprintf("myComment=%s;myMeshName=%s;myEntityId=%d;myFieldName=%s;myTimeStampId=%d;myNumComponent=%d",
-                      GetComment(),myMeshName.c_str(),myEntity,myFieldName.c_str(),myIteration,myField->myNbComp);
-      CORBA::String_var anIOR = GetID();
-      CreateAttributes(myStudy,anEntry.c_str(),aRefFatherEntry.c_str(),anIOR,myName.c_str(),"",aComment.latin1(),true);
-      mySObject = myStudy->FindObjectIOR(anIOR);
-    }
-  }catch(std::exception& exc){
-    INFOS("Follow exception was occured :\n"<<exc.what());
-    return NULL;
-  }catch(...){
-    INFOS("Unknown exception was occured!");
-    return NULL;
-  }
-  if(myAddToStudy) aStudyBuilder->CommitCommand();
-  return this;
-}
-
-
-void VISU::ScalarMap_i::DoSetInput(Result_i* theResult){
-  if(theResult->GetInput() == NULL)
+//----------------------------------------------------------------------------
+void 
+VISU::ScalarMap_i
+::DoSetInput(Result_i* theResult)
+{
+  VISU::Result_i::TInput* anInput = theResult->GetInput();
+  if(!anInput)
     throw std::runtime_error("Mesh_i::Build - theResult->GetInput() == NULL !!!");
 
-  myField = theResult->GetInput()->GetField(myMeshName,myEntity,myFieldName);
-  if(myField == NULL
+  myField = anInput->GetField(myMeshName,myEntity,myFieldName);
+  if(!myField
     throw std::runtime_error("There is no Field with the parameters !!!");
 
   VISU::PIDMapper anIDMapper =
-    theResult->GetInput()->GetTimeStampOnMesh(myMeshName,myEntity,myFieldName,myIteration);
+    anInput->GetTimeStampOnMesh(myMeshName,myEntity,myFieldName,myIteration);
 
   if(!anIDMapper) 
     throw std::runtime_error("There is no TimeStamp with the parameters !!!");
@@ -475,31 +282,45 @@ void VISU::ScalarMap_i::DoSetInput(Result_i* theResult){
   myScalarMapPL->Build();
 }
 
+void
+VISU::ScalarMap_i
+::Update() 
+{
+  TSuperClass::Update();
+}
+
 
-void VISU::ScalarMap_i::DoHook(){
-  if(MYDEBUG)  MESSAGE("ScalarMap_i::DoHook() - "<<myPipeLine);
-  if(!myPipeLine) {
-    myPipeLine = VISU_ScalarMapPL::New();
-    myPipeLine->GetMapper()->SetScalarVisibility(1);
-  }
-  myScalarMapPL = dynamic_cast<VISU_ScalarMapPL*>(myPipeLine);
+//----------------------------------------------------------------------------
+void
+VISU::ScalarMap_i
+::SetMapScale(double theMapScale)
+{
+  myScalarMapPL->SetMapScale(theMapScale);
 }
 
-void VISU::ScalarMap_i::Update() {
-  VISU::Prs3d_i::Update();
+bool
+VISU::ScalarMap_i
+::IsRangeFixed() 
+{ 
+  return myIsFixedRange; 
 }
 
-void VISU::ScalarMap_i::SetMapScale(double theMapScale){
-  myScalarMapPL->SetMapScale(theMapScale);
+void
+VISU::ScalarMap_i
+::SetSourceRange()
+{
+  myScalarMapPL->SetSourceRange();
+  myIsFixedRange = false;
 }
 
+//----------------------------------------------------------------------------
 VISU_Actor* 
 VISU::ScalarMap_i
 ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO)
 {
   VISU_ScalarMapAct* anActor = VISU_ScalarMapAct::New();
   try{
-    VISU::Prs3d_i::CreateActor(anActor,theIO);
+    TSuperClass::CreateActor(anActor,theIO);
     anActor->SetBarVisibility(true);
     anActor->SetRepresentation(2);
     UpdateActor(anActor);
@@ -510,9 +331,12 @@ VISU::ScalarMap_i
   return anActor;
 }
 
-void VISU::ScalarMap_i::UpdateActor(VISU_Actor* theActor) {
+void
+VISU::ScalarMap_i
+::UpdateActor(VISU_Actor* theActor) 
+{
+  TSuperClass::UpdateActor(theActor);
   if(VISU_ScalarMapAct* anActor = dynamic_cast<VISU_ScalarMapAct*>(theActor)){
-    VISU::Prs3d_i::UpdateActor(theActor);
     VISU_ScalarBarActor *aScalarBar = anActor->GetScalarBar();
     aScalarBar->SetLookupTable(myScalarMapPL->GetBarTable());
     aScalarBar->SetTitle(myTitle.c_str());
@@ -540,9 +364,3 @@ void VISU::ScalarMap_i::UpdateActor(VISU_Actor* theActor) {
     aScalarBar->Modified();
   }
 }
-
-
-void VISU::ScalarMap_i::SetSourceRange(){
-  myScalarMapPL->SetSourceRange();
-  myIsFixedRange = false;
-}
index 60e666ae89228143f6c47c9fce17939f41bdbca2..acdf7af3c46aff37e496479d2fbd4a79ed18ec46 100644 (file)
 #ifndef VISU_ScalarMap_i_HeaderFile
 #define VISU_ScalarMap_i_HeaderFile
 
-#include "VISU_Prs3d_i.hh"
+#include "VISU_ColoredPrs3d_i.hh"
 
-class VISU_ScalarMapPL;
 
-namespace VISU{
+namespace VISU
+{
+  //============================================================================
   class ScalarMap_i : public virtual POA_VISU::ScalarMap,
-                     public virtual Prs3d_i
+                     public virtual ColoredPrs3d_i
   {
     static int myNbPresent;
     ScalarMap_i();
     ScalarMap_i(const ScalarMap_i&);
 
   public:
+    //----------------------------------------------------------------------------
+    typedef ColoredPrs3d_i TSuperClass;
+
     explicit
     ScalarMap_i(Result_i* theResult,
                bool theAddToStudy);
     explicit
     ScalarMap_i(Result_i* theResult,
                SALOMEDS::SObject_ptr theSObject);
-    virtual void SameAs(const ScalarMap_i* theOrigin);
-    virtual ~ScalarMap_i();
-    virtual void RemoveFromStudy();
-
-    virtual VISU::VISUType GetType() { return VISU::TSCALARMAP;};
-
-    virtual CORBA::Long GetScalarMode();
-    virtual void SetScalarMode(CORBA::Long theScalarMode);
-
-    virtual VISU::Scaling GetScaling();
-    virtual void SetScaling(VISU::Scaling theScaling);
-
-    virtual void SetRange(CORBA::Double theMin, CORBA::Double theMax);
-    virtual CORBA::Double GetMin();
-    virtual CORBA::Double GetMax();
-
-    virtual void SetNbColors(CORBA::Long theNbColors);
-    virtual CORBA::Long GetNbColors();
-
-    virtual void SetBarOrientation(VISU::ScalarMap::Orientation theOrientation){
-      myOrientation = theOrientation;
+    virtual
+    ~ScalarMap_i();
+
+    virtual
+    VISU::VISUType 
+    GetType() 
+    { 
+      return VISU::TSCALARMAP;
     }
-    virtual VISU::ScalarMap::Orientation GetBarOrientation() { return myOrientation;}
-
-    virtual void SetPosition(CORBA::Double X, CORBA::Double Y) { myPosition[0] = X; myPosition[1] = Y;}
-    virtual CORBA::Double GetPosX() { return myPosition[0];}
-    virtual CORBA::Double GetPosY() { return myPosition[1];}
-
-    virtual void SetSize(CORBA::Double theWidth, CORBA::Double theHeight) {
-      myWidth = theWidth; myHeight = theHeight;
-    }
-    virtual CORBA::Double GetWidth() { return myWidth;}
-    virtual CORBA::Double GetHeight() { return myHeight;}
-
-    virtual void SetLabels(CORBA::Long theNbLabels) { myNumberOfLabels = theNbLabels;}
-    virtual CORBA::Long GetLabels() { return myNumberOfLabels;}
-
-    virtual void SetTitle(const char* theName) { myTitle = theName;}
-    virtual char* GetTitle() { return CORBA::string_dup(myTitle.c_str());}
-
-    virtual bool IsBoldTitle() { return myIsBoldTitle;}
-    virtual void SetBoldTitle(bool isBold) { myIsBoldTitle = isBold;}
-
-    virtual bool IsItalicTitle() { return myIsItalicTitle;}
-    virtual void SetItalicTitle(bool isItalic) { myIsItalicTitle = isItalic;}
 
-    virtual bool IsShadowTitle() { return myIsShadowTitle;}
-    virtual void SetShadowTitle(bool isShadow) { myIsShadowTitle = isShadow;}
-
-    virtual int GetTitFontType() { return myTitFontType;}
-    virtual void SetTitFontType(int theType) { myTitFontType = theType;}
+    virtual 
+    VISU::Scaling 
+    GetScaling();
 
-    virtual void GetTitleColor(float* theR, float* theG, float* theB)
-    {*theR = myTitleColor[0]; *theG = myTitleColor[1]; *theB = myTitleColor[2];}
-    virtual void SetTitleColor(float theR, float theG, float theB)
-    {myTitleColor[0] = theR; myTitleColor[1] = theG; myTitleColor[2] = theB; }
+    virtual
+    void
+    SetScaling(VISU::Scaling theScaling);
 
-    /////
-    virtual bool IsBoldLabel() { return myIsBoldLabel;}
-    virtual void SetBoldLabel(bool isBold) { myIsBoldLabel = isBold;}
+    virtual
+    void
+    SetRange(CORBA::Double theMin, CORBA::Double theMax);
 
-    virtual bool IsItalicLabel() { return myIsItalicLabel;}
-    virtual void SetItalicLabel(bool isItalic) { myIsItalicLabel = isItalic;}
+    virtual
+    CORBA::Double 
+    GetMin();
 
-    virtual bool IsShadowLabel() { return myIsShadowLabel;}
-    virtual void SetShadowLabel(bool isShadow) {myIsShadowLabel = isShadow;}
+    virtual
+    CORBA::Double 
+    GetMax();
 
-    virtual int GetLblFontType() { return myLblFontType;}
-    virtual void SetLblFontType(int theType) { myLblFontType = theType;}
+    // To provide backward compatibility
+    virtual
+    void
+    SetBarOrientation(VISU::ScalarMap::Orientation theOrientation);
 
-    virtual void GetLabelColor(float* theR, float* theG, float* theB)
-    {*theR = myLabelColor[0]; *theG = myLabelColor[1]; *theB = myLabelColor[2];}
-    virtual void SetLabelColor(float theR, float theG, float theB)
-    {myLabelColor[0] = theR; myLabelColor[1] = theG; myLabelColor[2] = theB; }
+    virtual 
+    VISU::ScalarMap::Orientation 
+    GetBarOrientation();
 
     typedef VISU::ScalarMap TInterface;
-    VISU_ScalarMapPL* GetScalarMapPL(){ return myScalarMapPL;}
-
-    /*!
-     *  \brief Works like SameAs() method, but keep myIteration value unchanged.
-     *
-     *  Is used in VISU_TimeAnimation class implementation.
-     */
-    void SameAsParams (const ScalarMap_i* theOrigin);
 
   protected:
-    Storable* Build(int theRestoring);
-    virtual void DoSetInput(Result_i* theResult);
-    virtual void DoHook();
-
-    VISU_ScalarMapPL* myScalarMapPL;
-    PField myField;
-
-    // std::string myMeshName; move it to Prs3d_i
-    TEntity myEntity;
-    std::string myFieldName;
-    int myIteration;
-
-    bool myIsFixedRange;
-
-    std::string myTitle;
-    int myNumberOfLabels;
-    float myPosition[2], myWidth, myHeight;
-    VISU::ScalarMap::Orientation myOrientation;
-
-    //Font management
-    bool myIsBoldTitle;
-    bool myIsItalicTitle;
-    bool myIsShadowTitle;
-    int  myTitFontType;
-    float myTitleColor[3];
-
-    bool myIsBoldLabel;
-    bool myIsItalicLabel;
-    bool myIsShadowLabel;
-    int  myLblFontType;
-    float myLabelColor[3];
+    virtual 
+    void
+    DoSetInput(Result_i* theResult);
 
   public:
-    static int IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity,
-                         const char* theFieldName, int theIteration, int isMemoryCheck = true);
-    virtual Storable* Create(const char* theMeshName, VISU::Entity theEntity,
-                            const char* theFieldName, int theIteration);
-
-    const std::string& GetMeshName() const { return myMeshName;}
-    VISU::Entity GetEntity() const { return VISU::Entity(myEntity);}
-    const string& GetFieldName() const { return myFieldName;}
-    int GetIteration() const { return myIteration;}
+    static
+    int
+    IsPossible(Result_i* theResult, 
+              const char* theMeshName, 
+              VISU::Entity theEntity,
+              const char* theFieldName, 
+              int theIteration, 
+              int isMemoryCheck = true);
+    virtual
+    Storable* 
+    Create(const char* theMeshName, 
+          VISU::Entity theEntity,
+          const char* theFieldName, 
+          int theIteration);
 
-    virtual void ToStream(std::ostringstream& theStr);
+    virtual 
+    void
+    ToStream(std::ostringstream& theStr);
 
     static const std::string myComment;
-    virtual const char* GetComment() const;
-    virtual QString GenerateName();
 
-    virtual Storable* Restore(const Storable::TRestoringMap& theMap);
+    virtual
+    const char* 
+    GetComment() const;
 
-    static Storable* Restore(SALOMEDS::SObject_ptr theSObject,
-                            const std::string& thePrefix, const Storable::TRestoringMap& theMap);
+    virtual
+    QString
+    GenerateName();
 
-    virtual void Update() ;
-    virtual void SetMapScale(double theMapScale = 1.0);
+    virtual 
+    Storable* 
+    Restore(const Storable::TRestoringMap& theMap);
+
+    static 
+    Storable* 
+    Restore(SALOMEDS::SObject_ptr theSObject,
+           const std::string& thePrefix, 
+           const Storable::TRestoringMap& theMap);
+
+    virtual
+    void
+    Update() ;
 
-    const VISU::PField GetField() const { return myField;}
+    virtual
+    void
+    SetMapScale(double theMapScale = 1.0);
 
-    virtual bool IsRangeFixed() { return myIsFixedRange; }
-    virtual void SetSourceRange();
+    virtual
+    bool
+    IsRangeFixed();
 
-    virtual int GetIteration() { return myIteration; }
+    virtual 
+    void
+    SetSourceRange();
+
+    virtual 
+    void
+    SameAs(const ScalarMap_i* theOrigin);
 
     virtual 
     VISU_Actor* 
     CreateActor(const Handle(SALOME_InteractiveObject)& theIO = NULL);
 
-    virtual void UpdateActor(VISU_Actor* theActor) ;
+    virtual
+    void
+    UpdateActor(VISU_Actor* theActor);
   };
 }
 
index b5ae48a8c899bb7961d6d2879e165c76df276ea2..0ccf6dec34e8bddbaa510e52b7c0aacbb0565189 100644 (file)
@@ -79,6 +79,7 @@ StreamLines_i(Result_i* theResult,
              bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   DeformedShape_i(theResult,theAddToStudy),
   myStreamLinesPL(NULL),
@@ -92,6 +93,7 @@ StreamLines_i(Result_i* theResult,
              SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   DeformedShape_i(theResult,theSObject),
   myStreamLinesPL(NULL),
index db8b264878096a502396881672f4941d0b612b64..26218a0b375624fd5e528e47f3c327c0b76afc4d 100644 (file)
@@ -76,6 +76,7 @@ Vectors_i(Result_i* theResult,
          bool theAddToStudy) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theAddToStudy),
+  ColoredPrs3d_i(theResult,theAddToStudy),
   ScalarMap_i(theResult,theAddToStudy),
   DeformedShape_i(theResult,theAddToStudy),
   myVectorsPL(NULL)
@@ -88,6 +89,7 @@ Vectors_i(Result_i* theResult,
          SALOMEDS::SObject_ptr theSObject) :
   PrsObject_i(theResult->GetStudyDocument()), 
   Prs3d_i(theResult,theSObject),
+  ColoredPrs3d_i(theResult,theSObject),
   ScalarMap_i(theResult,theSObject),
   DeformedShape_i(theResult,theSObject),
   myVectorsPL(NULL)