Salome HOME
Update copyright information
[modules/visu.git] / idl / VISU_Gen.idl
index 722b086c40a685b87a1c1e51175b5fe4b14b51d1..60a4449819b0e02c36e1a2b963a8c491258cb8dd 100644 (file)
@@ -1,6 +1,23 @@
-//  Copyright (C) 2003  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
+// Copyright (C) 2003-2007  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.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : VISU_Gen.idl
 //  Author : Alexey Petrov
@@ -28,23 +45,95 @@ module VISU {
   //-------------------------------------------------------
   typedef string IdType;
 
+  typedef sequence<string> string_array;
+  typedef sequence<double> double_array;
+
   /*!
    * This enumeration contains a set of elements defining the type
    * of the scaling, which can be applied on different presentations.
    */
   enum Scaling{ LINEAR, /*!< Linear type of scaling. */
-               LOGARITHMIC /*!< Logarithmic type of scaling. */
-             };
+                LOGARITHMIC /*!< Logarithmic type of scaling. */
+              };
+
+  /*!
+   * This enumeration contains a set of elements defining
+   * what kind of value will be extracted from gauss points data.
+   */
+  enum GaussMetric {
+    AVERAGE, /*!< Average value (default). */
+    MINIMUM, /*!< Minimum value. */
+    MAXIMUM  /*!< Maximum value. */
+  };
 
   /*!
    * This enumeration contains a set of elements defining the
    * type of the %entity (topological units) constituting a mesh.
    */
-  enum Entity{ NODE, /*!< Node corresponds to a geometrical point. */
-               EDGE, /*!< Edge corresponds to a geometrical line connecting two points. */
-              FACE, /*!< Face corresponds to a geometrical plane bounded by several lines. */
-              CELL  /*!< Cell is a volumic element of a mesh */
-              };
+  enum Entity {
+    NODE, /*!< Node corresponds to a geometrical point. */
+    EDGE, /*!< Edge corresponds to a geometrical line connecting two points. */
+    FACE, /*!< Face corresponds to a geometrical plane bounded by several lines. */
+    CELL, /*!< Cell is a volumic element of a mesh */
+    NONE  /*!< Indicates undefined entity value */
+  };
+
+  /*!
+   * Marker type (used for point rendering)
+   */
+  enum MarkerType {
+    MT_NONE,
+    MT_POINT,
+    MT_PLUS,
+    MT_STAR,
+    MT_O,
+    MT_X,
+    MT_O_POINT,
+    MT_O_PLUS,
+    MT_O_STAR,
+    MT_O_X,
+    MT_USER,
+    MT_POINT_SPRITE /*!< VISU specific */
+  };
+
+  /*!
+   * Marker scale (used for point rendering)
+   */
+  enum MarkerScale {
+    MS_NONE,
+    MS_10,
+    MS_15,
+    MS_20,
+    MS_25,
+    MS_30,
+    MS_35,
+    MS_40,
+    MS_45,
+    MS_50,
+    MS_55,
+    MS_60,
+    MS_65,
+    MS_70
+  };
+
+  /*!
+   * Tables' sort order
+   */
+  enum SortOrder {
+    AscendingOrder, /*!< The table items are sorted ascending */
+    DescendingOrder /*!< The table items are sorted descending */
+  };
+
+  /*!
+   * Tables' sort policy (specifies how empty cells are taken into account when sorting)
+   */
+  enum SortPolicy {
+    EmptyLowest,    /*!< Empty cells are considered as lowest values */
+    EmptyHighest,   /*!< Empty cells are considered as highest values */
+    EmptyFirst,     /*!< Empty cells are always first */
+    EmptyLast,      /*!< Empty cells are always last */
+    EmptyIgnore     /*!< Empty cells are ignored (stay at initial positions) */
+  };
 
   /*!
    * This enumeration contains a set of elements defining the type of the %VISU object.
@@ -57,13 +146,16 @@ module VISU {
     TCONTAINER, /*!< Container object used for storing a set of curve lines */
     TMESH, /*!< Meshing object */
     TSCALARMAP, /*!< Scalarmap 3D presentation object */
-    TISOSURFACE, /*!< Iso surface 3D presentation object */
+    TISOSURFACES, /*!< Iso surface 3D presentation object */
     TDEFORMEDSHAPE, /*!< Deformed shape 3D presentation object */
-    TSCALARMAPONDEFORMEDSHAPE, /*!< Scalar map on deformed shape 3D presentation object */
+    TSCALARMAPONDEFORMEDSHAPE, /*!< Scalar map on deformed shape 3D presentation object. It is obsolete. Use TDEFORMEDSHAPEANDSCALARMAP instead */
+    TDEFORMEDSHAPEANDSCALARMAP, /*!< Deformed shape and scalar map 3D presentation object */
     TGAUSSPOINTS, /*!< Gauss Points 3D presentation object */
     TPLOT3D, /*!< Plot3D 3D presentation object */
+    TPOINTMAP3D, /*!< 3D presentation for table object */
     TCUTPLANES, /*!< Cut planes 3D presentation object */
     TCUTLINES, /*!< Cut lines 3D presentation object */
+    TCUTSEGMENT, /*!< Cut segment 3D presentation object */
     TVECTORS, /*!< Vectors 3D presentation object */
     TSTREAMLINES, /*!< Streamlines 3D presentation object */
     TVISUGEN, /*!< %VISU generator used for performing operations with different %VISU objects */
@@ -79,9 +171,25 @@ module VISU {
     TFIELD, /*!< Field represents the results of calculations (it can be scalar or vector values), grouped together under one physical concept. */
     TTIMESTAMP, /*!<Time stamp represents a subfield: the results of calculations are taken in one definite moment. */
     TANIMATION, /*!< Represents Animation object. */
+    TEVOLUTION, /*!< Represents Evolution object. */
+    TCOLOREDPRS3DHOLDER, /*!< Colored 3D presentation holder */
+    TCOLOREDPRS3DCACHE, /*!< Colored 3D presentation cache */
+    TPART, /*!< MULTIPR: part of a mesh */
     TALL
   };
 
+  /* Clipping planes management */
+  struct ClippingPlane {
+    double X;
+    double Y;
+    double Z;
+    double dX;
+    double dY;
+    double dZ;
+    boolean isAuto;
+    string name;
+  };
+
   interface Base {
     /*!
      * Returns ID of the object.
@@ -113,59 +221,6 @@ module VISU {
   interface PrsObject : RemovableObject {
   };
 
-  //-------------------------------------------------------
-  /*! \brief %Table representation interface
-   *
-   * Presentation parameters of the %Table view.
-   */
-  interface Table : PrsObject {
-    /*!
-     * Sets the title of the table.
-     * \param theTitle String parameter defining the title of this table.
-     */
-    void SetTitle(in string theTitle);
-
-    /*!
-     * Gets the title of the table.
-     * \return A string value containing the title of the table.
-    */
-    string GetTitle();
-
-    /*!
-     * This enumeration contains a set of elements defining the orientation of the table.
-     */
-    enum Orientation {
-      HORIZONTAL, /*!< Horizontal orientation of the table. */
-      VERTIACAL   /*!< Vertical orientation of the table. */
-    };
-
-    /*!
-     * Sets orientation of the table.
-     * \param theOrientation This input parameter defines the orientation of the table.
-     *                       It is taken from the <VAR>Orientation</VAR> enumeration.
-     */
-    void SetOrientation(in Orientation theOrientation);
-
-    /*!
-     * Gets orientation of the table.
-     * \return Orientation of the table. The returned value will correspond
-     *         to one of the elements the <VAR>Orientation</VAR> enumeration.
-     */
-    Orientation GetOrientation();
-
-    /*!
-     * Gets the number of rows of the table.
-     * \return Long value corresponding to the number of rows of the table
-     */
-    long GetNbRows();
-
-    /*!
-     * Gets the number of columns of the table.
-     * \return Long value corresponding to the number of columns of the table
-     */
-    long GetNbColumns();
-  };
-
   //-------------------------------------------------------
   /*! \brief Interface of curve representation.
    *
@@ -205,15 +260,15 @@ module VISU {
      * which the curve is constructed on the graphics.
      */
     enum MarkerType { NONE,
-                     CIRCLE,
-                     RECTANGLE,
-                     DIAMOND,
-                     DTRIANGLE,
-                     UTRIANGLE,
-                     LTRIANGLE,
-                     RTRIANGLE,
-                     CROSS,
-                     XCROSS
+                      CIRCLE,
+                      RECTANGLE,
+                      DIAMOND,
+                      DTRIANGLE,
+                      UTRIANGLE,
+                      LTRIANGLE,
+                      RTRIANGLE,
+                      CROSS,
+                      XCROSS
     };
 
     /*!
@@ -258,6 +313,27 @@ module VISU {
      * \return Long value corresponding to the width of the curve line.
      */
     long GetLineWidth();
+
+    /*! Sets scaling coefficient of the curve.
+     * \param coef Double value defining the scale.
+     */
+    void SetScale(in double theCoef);
+
+    /*! Gets the scale coefficient of the curve lines.
+     */
+    double GetScale();
+
+    /*! Sets scaling coefficient of the curve to 1.0.
+     */
+    void RemoveScale();
+
+    /*!
+     * Switches on/off displaying of the deviation labels 
+     * on the curve.
+     * \param flag is used to switch on/off the deviation 
+     * labels on the curve.
+     */
+    void ShowDeviation(in boolean flag);
   };
 
   //-------------------------------------------------------
@@ -292,14 +368,59 @@ module VISU {
   };
 
   //-------------------------------------------------------
+  interface Result;
   /*! \brief 3D presentation interface
    *
    * This is a root class for all 3D presentations, which can be displayed in %VISU module.
    */
-  interface Prs3d : PrsObject, SALOME::GenericObj {
-    //interface Prs3d : PrsObject{
+  interface Prs3d : PrsObject, SALOME::GenericObj
+  {
+    /*!
+     * Move the 3D presentation according to the given offset parameters
+     */
     void SetOffset(in float theDx, in float theDy, in float theDz);
+
+    /*!
+     * Gets offset parameters for the 3D presentation
+     */
     void GetOffset(out float theDx, out float theDy, out float theDz);
+
+    /*!
+     * Set standard point marker for the object
+     * \param theType standard marker type
+     * \param theScale standard marker scale
+     */
+    void SetMarkerStd(in MarkerType theType, in MarkerScale theScale);
+
+    /*!
+     * Set custom point marker for the object. The texture can be added
+     * by LoadTexture() function
+     * \param theTextureId texture ID
+     */
+    void SetMarkerTexture(in long theTextureId);
+
+    /*!
+     * Get type of the point marker assigned to the object
+     * \return current marker type (MT_NONE if no marker is set)
+     */
+    MarkerType GetMarkerType();
+
+    /*!
+     * Get scale of the point marker assigned to the object
+     * \return current marker scale (MS_NONE if no marker is set)
+     */
+    MarkerScale GetMarkerScale();
+
+    /*!
+     * Get texture idenifier of the point marker assigned to the object
+     * \return marker texture ID (0 if no marker set)
+     */
+    long GetMarkerTexture();
+
+    /*!
+     * Gets memory size actually used by the presentation (Mb).
+     */
+    float GetMemorySize();
   };
 
   /*!
@@ -307,11 +428,21 @@ module VISU {
    * type of presentation of the mesh.
    */
   enum PresentationType{ POINT,
-                        WIREFRAME,
-                        SHADED,
-                        INSIDEFRAME,
-                        SURFACEFRAME,
-                        SHRINK
+                         WIREFRAME,
+                         SHADED,
+                         INSIDEFRAME,
+                         SURFACEFRAME,
+                         FEATURE_EDGES,
+                         SHRINK
+  };
+
+  /*!
+   * This enumeration contains a set of elements defining the
+   * type of presentation of the 2D quadratic mesh elements.
+   */
+  enum Quadratic2DPresentationType{
+    LINES,
+    ARCS
   };
 
   /*! \brief Interface of the mesh.
@@ -365,6 +496,32 @@ module VISU {
      * \return The type of representation of the mesh.
      */
     PresentationType GetPresentationType();
+
+
+    /*!
+     * Sets the type of representation of a 2D quadratic mesh elements.
+     * \param theType The type of representation of 2D quadratic mesh elements.
+     *                This parameter is taken from
+     *                      <VAR>Quadratic2DPresentationType</VAR> enumeration.
+     */
+    void SetQuadratic2DPresentationType(in Quadratic2DPresentationType theType);
+
+    /*!
+     * Gets the type of representation of the 2D quadratic mesh elements.
+     * \return The type of representation of the 2D quadratic mesh elements.
+     */
+    Quadratic2DPresentationType GetQuadratic2DPresentationType();
+
+    /*!
+     * Switches shrink mode of presentation
+     * Note: SetPresentationType(SHRINK) is same as SetShrink(True)
+     */
+    void SetShrink(in boolean toShrink);
+
+    /*!
+     * Returns current state of shrink mode
+     */
+    boolean IsShrank();
   };
 
 
@@ -377,14 +534,14 @@ module VISU {
    * bar is displayed along with each colored field presentation and serves for
    * consulting the correspondance between colors and data values.
    */
-  interface ColoredPrs3d : Prs3d {
-    /*! Sets the method of coloring of the elements composing a 3D presentation.
-     */
-    void SetScalarMode(in long theScalarMode);
-
-    /*! Gets the method of coloring of the elements composing a 3D presentation.
+  interface ColoredPrs3dBase : Prs3d
+  {
+    /*!
+     * 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.
      */
-    long GetScalarMode();
+    void SetRange(in double theMin, in double theMax);
 
     /*!
      * Gets the min boundary of the scalar bar.
@@ -396,6 +553,26 @@ module VISU {
      */
     double GetMax();
 
+    /*!
+     * Sets scalar range that corresponds to the source data.
+     */
+    void SetSourceRange();
+
+    /*!
+     * Gets the min boundary of the scalar bar from source data.
+     */
+    double GetSourceMin();
+
+    /*!
+     * Gets the max boundary of the scalar bar from source data.
+     */
+    double GetSourceMax();
+
+    /*!
+     * Defines whether the scalar range corresponds to the source data or not.
+     */
+    boolean IsRangeFixed();
+
     /*! \brief Position of the scalar bar.
      *
      * Sets the position of the scalar bar origin on the screen.
@@ -446,7 +623,6 @@ module VISU {
      *         will be used for visualization of this presentable object.
      */
     long GetNbColors();
-
     /*!
      * Sets the number of labels which will be used for indication of color gradation
      * of the scalar bar.
@@ -461,6 +637,31 @@ module VISU {
      */
     long GetLabels();
 
+    /*! %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 Additional Interface for the %Colored 3D Presentations
+   *
+   */
+
+  interface ColoredPrs3d : ColoredPrs3dBase
+  {
     /*!
      * Sets the title of the scalar bar. By default - the name of the selected result is used.
      * \param theName String parameter defining the name of the scalar bar.
@@ -471,6 +672,177 @@ module VISU {
      * Gets the title of the scalar bar.
      */
     string GetTitle();
+
+    /*! Sets the method of coloring of the elements composing a 3D presentation.
+     */
+    void SetScalarMode(in long theScalarMode);
+
+    /*! Gets the method of coloring of the elements composing a 3D presentation.
+     */
+    long GetScalarMode();
+
+    /*!
+     * Set the visibility of a distribution curve.
+     * \param theIs is used to switch on/off the visibility of a distribution curve.
+     */
+    void SetIsDistributionVisible(in boolean theIs);
+
+    //! Gets current visibility of a distribution curve
+    boolean GetIsDistributionVisible();
+
+    //! Gets current filtering by scalars mode
+    boolean IsScalarFilterUsed();
+
+    void UseScalarFiltering( in boolean theUseScalarFilter );
+
+    /*!
+     * 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.
+     * \param theIsFilter  if true then filter by scalars.
+     */
+    void SetScalarFilterRange( in double theMin, in double theMax );
+
+    double GetScalarFilterMin();
+
+    double GetScalarFilterMax();
+
+    /*!
+     * Add group as geometry of presentation.
+     * \param theMeshName  - mesh name
+     * \param theGroupName - group name
+     */
+    void AddMeshOnGroup(in string theGroupName);
+
+    /*!
+     * PrsMerger method:
+     * Remove all groups.(The scalar map will be placed on all mesh).
+     */
+    void RemoveAllGeom();
+  };
+
+
+  //-------------------------------------------------------
+  interface View3D;
+  interface ColoredPrs3dCache;
+
+
+  //-------------------------------------------------------
+  /*! \brief %ColoredPrs3dHolder interface.
+   * Interface of 3d presentation's holder, which represents colored 3d presentations,
+   * created on fields. It is publishing in the object browser in a separate folder
+   * and can be controled by viewer's slider.
+   */
+  interface ColoredPrs3dHolder : PrsObject, SALOME::GenericObj
+  {
+    /*!
+     * Presentation input parameters.
+     */
+    struct BasicInput
+    {
+      Result myResult;
+      string myMeshName;
+      Entity myEntity;
+      string myFieldName;
+      long myTimeStampNumber;
+    };
+
+    /*!
+     * Apply input parameters to last visited presentation in the cache.
+     */
+    boolean Apply(in ColoredPrs3d thePrs3d,
+                  in BasicInput theInput,
+                  in View3D theView3D);
+
+    /*!
+     * Gets the last visited presentation in the cache.
+     */
+    ColoredPrs3d GetDevice();
+
+    /*!
+     * Gets type of the managed presentations.
+     */
+    VISUType GetPrsType();
+
+    /*! Defines timestamp representation.
+     */
+    struct TimeStampInfo
+    {
+      string myTime;
+      long myNumber;
+    };
+
+    /*! Defines representation range of timestamps.
+     */
+    typedef sequence<TimeStampInfo> TimeStampsRange;
+
+    /*!
+     * Gets TimeStampsRange information from the last visited presentation.
+     */
+    TimeStampsRange GetTimeStampsRange();
+
+    /*!
+     * Gets input parameters of the last visited presentation.
+     */
+    BasicInput GetBasicInput();
+
+    /*!
+     * Gets a %ColoredPrs3dCache, to which the holder belongs
+     */
+    ColoredPrs3dCache GetCache();
+
+    /*!
+     * Gets memory size actually used by the holder (Mb).
+     */
+    float GetMemorySize();
+  };
+
+
+  //-------------------------------------------------------
+  /*! \brief %ColoredPrs3dCache interface.
+   * This interface is responsible for memory management of 3d presentations.
+   * One cache corresponds to one study.
+   */
+  interface ColoredPrs3dCache : RemovableObject, SALOME::GenericObj
+  {
+    /*! This enumeration contains the cache memory modes. */
+    enum MemoryMode {
+      MINIMAL, /*!< Minimal memory mode (default behaviour). */
+      LIMITED  /*!< Limited memory mode (fixed memory size for presentations). */
+    };
+
+    /*! This enumeration defines how to enlarge the cache limited memory. */
+    enum EnlargeType {
+      NO_ENLARGE, /*!< No need to enlarge (default behaviour). */
+      ENLARGE,    /*!< Enlarge limited memory. */
+      IMPOSSIBLE  /*!< Impossible to enlarge (not enough free memory). */
+    };
+
+    /*! Sets a memory mode.*/
+    void SetMemoryMode(in MemoryMode theMode);
+
+    /*! Gets a memory mode.*/
+    MemoryMode GetMemoryMode();
+
+    /*! Sets a memory size for limited mode (Mb). */
+    void SetLimitedMemory(in float theMemorySize);
+
+    /*! Gets a memory size for limited mode (Mb). */
+    float GetLimitedMemory();
+
+    /*!
+     * Gets memory size actually used by the cache system (Mb).
+     */
+    float GetMemorySize();
+
+    /*! Creates %ColoredPrs3dHolder.*/
+    ColoredPrs3dHolder CreateHolder(in VISUType theType,
+                                    in ColoredPrs3dHolder::BasicInput theInput);
+
+    /*! Gets a memory which is required to create a holder. */
+    EnlargeType GetRequiredMemory(in VISUType theType,
+                                  in ColoredPrs3dHolder::BasicInput theInput,
+                                  out float theRequiredMemory);
   };
 
 
@@ -483,7 +855,8 @@ module VISU {
    * bar is displayed along with each colored field presentation and serves for
    * consulting the correspondance between colors and data values.
    */
-  interface ScalarMap : ColoredPrs3d {
+
+  interface ScaledPrs3d {
     /*!
      * 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.
@@ -494,31 +867,41 @@ module VISU {
      * Gets the type of scaling of the values reflected by this presentation.
      */
     Scaling GetScaling();
+  };
+
+  interface ScalarMap : ColoredPrs3d, ScaledPrs3d {
 
     /*!
-     * 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.
+     * Returns visibility state of scalar bar
      */
-    void SetRange(in double theMin, in double theMax);
+    boolean IsBarVisible();
 
-    /*! %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 visibility state of scalar bar
+     */
+    void SetBarVisible(in boolean theVisible);
 
     /*!
-     * 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.
+     * Sets the gauss metric for the presentation.
+     * \param theGaussMetric The value of this parameter is taken from the <VAR>GaussMetric</VAR> enumeration.
      */
-    void SetBarOrientation(in Orientation theOrientation);
+    void SetGaussMetric(in GaussMetric theGaussMetric);
 
     /*!
-     * Gets the type of orientation of the scalar bar (to provide backward compatibility).
+     * Gets the gauss metric of the presentation.
      */
-    Orientation GetBarOrientation();
+    GaussMetric GetGaussMetric();
+
+    /*!
+     * Sets the color of mesh links.
+     * \param theColor The color of the links. This parameter is taken from <VAR>Color</VAR> enumeration.
+     */
+    void SetLinkColor(in SALOMEDS::Color theColor);
+
+    /*!
+     * Gets the color of mesh links.
+     */
+    SALOMEDS::Color GetLinkColor();
   };
 
   //-------------------------------------------------------
@@ -527,24 +910,169 @@ module VISU {
    * Presentation parameters of the Gauss Points presentation.
    */
   //-------------------------------------------------------
-  interface GaussPoints : ColoredPrs3d {
-  };
+  interface GaussPoints : ColoredPrs3d
+  {
+    //! Set flag indicating which scalar bar is active.
+    void SetIsActiveLocalScalarBar(in boolean theFlag);
+
+    //! Get flag indicating which scalar bar is active.
+    boolean GetIsActiveLocalScalarBar();
+
+    //! Set flag indicating visibility of global scalar bar.
+    void SetIsDispGlobalScalarBar(in boolean theFlag);
+
+    //! Get flag indicating visibility of global scalar bar.
+    boolean GetIsDispGlobalScalarBar();
+
+    //! Set value of the distance between global and local scalar bars.
+    void SetSpacing(in double theSpacing);
+
+    //! Get value of the distance between global and local scalar bars.
+    double GetSpacing();
 
-  /*! \brief Deformed shape presentation interface
-   *
-   * Presentation parameters of the deformed shape presentation.
-   */
-  interface DeformedShape : ScalarMap {
     /*!
-     * Sets the scale of the presentatable object.
-     * \param theScale Double value defining the scale of this presentable object.
+     * Returns visibility state of scalar bar
      */
-    void SetScale(in double theScale);
+    boolean IsBarVisible();
 
     /*!
-     * Gets the scale of the presentatable object.
+     * Sets visibility state of scalar bar
      */
-    double GetScale();
+    void SetBarVisible(in boolean theVisible);
+
+    /*!
+     * Set the Multicolored mode.
+     * \param theIsColored is used to switch between Results and Geometry modes.
+     * Multiple colors are using when the presentation is
+     * drawing in the Results mode, one color - in the Geometry mode.
+     */
+    void SetIsColored(in boolean theIsColored);
+
+    //! Gets current color mode
+    boolean GetIsColored();
+
+    /*! Sets the color of this presentation in case of IsColored switched off.
+     * \param theColor The color of this presentation. This parameter
+     *                 is taken from the <VAR>Color</VAR> enumeration.
+     */
+    void SetColor(in SALOMEDS::Color theColor);
+
+    /*!
+     * When the Bicolor parameter is set to true, scalar bars are
+     * drawing with two colors : red color correspoonds to positive
+     * scalar values, blue color - to negative values.
+     */
+    void SetBiColor(in boolean theIsBiColor);
+
+    //! Get the Bicolor mode.
+    boolean GetBiColor();
+
+    //! Checks whether the Gauss Points will be deformed or not
+    boolean GetIsDeformed();
+
+    //! Apply deformation on the Gauss Points
+    void SetIsDeformed(in boolean theIsDeformed);
+
+    /*!
+     *  Sets the scale factor for scalar values
+     *  (how much corresponding mesh elements should be translated).
+     *  \param theScaleFactor The scaling factor.
+     */
+    void SetScaleFactor(in double theScaleFactor);
+
+    /*!
+     *  Gets the scale factor for scalar values.
+     *  (how much corresponding mesh elements is translated)
+     */
+    double GetScaleFactor();
+
+    /*!
+     * This enumeration contains a set of elements defining the type of representation of the vector head.
+     */
+    enum PrimitiveType {
+      SPRITE,
+      POINT,
+      SPHERE
+    };
+
+    //! Set type of the primitives which is used for drawing the Gauss Points
+    void SetPrimitiveType(in PrimitiveType thePrimitiveType);
+
+    //! Get type of the primitives which is used for drawing the Gauss Points
+    PrimitiveType GetPrimitiveType();
+
+    //! Sets Point Sprite clamp
+    void SetClamp(in double theClamp);
+
+    //! Gets Point Sprite clamp
+    double GetClamp();
+
+    //! Sets minimum size of Point Sprites
+    void SetMinSize(in double theMinSize);
+
+    //! Gets minimum size of Point Sprites
+    double GetMinSize();
+
+    //! Sets maximum size of Point Sprites
+    void SetMaxSize(in double theMaxSize);
+
+    //! Gets maximum size of Point Sprites
+    double GetMaxSize();
+
+    //! Sets magnification for Point Sprites
+    void SetMagnification(in double theMagnification);
+
+    //! Gets magnification for Point Sprites
+    double GetMagnification();
+
+    //! Sets the increment of changing Magnification parameter
+    void SetMagnificationIncrement(in double theIncrement);
+
+    //! Gets the increment of changing Magnification parameter
+    double GetMagnificationIncrement();
+
+    //! Sets Point Sprites size
+    void SetGeomSize(in double theGeomSize);
+
+    //! Sets size of Point Sprite
+    double GetGeomSize();
+
+    //! Get path to the image using for Main Point Sprite texture
+    string GetMainTexture();
+
+    //! Get path to the image using for Alpha Point Sprite texture
+    string GetAlphaTexture();
+
+    //! Points Main and AlphaMask images to be used by Point Sprites
+    void SetTextures(in string theMainTexture, in string theAlphaTexture);
+
+    //! Sets Point Sprite Alpha threshold
+    void SetAlphaThreshold(in double theAlphaThreshold);
+
+    //! Gets Point Sprite Alpha threshold
+    double GetAlphaThreshold();
+
+    //! Sets resolution of the Geometrical Sphere
+    void SetResolution(in long theResolution);
+
+    //! Sets resolution of the Geometrical Sphere
+    long GetResolution();
+
+    //! Sets how many faces of can be drawn in the Geometrical Sphere primitive mode
+    void SetFaceLimit(in long theFaceLimit);
+
+    //! Defines how many faces of can be drawn in the Geometrical Sphere primitive mode
+    long GetFaceLimit();
+
+
+  };
+
+
+  /*! \brief MonoColor presentation presentation interface
+   *
+   * Presentation parameters of the MonoColor presentation.
+   */
+  interface MonoColorPrs : ScalarMap {
 
     /*! This boolean method returns True if this deformed shape presentation is colored.
      */
@@ -568,26 +1096,89 @@ module VISU {
     void SetColor(in SALOMEDS::Color theColor);
   };
 
+
+  /*! \brief Deformed shape presentation interface
+   *
+   * Presentation parameters of the deformed shape presentation.
+   */
+  interface DeformedShape : MonoColorPrs
+  {
+    /*!
+     * Sets the scale of the presentatable object.
+     * \param theScale Double value defining the scale of this presentable object.
+     */
+    void SetScale(in double theScale);
+
+    /*!
+     * Gets the scale of the presentatable object.
+     */
+    double GetScale();
+
+  };
+
   //-------------------------------------------------------
-  /*! \brief Scalar Map on Deformed shape presentation interface
+  /*! \brief Deformation interface
    *
-   * Presentation parameters of the scalar map on deformed shape presentation.
+   * This is base interface for building of the deformed presentations
    */
-  interface ScalarMapOnDeformedShape : ScalarMap {
-    
+  interface Deformation{
     /*!
-     * Sets the source ranges of pipeline
+     * Sets the scale of the presentatable object.
+     * \param theScale Double value defining the scale of this presentable object.
      */
-    void SetSourceRange(in double theMinRange,in double theMaxRange);
+    void SetScale(in double theScale);
+
+    /*!
+     * Gets the scale of the presentatable object.
+     */
+    double GetScale();
+
+    /*!
+     * Sets the vectorial field
+     * \param theEntity    - entity of vectorial field
+     * \param theFieldName - the name of vectorial field
+     */
+    void SetVectorialField(in Entity theEntity,
+                           in string theFieldName);
+
+    /*!
+     * Get vectorial entity
+     */
+    Entity GetVectorialFieldEntity();
+
+    /*!
+     * Get scalar field name
+     */
+    string GetVectorialFieldName();
+
+  };
+
+  //-------------------------------------------------------
+  /*! \brief OptionalDeformation interface
+   *
+   * This is interface for switch on/off of the deformation of the presentation
+   */
+  interface OptionalDeformation : Deformation{
+
     /*!
-     * Gets the minimum source range of pipeline
+     * Sets the deformation flag of the presentatable object.
+     * \param theFlag Boolean value defining the deformation flag of this presentable object.
      */
-    double GetSourceRangeMin();
+    void UseDeformation(in boolean theFlag);
+
     /*!
-     * Gets the maximum source range of pipeline
+     * Gets the deformation flag of the presentatable object.
      */
-    double GetSourceRangeMax();
-    
+    boolean IsDeformed();
+  };
+
+  //-------------------------------------------------------
+  /*! \brief Scalar Map on Deformed shape presentation interface
+   *
+   * Presentation parameters of the scalar map on deformed shape presentation.
+   */
+  interface DeformedShapeAndScalarMap : ScalarMap {
+
     /*!
      * Sets the scale of the presentatable object.
      * \param theScale Double value defining the scale of this presentable object.
@@ -601,15 +1192,32 @@ module VISU {
 
     /*!
      * Sets the scalar field
-     * \param theMeshName  - mesh name
-     * \param theFieldName - the name of scalar field
-     * \param theIteration - the iteration number for scalar field
      * \param theEntity    - entity of scalar field
+     * \param theFieldName - the name of scalar field
+     * \param theTimeStampNumber - the timestamp number for the scalar field
+     */
+    void SetScalarField(in Entity theEntity,
+                        in string theFieldName,
+                        in long theTimeStampNumber);
+
+
+    /*!
+     * Get scalar entity
+     */
+    Entity GetScalarEntity();
+
+    /*!
+     * Get scalar field name
      */
-    void SetScalarField(in string theMeshName,in string theFieldName,
-                       in long theIteration,in Entity theEntity);
+    string GetScalarFieldName();
 
+    /*!
+     * Get timestamp number for the scalar field
+     */
+    long GetScalarTimeStampNumber();
   };
+
+
   //-------------------------------------------------------
   /*!
    *  \brief Plot3D interface
@@ -618,14 +1226,51 @@ module VISU {
    *  consists of deforming initial planar mesh according to values assigned to the mesh elements.
    *  If mesh not planar but volumic one, it is possible to generate intermediate planar mesh.
    */
-  interface Plot3D : ScalarMap {
+  interface Plot3dBase {
+    /*!
+     *  Sets the scale factor for scalar values
+     *  (how much corresponding mesh elements should be translated).
+     *  \param theScaleFactor The scaling factor.
+     */
+    void SetScaleFactor (in double theScaleFactor);
+
+    /*!
+     *  Gets the scale factor for scalar values.
+     *  (how much corresponding mesh elements is translated)
+     */
+    double GetScaleFactor();
+
+    /*!
+     *  Sets presentation type: contour or surface.
+     *  \param theIsContourPrs Define, whether presentation type is contour.
+     */
+    void SetContourPrs (in boolean theIsContourPrs );
+
+    /*!
+     *  Returns true if presentation type is contour.
+     */
+    boolean GetIsContourPrs();
+
+    /*!
+     *  Sets the number of contours.
+     *  \param theNb The number of contours.
+     */
+    void SetNbOfContours (in long theNb);
+
+    /*!
+     *  Gets the number of contours.
+     */
+    long GetNbOfContours();
+  };
+
+  interface Plot3D : ScalarMap, Plot3dBase {
     /*!
      *  This enumeration contains a set of elements defining
      *  the type of orientation in 3D space of the cutting plane.
      */
     enum Orientation { XY,   /*!< The object is located in the plane formed by X and Y axis. */
-                      YZ,   /*!< The object is located in the plane formed by Y and Z axis. */
-                      ZX }; /*!< The object is located in the plane formed by Z and X axis. */
+                       YZ,   /*!< The object is located in the plane formed by Y and Z axis. */
+                       ZX }; /*!< The object is located in the plane formed by Z and X axis. */
 
     /*!
      *  Sets the orientation in 3D space of cutting plane for the presentation.
@@ -661,7 +1306,7 @@ module VISU {
      *  \param theIsRelative Define, whether the input position is relative.
      */
     void SetPlanePosition (in double  thePlanePosition,
-                          in boolean theIsRelative);
+                           in boolean theIsRelative);
 
     /*!
      *  Gets the position of the cutting plane
@@ -672,41 +1317,99 @@ module VISU {
      *  Returns true if a position of cutting plane is relative
      */
     boolean IsPositionRelative();
+  };
 
+ //-------------------------------------------------------
+  /*! \brief %Table representation interface
+   *
+   * Presentation parameters of the %Table view.
+   */
+  interface Table : PrsObject {
     /*!
-     *  Sets the scale factor for scalar values
-     *  (how much corresponding mesh elements should be translated).
-     *  \param theScaleFactor The scaling factor.
+     * Sets the title of the table.
+     * \param theTitle String parameter defining the title of this table.
      */
-    void SetScaleFactor (in double theScaleFactor);
+    void SetTitle(in string theTitle);
 
     /*!
-     *  Gets the scale factor for scalar values.
-     *  (how much corresponding mesh elements is translated)
+     * Gets the title of the table.
+     * \return A string value containing the title of the table.
+    */
+    string GetTitle();
+
+    /*!
+     * This enumeration contains a set of elements defining the orientation of the table.
      */
-    double GetScaleFactor();
+    enum Orientation {
+      HORIZONTAL, /*!< Horizontal orientation of the table. */
+      VERTIACAL   /*!< Vertical orientation of the table. */
+    };
 
     /*!
-     *  Sets presentation type: contour or surface.
-     *  \param theIsContourPrs Define, whether presentation type is contour.
+     * Sets orientation of the table.
+     * \param theOrientation This input parameter defines the orientation of the table.
+     *                       It is taken from the <VAR>Orientation</VAR> enumeration.
      */
-    void SetContourPrs (in boolean theIsContourPrs );
+    void SetOrientation(in Orientation theOrientation);
 
     /*!
-     *  Returns true if presentation type is contour.
+     * Gets orientation of the table.
+     * \return Orientation of the table. The returned value will correspond
+     *         to one of the elements the <VAR>Orientation</VAR> enumeration.
      */
-    boolean GetIsContourPrs();
+    Orientation GetOrientation();
 
     /*!
-     *  Sets the number of contours.
-     *  \param theNb The number of contours.
+     * Gets the number of rows of the table.
+     * \return Long value corresponding to the number of rows of the table
      */
-    void SetNbOfContours (in long theNb);
+    long GetNbRows();
 
     /*!
-     *  Gets the number of contours.
+     * Gets the number of columns of the table.
+     * \return Long value corresponding to the number of columns of the table
      */
-    long GetNbOfContours();
+    long GetNbColumns();
+
+    /*!
+     * Sorts the specified row of the table.
+     * \param theRow Index of the row to sort
+     * \param theSortOrder Sort order (see <VAR>SortOrder</VAR> enumeration)
+     * \param theSortPolicy Sort policy (see <VAR>SortPolicy</VAR> enumeration)
+     */
+    void SortRow(in long theRow, in SortOrder theSortOrder, in SortPolicy theSortPolicy);
+
+    /*!
+     * Sorts the specified column of the table.
+     * \param theRow Index of the column to sort
+     * \param theSortOrder Sort order (see <VAR>SortOrder</VAR> enumeration)
+     * \param theSortPolicy Sort policy (see <VAR>SortPolicy</VAR> enumeration)
+     */
+    void SortColumn(in long theColumn, in SortOrder theSortOrder, in SortPolicy theSortPolicy);
+
+    /*!
+     * Sorts the table by the specified row.
+     * \param theRow Index of the row, by which the table has to be sort
+     * \param theSortOrder Sort order (see <VAR>SortOrder</VAR> enumeration)
+     * \param theSortPolicy Sort policy (see <VAR>SortPolicy</VAR> enumeration)
+     */
+    void SortByRow(in long theRow, in SortOrder theSortOrder, in SortPolicy theSortPolicy);
+
+    /*!
+     * Sorts the table by the specified column.
+     * \param theColumn Index of the column, by which the table has to be sort
+     * \param theSortOrder Sort order (see <VAR>SortOrder</VAR> enumeration)
+     * \param theSortPolicy Sort policy (see <VAR>SortPolicy</VAR> enumeration)
+     */
+    void SortByColumn(in long theColumn, in SortOrder theSortOrder, in SortPolicy theSortPolicy);
+  };
+
+  //-------------------------------------------------------
+  /*! \brief %PointMap3d representation interface
+   *
+   * Presentation parameters of the %Table Point Map in 3d view.
+   */
+  interface PointMap3d : ColoredPrs3dBase, ScaledPrs3d, Plot3dBase, Table {
   };
 
   //-------------------------------------------------------
@@ -716,14 +1419,14 @@ module VISU {
    * consists of cutting your initial mesh by a definite number of planes. As the
    * result you will see these planes which will be cutted by the borders of the mesh.
    */
-  interface CutPlanes : ScalarMap {
+  interface CutPlanes : ScalarMap, OptionalDeformation {
     /*!
      * This enumeration contains a set of elements defining the type of orientation in 3D space
      * of the cut planes.
      */
     enum Orientation {XY, /*!< The object is located in the plane formed by X and Y axis. */
                       YZ, /*!< The object is located in the plane formed by Y and Z axis. */
-                     ZX}; /*!< The object is located in the plane formed by Z and X axis. */
+                      ZX}; /*!< The object is located in the plane formed by Z and X axis. */
 
     /*!
      * Sets the type of orientation in 3D space of cut planes presentation.
@@ -803,6 +1506,42 @@ module VISU {
     long GetNbPlanes();
   };
 
+  //-------------------------------------------------------
+  /*! \brief Base interface for Cut Lines and Cut Segment tools
+   *
+   */
+  interface CutLinesBase : ScalarMap {
+    /*!
+     * Sets the number of cut lines.
+     * \param theNb The number of cut lines.
+     */
+    void SetNbLines(in long theNb);
+
+    /*!
+     * Gets the number of cut lines.
+     */
+    long GetNbLines();
+
+    /*! Invert all curves of corresponding table
+     * \param theInvert - Invert all curves, if value is TRUE, else not.
+     */
+    void SetAllCurvesInverted(in boolean theInvert);
+
+    /*! Checks the orientation of all curves
+     * \retval TRUE - if all curves are inverted, else FALSE
+     */
+    boolean IsAllCurvesInverted();
+
+    /*! Sets values which cutlines would be shown: aboslute or relative values
+     * \param theAbsLength - boolean value, TRUE or false.
+     */
+    void SetUseAbsoluteLength(in boolean theAbsLength);
+
+    /*! Checks values of cutlines: using aboslute or relative values
+     */
+    boolean IsUseAbsoluteLength();
+  };
+
   //-------------------------------------------------------
   /*! \brief Cut lines presentation.
    *
@@ -818,7 +1557,7 @@ module VISU {
    *      operation is a regular array of lines in space, belonging to the same plane
    *      and having the same orientation. They are located inside or on the mesh.
    */
-  interface CutLines : ScalarMap {
+  interface CutLines : CutLinesBase {
     /*!
      * Sets the type of orientation in 3D space of the base plane of a cut lines presentation.
      * \param theOrientation The orientation of the base plane in 3D space.
@@ -938,17 +1677,48 @@ module VISU {
      * \return True if this cutting plane has default position.
      */
     boolean IsDefaultPosition(in long thePlaneNumber);
+  };
 
+  //-------------------------------------------------------
+  /*! \brief Cut segment presentation.
+   *
+   * Presentation parameters of a Cut segment presentation.
+   * Cut Segment is a simplified variant of Cut Lines presentation, which is used
+   * to display a single line instead of set of them. Axis of this line is defined
+   * by coordinates of two points in 3D space.
+   */
+  interface CutSegment : CutLinesBase {
     /*!
-     * Sets the number of cut lines.
-     * \param theNb The number of cut lines.
+     * Sets coordinates of the first point of axis of the segment.
+     * \param theX X coordinate of the point
+     * \param theY Y coordinate of the point
+     * \param theZ Z coordinate of the point
      */
-    void SetNbLines(in long theNb);
+    void SetPoint1(in double theX, in double theY, in double theZ);
 
     /*!
-     * Gets the number of cut lines.
+     * Gets coordinates of the first point of axis of the segment.
+     * \param theX X coordinate of the point
+     * \param theY Y coordinate of the point
+     * \param theZ Z coordinate of the point
      */
-    long GetNbLines();
+    void GetPoint1(out double theX, out double theY, out double theZ);
+
+    /*!
+     * Sets coordinates of the second point of axis of the segment.
+     * \param theX X coordinate of the point
+     * \param theY Y coordinate of the point
+     * \param theZ Z coordinate of the point
+     */
+    void SetPoint2(in double theX, in double theY, in double theZ);
+
+    /*!
+     * Gets coordinates of the second point of axis of the segment.
+     * \param theX X coordinate of the point
+     * \param theY Y coordinate of the point
+     * \param theZ Z coordinate of the point
+     */
+    void GetPoint2(out double theX, out double theY, out double theZ);
   };
 
   /*! \brief Interface of the stream lines representation
@@ -960,13 +1730,13 @@ module VISU {
    * Streamlines are used to convey the structure of a vector field.
    * Usually streamlines are created to explore the most interesting features in the field.
    */
-  interface StreamLines : DeformedShape {
+  interface StreamLines : MonoColorPrs {
     /*! This enumerations contains a set of elements necessary
      * for definition of direction of the stream lines.
      */
     enum Direction{ FORWARD,
-                   BACKWARD,
-                   BOTH
+                    BACKWARD,
+                    BOTH
     };
 
     /*! Sets the parameters of the stream lines presentation.
@@ -990,11 +1760,11 @@ module VISU {
      * \return True if all parameters are properly set.
      */
     boolean SetParams(in double theIntStep,
-                     in double thePropogationTime,
-                     in double theStepLength,
-                     in Prs3d thePrs3d,
-                     in double thePercents,
-                     in Direction theDirection);
+                      in double thePropogationTime,
+                      in double theStepLength,
+                      in Prs3d thePrs3d,
+                      in double thePercents,
+                      in Direction theDirection);
 
     /*! Gets the value of integration step of the stream lines presentation.
      */
@@ -1030,7 +1800,7 @@ module VISU {
    * values on the cells and on the basis of them constructs
    * isobaric surfaces, which form this presentation.
    */
-  interface IsoSurfaces : ScalarMap {
+  interface IsoSurfaces : MonoColorPrs {
     /*!
      * Sets the number of isometric surfaces.
      * \param theNb A long value defining the number of isometric surfaces
@@ -1042,6 +1812,22 @@ module VISU {
      * Gets the number of isometric surfaces
      */
     long GetNbSurfaces();
+
+    /*!
+     * Returns TRUE if labels with values are shown
+     */
+    boolean IsLabeled();
+
+    /*!
+     * Set show or not value labels
+     */
+    void ShowLabels(in boolean theShow, in long theNb);
+
+    /*!
+     * Returns Nb of labels per surface
+     */
+   long GetNbLabels();
+
   };
 
   //-------------------------------------------------------
@@ -1118,11 +1904,23 @@ module VISU {
    * <BR><B>Time stamp</B> represents a subfield: the results
    * of calculations are taken in one definite moment.
    */
-  interface Animation : Base {
+  interface Animation : Base
+  {
+    /*!
+   * This enumeration contains a set of available animation modes.
+   */
+    enum AnimationMode{ PARALLEL, /*!< parallel mode of animation. */
+                        SUCCESSIVE /*!< succcessive mode of animation. */
+    };
+
     /*! Defines the field which will be used as a base for generation of the animation.
      * \param theObject The %SObject corresponding to the field.
      */
-    void addField(in SALOMEDS::SObject theObject);
+    boolean addField(in SALOMEDS::SObject theObject);
+
+    /*! Remove all fields from Animation object.
+     */
+    void clearFields();
 
     /*! Generates presentations on the basis of the field.
      * \param theFieldNum The number of the field, which will be used
@@ -1197,11 +1995,15 @@ module VISU {
 
     /*! Sets the type of presentation (vectors, deformed shape etc.)
      *  which will be generated by the method <VAR>generatePresentations</VAR>.
+     *  \note \c addField() method should be called before in order to add field
+     *  with number theFieldNum.
      */
     void setPresentationType(in long theFieldNum, in VISUType theType);
 
     /*! Gets the type of presentation (vectors, deformed shape etc.) which will
-     * be generated by the method <VAR>generatePresentations</VAR>.
+     *  be generated by the method <VAR>generatePresentations</VAR>.
+     *  \note \c addField() method should be called before in order to add field
+     *  with number theFieldNum.
      */
     VISUType getPresentationType(in long theFieldNum);
 
@@ -1244,6 +2046,26 @@ module VISU {
      */
     boolean isRangeDefined();
 
+    /*! Sets the sequence of the animation. The sequence is defined on the basis of
+     *  the time stamps of the field which have been used for generation of the animation.
+     *  This method allows to set the sequence of generated frames.
+     *  If this method is not used, the animation will be generated
+     *  on the basis of all time stamps contained in the field.
+     *  Format of the sequence: '1,9,2-5,7-8'
+     *  \param theSequence The sequence of time stamps indices which will be used for generation of the animation.
+     */
+    void setAnimationSequence(in string theSequence);
+
+    /*! Gets the animation sequence.
+     */
+    string getAnimationSequence();
+
+    /*! Returns True if the sequence of the animation has been defined
+     *  by the method <VAR>setAnimationSequence</VAR>. Otherwise
+     *  the animation will be generated on the basis of all time stamps contained in the field.
+     */
+    boolean isSequenceDefined();
+
     /*! Saves all the frames composing the animation into a definite directory.
      *  Pictures format is set with method <VAR>setDumpFormat()</VAR>.
      *  \param thePath The directory where all the frames will be saved.
@@ -1259,6 +2081,16 @@ module VISU {
      */
     string setDumpFormat(in string theFormat);
 
+    /*! Set frequency of timestamps used to generate AVI file.
+     *  \param theFrequency The frequency of timestamps to use.
+     */
+    void setTimeStampFrequency(in long theFrequency);
+
+    /*! Get frequency of timestamps used to generate AVI file.
+     *  \return The frequency of timestamps to use.
+     */
+    long getTimeStampFrequency();
+
     /*! Returns True, if the playback of the animation is cycling.
      */
     boolean isCycling();
@@ -1287,6 +2119,9 @@ module VISU {
      */
     void setCycling(in boolean theCycle);
 
+    boolean isCleaningMemoryAtEachFrame();
+    void setCleaningMemoryAtEachFrame(in boolean theCycle);
+
     SALOMEDS::SObject publishInStudy();
 
     void saveAnimation();
@@ -1294,15 +2129,80 @@ module VISU {
     void restoreFromStudy(in SALOMEDS::SObject theSObj);
 
     boolean isSavedInStudy();
+
+    /*!
+     * Sets the animation mode.
+     * \param theMode The value of this parameter is taken from the <VAR>AnimationMode</VAR> enumeration.
+     */
+    void setAnimationMode(in AnimationMode theMode);
+
+    /*!
+     * Gets the animation mode.
+     */
+    AnimationMode getAnimationMode();
+
+    /*!
+     * Apply the presentation properties to all fields. The exception is raised in the following cases:
+     * 1) presentations for the given field is not yet created;
+     * 2) invalid dynamic cast of the given presentation to VISU::ColoredPrs3d_i;
+     * 3) the MED file is not the same;
+     * 4) the mesh name is not the same;
+     * 5) the field name is not the same;
+     * 6) the entity is not the same.
+     */
+    void ApplyProperties(in long theFieldNum, in ColoredPrs3d thePrs)
+      raises (SALOME::SALOME_Exception);
+  };
+
+
+  //-------------------------------------------------------
+  interface XYPlot;
+
+  //-------------------------------------------------------
+  /*! \brief Interface %Evolution
+   *
+   */
+  interface Evolution : Base
+  {
+    /*!
+     * Defines the field which will be used as a base for generation of the evolution.
+     * \param theObject The %SObject corresponding to the field.
+     */
+    boolean setField(in SALOMEDS::SObject theObject);
+
+    /*!
+     * Sets id of the point for which the evolution will be generated.
+     * \param thePointId id of the point.
+     */
+    void setPointId(in long thePointId);
+
+    /*!
+     * Sets id of the component for which the evolution will be generated.
+     * \param thePointId id of the component.
+     */
+    void setComponentId(in long theComponentId);
+
+    /*!
+     * Shows the evolution.
+     */
+    boolean showEvolution();
+
+    /*!
+     * Restores the evolution from study.
+     * \param theSObj the study object from which the evolution should be restored.
+     */
+    void restoreFromStudy(in SALOMEDS::SObject theSObj);
   };
 
+
   /*! \brief Interface %Result
    *
    * This interface serves for inner representation of data generated
    * in other sources (MED object or file). This data is needed
    * for further construction of graphical presentations.
    */
-  interface Result : RemovableObject, SALOME::GenericObj {
+  interface Result : RemovableObject, SALOME::GenericObj
+  {
     /*! Reads all data from the corresponding sources. By default the data is loaded on demand.
      */
     boolean BuildAll();
@@ -1330,11 +2230,75 @@ module VISU {
 
     /*! Allow to check is min / max calculation over field's components already perfrormed or not */
     boolean IsMinMaxDone();
+
+    /*! Allow to check is corresponding multi resolution structure already loaded or not */
+    boolean IsPartsDone();
+
+    typedef sequence<Entity> Entities;
+
+    typedef string EntityName;
+
+    typedef sequence<EntityName> EntityNames;
+
+    typedef long TimeStampNumber;
+
+    typedef sequence<TimeStampNumber> TimeStampNumbers;
+
+    enum Resolution {
+      FULL,
+      MEDIUM,
+      LOW,
+      HIDDEN
+    };
+
+    typedef sequence<Resolution> Resolutions;
+
+    /*! Gets existing mesh names */
+    EntityNames GetMeshNames();
+
+    /*! Gets existing mesh entites for the given mesh name */
+    Entities GetEntities(in EntityName theMeshName);
+
+    /*! Gets existing families for the given mesh name and entity */
+    EntityNames GetFamilies(in EntityName theMeshName, in Entity theEntity);
+
+    /*! Gets existing families for the given mesh name */
+    EntityNames GetGroups(in EntityName theMeshName);
+
+    /*! Gets existing fields for the given mesh name and entity */
+    EntityNames GetFields(in EntityName theMeshName, in Entity theEntity);
+
+    /*! Gets number of components for the given mesh name, entity and name of field */
+    long GetNumberOfComponents(in EntityName theMeshName, in Entity theEntity, in EntityName theFieldName);
+
+    /*! Gets existing numbers of time stamps for the given mesh name, entity and name of field */
+    TimeStampNumbers GetTimeStampNumbers(in EntityName theMeshName, in Entity theEntity,
+                                         in EntityName theFieldName);
+
+    /*! Gets time values of time stamps for the given mesh name, entity and name of field */
+    double_array GetTimeStampValues(in EntityName theMeshName, in Entity theEntity, in EntityName theFieldName);
+
+    /*! Gets existing parts of multi resolution structure for the given mesh name */
+    EntityNames GetPartNames(in EntityName theMeshName);
+
+    /*! Gets available resolutions of multi resolution structure for the given mesh and part names */
+    Resolutions GetResolutions(in EntityName theMeshName, in EntityName thePartName);
+
+    /*! Gets current resolution of multi resolution structure for the given mesh and part names */
+    Resolution GetResolution(in EntityName theMeshName, in EntityName thePartName);
+
+    /*! Gets current resolution of multi resolution structure for the given mesh and part names */
+    void SetResolution(in EntityName theMeshName, in EntityName thePartName, in Resolution theResolution);
+
+    /*! Gets information about imported MED file */
+    SALOME_MED::MedFileInfo GetMEDFileInfo();
+
+    /*! Export MED file from temp object.  */
+    boolean ExportMED(in string theFileName);
   };
 
   //-------------------------------------------------------
   interface ViewManager;
-  interface View3D;
 
   /*! \brief %VISU_Gen interface
    *
@@ -1342,7 +2306,8 @@ module VISU {
    * post-processing presentations from given %Result and %Table object reference,
    * using the views provided by %ViewManager.
    */
-  interface VISU_Gen : Engines::Component, SALOMEDS::Driver, Base {
+  interface VISU_Gen : Engines::EngineComponent, SALOMEDS::Driver, Base
+  {
     /*! Sets a definite study to be current.
      */
     void SetCurrentStudy(in SALOMEDS::Study theStudy);
@@ -1358,9 +2323,10 @@ module VISU {
     ViewManager GetViewManager();
 
     /*!
-     * Imports tables from a file and create TableAttribute in Sudy
+     * Imports tables from a file and create TableAttribute in Study
      */
-    SALOMEDS::SObject ImportTables(in string theFileName);
+    SALOMEDS::SObject ImportTables(in string theFileName,
+                                   in boolean theFirstStrAsTitle);
 
     /*!
      * Export table to a file
@@ -1407,18 +2373,18 @@ module VISU {
      * \param theNewName  Name to be given to the study object.
      */
     void RenameEntityInStudy(in Result theResult,
-                            in string theMeshName,
-                            in Entity theEntity,
-                            in string theNewName);
+                             in string theMeshName,
+                             in Entity theEntity,
+                             in string theNewName);
     void RenameFamilyInStudy(in Result theResult,
-                            in string theMeshName,
-                            in Entity theEntity,
-                            in string theSubMeshName,
-                            in string theNewName);
+                             in string theMeshName,
+                             in Entity theEntity,
+                             in string theSubMeshName,
+                             in string theNewName);
     void RenameGroupInStudy(in Result theResult,
-                           in string theMeshName,
-                           in string theSubMeshName,
-                           in string theNewName);
+                            in string theMeshName,
+                            in string theSubMeshName,
+                            in string theNewName);
 
     /*!
      * Creates a mesh on the basis of the data generated in other sources (MED object or file).
@@ -1436,7 +2402,7 @@ module VISU {
      * \param theEntity Type of entity where the field is defined.
      */
     Mesh FamilyMeshOnEntity(in Result theResult, in string theMeshName,
-                           in Entity theEntity, in string theFamilyName);
+                            in Entity theEntity, in string theFamilyName);
 
     /*!
      * Creates a mesh on the basis of a group of families.
@@ -1452,11 +2418,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     ScalarMap ScalarMapOnField(in Result theResult, in string theMeshName,
-                              in Entity theEntity, in string theFieldName,
-                              in double theIteration);
+                               in Entity theEntity, in string theFieldName,
+                               in long theTimeStampNumber);
 
     /*!
      * Creates a Gauss Points presentation.
@@ -1464,11 +2430,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     GaussPoints GaussPointsOnField(in Result theResult, in string theMeshName,
-                                  in Entity theEntity, in string theFieldName,
-                                  in double theIteration);
+                                   in Entity theEntity, in string theFieldName,
+                                   in long theTimeStampNumber);
 
     /*!
      * Creates a deformed shape presentation.
@@ -1476,11 +2442,23 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     DeformedShape DeformedShapeOnField(in Result theResult, in string theMeshName,
-                                      in Entity theEntity, in string theFieldName,
-                                      in double theIteration);
+                                       in Entity theEntity, in string theFieldName,
+                                       in long theTimeStampNumber);
+
+    /*!
+     * Creates a deformed shape presentation. This function is obsolete. Use DeformedShapeAndScalarMapOnField instead.
+     * \param theResult    Data generated in other sources. (MED object or file)
+     * \param theMeshName  One of the meshes presented in MED file
+     * \param theEntity    Type of entity where the field is defined
+     * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+     * \param theTimeStampNumber Number of iteration on the field
+     */
+    DeformedShapeAndScalarMap ScalarMapOnDeformedShapeOnField(in Result theResult, in string theMeshName,
+                                                              in Entity theEntity, in string theFieldName,
+                                                              in long theTimeStampNumber);
 
     /*!
      * Creates a deformed shape presentation.
@@ -1488,11 +2466,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
-    ScalarMapOnDeformedShape ScalarMapOnDeformedShapeOnField(in Result theResult, in string theMeshName,
-                                                            in Entity theEntity, in string theFieldName,
-                                                            in double theIteration);
+    DeformedShapeAndScalarMap DeformedShapeAndScalarMapOnField(in Result theResult, in string theMeshName,
+                                                               in Entity theEntity, in string theFieldName,
+                                                               in long theTimeStampNumber);
 
     /*!
      * Creates a vector presentation.
@@ -1500,11 +2478,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     Vectors VectorsOnField(in Result theResult, in string theMeshName,
-                          in Entity theEntity, in string theFieldName,
-                          in double theIteration);
+                           in Entity theEntity, in string theFieldName,
+                           in long theTimeStampNumber);
 
     /*!
      * Creates an iso surface presentation.
@@ -1512,11 +2490,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     IsoSurfaces IsoSurfacesOnField(in Result theResult, in string theMeshName,
-                                  in Entity theEntity, in string theFieldName,
-                                  in double theIteration);
+                                   in Entity theEntity, in string theFieldName,
+                                   in long theTimeStampNumber);
 
     /*!
      * Creates an stream lines presentation.
@@ -1524,11 +2502,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     StreamLines StreamLinesOnField(in Result theResult, in string theMeshName,
-                                  in Entity theEntity, in string theFieldName,
-                                  in double theIteration);
+                                   in Entity theEntity, in string theFieldName,
+                                   in long theTimeStampNumber);
 
     /*!
      * Creates a presentation of cut planes.
@@ -1536,11 +2514,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     CutPlanes CutPlanesOnField(in Result theResult, in string theMeshName,
-                              in Entity theEntity, in string theFieldName,
-                              in double theIteration);
+                               in Entity theEntity, in string theFieldName,
+                               in long theTimeStampNumber);
 
     /*!
      * Creates a presentation of cut lines.
@@ -1548,11 +2526,23 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     CutLines CutLinesOnField(in Result theResult, in string theMeshName,
-                            in Entity theEntity, in string theFieldName,
-                            in double theIteration);
+                             in Entity theEntity, in string theFieldName,
+                             in long theTimeStampNumber);
+
+    /*!
+     * Creates a presentation of cut segment.
+     * \param theResult    Data generated in other sources. (MED object or file)
+     * \param theMeshName  One of the meshes presented in MED file
+     * \param theEntity    Type of entity where the field is defined
+     * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
+     * \param theTimeStampNumber Number of iteration on the field
+     */
+    CutSegment CutSegmentOnField(in Result theResult, in string theMeshName,
+                                 in Entity theEntity, in string theFieldName,
+                                 in long theTimeStampNumber);
 
     /*!
      * Creates a Plot3D presentation.
@@ -1560,11 +2550,11 @@ module VISU {
      * \param theMeshName  One of the meshes presented in MED file
      * \param theEntity    Type of entity where the field is defined
      * \param theFieldName Group of data attributed to the %MESH. The data can be scalar or vector.
-     * \param theIteration Number of iteration on the field
+     * \param theTimeStampNumber Number of iteration on the field
      */
     Plot3D Plot3DOnField(in Result theResult, in string theMeshName,
-                        in Entity theEntity, in string theFieldName,
-                        in double theIteration);
+                         in Entity theEntity, in string theFieldName,
+                         in long theTimeStampNumber);
 
     /*!
      * Creates a table presentation.
@@ -1575,11 +2565,34 @@ module VISU {
     /*!
      * Creates a curve on the basis of points, whose values are taken from the table.
      * \param theTable  Table containing the data for construction of curves.
-     * \param HRow  Index of the row in the table:  abscissa of the point.
-     * \param VRow  Index of the row in the table:  ordinate of the point.
+     * \param theHRow   Index of the row in the table: abscissa of the point.
+     * \param theVRow   Index of the row in the table: ordinate of the point.
      */
     Curve CreateCurve(in Table theTable, in long theHRow, in long theVRow);
 
+    /*!
+     * Creates a curve on the basis of points, whose values are taken from the table.
+     * Each point has also assigned value, that will be shown as tooltip in Plot2d
+     * \param theTable  Table containing the data for construction of curves.
+     * \param theHRow   Index of the row in the table: abscissa of the point.
+     * \param theVRow   Index of the row in the table: ordinate of the point.
+     * \param theZRow   Index of the row in the table: assigned value (so-called as Z).
+     */
+    Curve CreateCurveWithZ( in Table theTable, in long theHRow, in long theVRow, in long theZRow );
+
+    /*!
+     * Creates a curve on the basis of points, whose values are taken from the table.
+     * Each point has also assigned value, that will be shown as tooltip in Plot2d.
+     * The curve can be displayed using right axis of Plot2d view.
+     * \param theTable  Table containing the data for construction of curves.
+     * \param theHRow   Index of the row in the table: abscissa of the point.
+     * \param theVRow   Index of the row in the table: ordinate of the point.
+     * \param theZRow   Index of the row in the table: assigned value (so-called as Z).
+     * \param theIsV2   Flag allowed to display the curve using right axis of Plot2d view.
+     */
+    Curve CreateCurveWithZExt( in Table theTable, in long theHRow, in long theVRow, in long theZRow,
+                               in boolean theIsV2 );
+
     /*!
      * Creates a presentation form containing an array of references to the curves.
      */
@@ -1590,9 +2603,70 @@ module VISU {
      */
     Animation CreateAnimation(in View3D theView3d);
 
+    /*! Creates an evolution in the XY plot.
+     * \param theXYPlot The XY plot, where the evolution will be rendered.
+     */
+    Evolution CreateEvolution(in XYPlot theXYPlot);
+
     void DeleteResult(in Result theResult);
 
     void DeletePrs3d(in Prs3d thePrs3d);
+
+    /*!
+     * Get or create %ColoredPrs3dCache object.
+     */
+    ColoredPrs3dCache GetColoredPrs3dCache(in SALOMEDS::Study theStudy);
+
+
+    /* Clipping planes management */
+
+    /*Create a clipping plane and return its ID (position in corresponded array)
+      Id of clipping plane could be changed after deletion of other clipping plane
+    */
+    long CreateClippingPlane(in double X, in double Y, in double Z,
+                             in double dX, in double dY, in double dZ,
+                             in boolean auto, in string name);
+
+    void EditClippingPlane(in long id, in double X, in double Y, in double Z,
+                             in double dX, in double dY, in double dZ,
+                             in boolean auto, in string name);
+
+    /* Returns clipping plane by its Id */
+    ClippingPlane GetClippingPlane(in long id);
+
+    /* Deletes clipping plane by its Id */
+    boolean DeleteClippingPlane(in long id);
+
+    /* Applyes a clipping plane with Id to presentation thePrs */
+    boolean ApplyClippingPlane(in Prs3d thePrs, in long id);
+
+    /* Detaches a clipping plane with Id from presentation thePrs */
+    boolean DetachClippingPlane(in Prs3d thePrs, in long id);
+
+
+    /* Get number of clipping planes */
+    long GetClippingPlanesNb();
+
+    /*! Converts set of VTK files to the one MED-file
+     * \param theVTKFiles sequence of VTK files
+     * \param out MED-file
+     * \param theMeshName mesh name. This parameter can be empty. In this case name
+              of mesh is equal vtk2med
+     * \param theTSNames values of time stamps. This array can be empty, in
+              this case values of time stamps will be generated automatically ( 0, 1, 2 ... )
+     * \return TRUE if operation has been completed successfully, FALSE otherwise
+     */
+    boolean VTK2MED( in string_array theVTKFiles,
+                     in string theMEDFile,
+                     in string theMeshName,
+                     in double_array theTStamps );
+
+    /*!
+     * Load texture from file
+     * \param theTextureFile texture file name
+     * \return unique texture identifier
+     */
+    long LoadTexture(in string theTextureFile);
   };
 
   /*! \brief %View interface
@@ -1601,8 +2675,8 @@ module VISU {
    * the following types: 3d, Table, XY plot.
    * %View interface is a base for all types of %view interfaces.
    */
-  interface View: Base {
-
+  interface View: Base, SALOME::GenericObj
+  {
     /*! \brief %ViewRepresentation enumeration
      *
      * displaying part ("ALL" isn't setable)
@@ -1916,6 +2990,24 @@ module VISU {
      */
     string SetPresentationType(in ScalarMap thePrs, in PresentationType thePrsType);
 
+
+    /*! Set representation type of 2D quadratic elements
+     *  of the given presentation in this view.
+     *  \param thePrs Object to set a representation type of 2D quadratic elements.
+     *  \param theType Representation type of 2D quadratic elements to be set to the given object.
+     *  \return Empty string in case of success, error description in case of failure.
+     */
+    string SetQuadratic2DPresentationType(in ScalarMap thePrs,in Quadratic2DPresentationType theType);
+
+
+    /*! Get representation type of the 2D quadratic mesh elements of given presentation in this view.
+     *  \param thePrs Object to get a representation type of 2D quadratic mesh elements.
+     *  \return <VAR>Quadratic2DPresentationType</VAR> Representation type of 2D quadratic mesh elements
+     *          in this view.
+     */
+    Quadratic2DPresentationType GetQuadratic2DPresentationType(in ScalarMap thePrs);
+
+
     /*! Get shrink state of the given presentation in this view.
      *  \param thePrs Object to get a shrink state of.
      *  \return TRUE if \a thePrs is shrinked in this view, FALSE overwise.
@@ -2082,10 +3174,10 @@ module VISU {
     /*! Set range of the 2D plot to XY axis of the 2D viewer.
      */
     void FitRange(in double xMin, in double xMax,
-                 in double yMin, in double yMax);
+                  in double yMin, in double yMax);
 
     void GetFitRanges(out double xMin,out double xMax,
-                     out double yMin,out double yMax);
+                      out double yMin,out double yMax);
   };
 
   //-------------------------------------------------------
@@ -2125,6 +3217,8 @@ module VISU {
      */
     void Destroy(in View theView);
   };
+
+
 };
 
 #endif