0024070: OpenGL capped object-level clipping planes
[occt.git] / src / V3d / V3d_View.cdl
index d2c8219..e9543ea 100755 (executable)
@@ -1,7 +1,23 @@
+-- Created on: 1992-01-15
+-- Created by: GG
+-- Copyright (c) 1992-1999 Matra Datavision
+-- Copyright (c) 1999-2012 OPEN CASCADE SAS
 --
--- File:        V3d_View.cdl
--- Created:     Wed Jan 15 14:47:42 1992
--- Author:      GG
+-- The content of this file is subject to the Open CASCADE Technology Public
+-- License Version 6.5 (the "License"). You may not use the content of this file
+-- except in compliance with the License. Please obtain a copy of the License
+-- at http://www.opencascade.org and read it completely before using this file.
+--
+-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+--
+-- The Original Code and all software distributed under the License is
+-- distributed on an "AS IS" basis, without warranty of any kind, and the
+-- Initial Developer hereby disclaims all such warranties, including without
+-- limitation, any warranties of merchantability, fitness for a particular
+-- purpose or non-infringement. Please see the License for the specific terms
+-- and conditions governing the rights and limitations under the License.
+
 -- Modified:    FMN - 24/12/97 -> Suppression GEOMLITE
 --              CQO - 24/12/97 -> BUC50037
 --              stt:25-02-98; S3558: ajout IfManageStandardEvent
 --              -> Add ConvertToGrid() methods,
 --                 the Compute() internal method become private.
 --              -> Add SetProjModel() method.
---      EUG - 25/01/00 : G003
---              -> Add methods SetAnimationMode() and
---                  AnimationMode()
---              -> Add methods SetComputedMode() and
---                  ComputedMode()
---                 Warning : SetDegenerateModeOn() and Off()
---                 become obsolete.
---              -> Add methods SetBackFacingModel() and
---                  BackFacingModel()
 --      VKH - 15/11/99 : G004
 --              -> Add method Dump()
 --      GG  - IMP210200
 --              -> Add Transparency() method
---
 --      THA  - 17/08/00 Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
 --              -> Add Print method (works only under Windows).
---
 --      GG  - IMP231100
 --              -> Add IsActiveLight() & IsActivePlane() methods
 --      SZV - IMP100701
 --              -> Add ToPixMap() method
 --              GG - RIC120302 Add NEW SetWindow method.
---
 --              SAV - 22/10/01
 --                              -> Add EnableDepthTest() & IsDepthTestEnabled().
 --              VSV - 28/05/02: ZBUFFER mode of Trihedron
---
 --              SAV - 23/12/02  -> Added methods to set background image
---
 --              NKV - 23/07/07  -> Define custom projection and model view matrixes
---
 --              NKV - 08/02/07  -> Add ConvertWithProj() method
---
----Copyright:   Matra Datavision 1992
---
 
-deferred class View from V3d
+class View from V3d inherits TShared from MMgt
 
         ---Purpose: Defines the application object VIEW for the
         --          VIEWER application.
@@ -76,11 +74,6 @@ deferred class View from V3d
         --              View->Move(10.,20.,0.,True)     (Starting motion)
         --              View->Move(15.,-5.,0.,False)    (Next motion)
 
-
-inherits
-
-        View from Viewer
-
 uses
 
         -- S3892
@@ -108,7 +101,6 @@ uses
         TypeOfBackfacingModel             from V3d,
         Viewer                            from V3d,
         Light                             from V3d,
-        Plane                             from V3d,
         View                              from Visual3d,
         ViewMapping                       from Visual3d,
         ViewOrientation                   from Visual3d,
@@ -118,10 +110,9 @@ uses
         Plotter                           from Graphic3d,
         Window                            from Aspect,
         PixMap                            from Image,
-        TypeOfImage                       from Image,
+        BufferType                        from Graphic3d,
         Background                        from Aspect,
         GradientBackground                from Aspect,
-        PlotterDriver                     from PlotMgt,
         TypeOfColor                       from Quantity,
         NameOfColor                       from Quantity,
         Color                             from Quantity,
@@ -137,26 +128,27 @@ uses
         TransientManager                  from Visual3d,
         TypeOfTriedronEcho                from Aspect,
         TypeOfTriedronPosition            from Aspect,
-        FormatOfSheetPaper                from Aspect,
         RenderingContext                  from Aspect,
         GraphicCallbackProc               from Aspect,
         FillMethod                        from Aspect,
         GradientFillMethod                from Aspect,
-        FontAspect                        from OSD,
+        FontAspect                        from Font,
         AsciiString                       from TCollection,
-        ExtendedString                    from TCollection
-
+        ExtendedString                    from TCollection,
+        PrintAlgo                         from Aspect,
+        ClipPlane_Handle                  from Graphic3d,
+        SetOfHClipPlane                   from Graphic3d
 raises
 
-        BadValue from Viewer, TypeMismatch from Standard,
+        BadValue from V3d, TypeMismatch from Standard,
         MultiplyDefined from Standard,UnMapped from V3d
 
 is
 
-        Initialize ( VM : mutable Viewer; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC );
+        Create ( VM : mutable Viewer; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC );
         ---Purpose: Initialises the view.
 
-        Initialize ( VM : mutable Viewer ; V : View from V3d; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC );
+        Create ( VM : mutable Viewer ; V : View from V3d; Type : TypeOfView from V3d = V3d_ORTHOGRAPHIC );
         ---Purpose: Initialises the view by copying.
 
         --------------------------------------------------------
@@ -203,11 +195,9 @@ is
         ---Level: Public
         ---Purpose: Destroys the view.
 
-        Update ( me ) is redefined static;
+        Update ( me ) is static;
         ---Level: Public
-        ---Purpose: Updates the display of the view.
-        --          Must be called to update the view
-        --          when the update mode is deferred (WAIT) .
+        ---Purpose: Deprecated, Redraw() should be used instead.
 
         Redraw ( me );
         ---Level: Public
@@ -278,7 +268,8 @@ is
         ---Level: Public
         ---Purpose: Defines the gradient background colours of the view
         --          by supplying :
-        --          the colour objects.
+        --          two colour objects,
+        --          and fill method (horizontal by default)
 
         SetBgGradientColors ( me : mutable ;
                               Color1 : NameOfColor;
@@ -288,9 +279,10 @@ is
         ---Level: Public
         ---Purpose: Defines the gradient background colours of the view
         --          by supplying :
-        --          the colour names in the form Quantity_NOC_xxxx .
+        --          two colour names in the form Quantity_NOC_xxxx,
+        --          and fill method (horizontal by default)
 
-        SetBgGradientStyle( me      ;
+        SetBgGradientStyle( me : mutable ;
                             AMethod : GradientFillMethod from Aspect = Aspect_GFM_HOR;
                             update  : Boolean from Standard = Standard_False);
         ---Level: Public
@@ -299,9 +291,16 @@ is
         SetBackgroundImage( me : mutable; FileName  : CString from Standard;
               FillStyle : FillMethod from Aspect = Aspect_FM_CENTERED;
                   update    : Boolean from Standard = Standard_False );
+        ---Level: Public
+        ---Purpose: Defines the background texture of the view
+        ---         by supplying :
+        ---         texture image file name,
+        ---         and fill method (centered by default)
 
         SetBgImageStyle( me : mutable; FillStyle : FillMethod from Aspect;
                                    update    : Boolean from Standard = Standard_False );
+        ---Level: Public
+        ---Purpose: Defines the textured background fill method of the view
 
         SetAxis ( me : mutable; X,Y,Z : Coordinate ;
                                 Vx,Vy,Vz : Parameter )
@@ -309,8 +308,8 @@ is
         ---Purpose: Definition of an axis from its origin and
         --          its orientation .
         --          This will be the current axis for rotations and movements.
-        raises BadValue from Viewer;
-        ---Purpose:  Warning! raises BadValue from Viewer if the vector normal is NULL. .
+        raises BadValue from V3d;
+        ---Purpose:  Warning! raises BadValue from V3d if the vector normal is NULL. .
 
         SetShadingModel ( me : mutable; Model : TypeOfShadingModel );
         ---Level: Public
@@ -348,7 +347,7 @@ is
         SetZClippingWidth ( me : mutable; Width : Length )
         ---Level: Public
         ---Purpose: Defines the thicknes around the medium clippling plane.   .
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the thickness is <= 0
 
         SetZClippingType ( me : mutable; Type : TypeOfZclipping );
@@ -362,7 +361,7 @@ is
         SetZCueingWidth ( me : mutable; Width : Length )
         ---Level: Public
         ---Purpose: Defines the thickness around the medium plane.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If thickness is <= 0
 
         SetZCueingOn ( me : mutable );
@@ -376,13 +375,13 @@ is
         SetLightOn( me : mutable ; MyLight : Light from V3d )
         ---Level: Public
         ---Purpose: Activates MyLight in the view.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If No More Light can be activated in MyView .
 
         SetLightOn( me : mutable )
         ---Level: Public
         ---Purpose: Activates all the lights defined in this view.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If No More Light can be activated in MyView .
 
         SetLightOff( me : mutable ; MyLight : Light  from V3d );
@@ -393,7 +392,7 @@ is
         ---Level: Public
         ---Purpose: Deactivate all the Lights defined in this view.
 
-    IsActiveLight( me ; aLight: Light  from V3d )
+        IsActiveLight( me ; aLight: Light  from V3d )
         returns Boolean from Standard;
         ---Level: Public
         ---Purpose: Returns TRUE when the light is active in this view.
@@ -402,39 +401,16 @@ is
         ---Level: Public
         ---Purpose: Activate/Deactivate the transparency in this view.
 
-        SetPlaneOn( me : mutable ; MyPlane : Plane from V3d )
-        ---Level: Public
-        ---Purpose: Activates the clipping plane in this view.
-                raises BadValue from Viewer ;
-        ---Purpose:      If No More Plane can be activated in MyView .
-
-        SetPlaneOn( me : mutable )
-        ---Level: Public
-        ---Purpose: Activate all the clipping planes defined in
-        --          this view.
-                raises BadValue from Viewer;
-        ---Purpose:      If No More Plane can be activated in MyView .
-
-        SetPlaneOff( me : mutable ; MyPlane : Plane  from V3d );
-        ---Level: Public
-        ---Purpose: Desactivates the clipping plane defined
-        --          in this view.
-
-        SetPlaneOff( me : mutable );
-        ---Level: Public
-        ---Purpose: Deactivate all clipping planes defined
-        --          in this view.
-
-    IsActivePlane( me ; aPlane: Plane  from V3d )
+        SetImmediateUpdate(me: mutable; theImmediateUpdate: Boolean from Standard)
         returns Boolean from Standard;
-        ---Level: Public
-        ---Purpose: Returns TRUE when the plane is active in this view.
+         ---Purpose: sets the immediate update mode and returns the previous one.
+
 
         ---------------------------------------------------
         --           Triedron methods
         ---------------------------------------------------
 
-    ZBufferTriedronSetup ( me      : mutable;
+        ZBufferTriedronSetup ( me      : mutable;
                            XColor  : NameOfColor from Quantity = Quantity_NOC_RED;
                            YColor  : NameOfColor from Quantity = Quantity_NOC_GREEN;
                            ZColor  : NameOfColor from Quantity = Quantity_NOC_BLUE1;
@@ -509,13 +485,13 @@ is
                               -- Name of font for names of axes --
                               fontOfNames : out AsciiString from TCollection;
                               -- Style of names of axes --
-                              styleOfNames : out FontAspect from OSD;
+                              styleOfNames : out FontAspect from Font;
                               -- Size of names of axes --
                               sizeOfNames : out Integer from Standard;
                               -- Name of font for values --
                               fontOfValues : out AsciiString from TCollection;
                               -- Style of values --
-                              styleOfValues : out FontAspect from OSD;
+                              styleOfValues : out FontAspect from Font;
                               -- Size of values --
                               sizeOfValues : out Integer from Standard)
         ---Purpose: Returns data of a graduated trihedron.
@@ -575,13 +551,13 @@ is
                                   -- Name of font for names of axes --
                                   fontOfNames : AsciiString from TCollection = "Arial";
                                   -- Style of names of axes --
-                                  styleOfNames : FontAspect from OSD = OSD_FA_Bold;
+                                  styleOfNames : FontAspect from Font = Font_FA_Bold;
                                   -- Size of names of axes --
                                   sizeOfNames : Integer from Standard = 12;
                                   -- Name of font for values --
                                   fontOfValues : AsciiString from TCollection = "Arial";
                                   -- Style of values --
-                                  styleOfValues : FontAspect from OSD = OSD_FA_Regular;
+                                  styleOfValues : FontAspect from Font = Font_FA_Regular;
                                   -- Size of values --
                                   sizeOfValues : Integer from Standard = 12)
         ---Purpose: Displays a graduated trihedron.
@@ -624,8 +600,8 @@ is
         --          for which the origin is the view point of the projection,
         --          with a relative angular value in RADIANS with respect to
         --          the initial position expressed by Start = Standard_True
-        raises BadValue from Viewer;
-        ---Purpose:  Warning! raises BadValue from Viewer
+        raises BadValue from V3d;
+        ---Purpose:  Warning! raises BadValue from V3d
         --      If the eye, the view point, or the high point are
         --          aligned or confused.
 
@@ -638,7 +614,7 @@ is
         --          for which the origin is Gravity point {X,Y,Z},
         --          with a relative angular value in RADIANS with respect to
         --          the initial position expressed by Start = Standard_True
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         ---Purpose:      If the eye, the view point, or the high point are
         --          aligned or confused.
 
@@ -674,7 +650,7 @@ is
         ---Purpose: Movement of the eye parallel to the coordinate system
         --          of reference of the screen a distance relative to the
         --          initial position expressed by Start = Standard_True.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, the view point, or the high point are
         --      aligned or confused.
 
@@ -685,7 +661,7 @@ is
         --          coordinate system of reference of the view a distance
         --          relative to the initial position expressed by
         --          Start = Standard_True.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, view point, or high point are aligned or confused.
 
         Move ( me : mutable ; Length : Length ;
@@ -694,7 +670,7 @@ is
         ---Purpose: Movement of the eye parllel to the current axis
         --          a distance relative to the initial position
         --          expressed by Start = Standard_True
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, view point, or high point are aligned or confused.
 
         Translate ( me : mutable ; Dx,Dy,Dz : Length ;
@@ -704,7 +680,7 @@ is
         --          frame of reference of the screen a distance relative
         --          to the initial position expressed by
         --          Start = Standard_True
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, view point, or high point are aligned or confused.
 
         Translate ( me : mutable ; Axe   : TypeOfAxe ; Length : Length ;
@@ -728,7 +704,7 @@ is
          ---Purpose: places the point of the view corresponding
          --          at the pixel position x,y at the center of the window
          --          and updates the view.
-         is redefined static;
+         is static;
 
         Turn ( me : mutable ; Ax,Ay,Az : PlaneAngle ;
                               Start    : Boolean = Standard_True )
@@ -738,7 +714,7 @@ is
         --          projection with a relative angular value in RADIANS
         --          with respect to the initial position expressed by
         --          Start = Standard_True
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, view point, or high point are aligned or confused.
 
         Turn ( me : mutable ; Axe : TypeOfAxe ; Angle : PlaneAngle ;
@@ -764,51 +740,51 @@ is
         --          the reference frame of the view with respect to the
         --          Y screen axis with an absolute angular value in
         --          RADIANS.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If the eye, view point, or high point are aligned or confused.
 
         SetEye( me : mutable ; X,Y,Z : Coordinate )
         ---Level: Public
         ---Purpose: Defines the position of the eye..
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
 
         SetDepth( me : mutable ; Depth : Length )
         ---Level: Public
         ---Purpose: Defines the Depth of the eye from the view point
         --          without update the projection .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the Depth is <= 0.
 
         SetProj( me : mutable ; Vx,Vy,Vz : Parameter )
         ---Level: Public
         ---Purpose: Defines the orientation of the projection.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
 
         SetProj( me : mutable ; Orientation : TypeOfOrientation )
         ---Level: Public
         ---Purpose: Defines the orientation of the projection .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
         --          Updates the view
 
         SetAt( me : mutable ; X,Y,Z : Coordinate )
         ---Level: Public
         ---Purpose: Defines the position of the view point.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
 
         SetUp( me : mutable ; Vx,Vy,Vz : Parameter )
         ---Level: Public
         ---Purpose: Defines the orientation of the high point.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
 
         SetUp( me : mutable ; Orientation : TypeOfOrientation )
         ---Level: Public
         ---Purpose: Defines the orientation(SO) of the high point.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the eye, view point, or high point are aligned or confused.
 
     SetViewOrientation ( me : mutable; VO   : ViewOrientation from Visual3d );
@@ -835,20 +811,20 @@ is
         ---Level: Public
         ---Purpose:       translates the center of the view and zooms the view.
         --       Updates the view.
-        raises BadValue from Viewer ;
+        raises BadValue from V3d ;
 
         SetCenter ( me : mutable ; Xc , Yc : Coordinate )
         ---Level: Public
         ---Purpose: Defines the centre of the view.
         --          Updates the view.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If one of the dimensions of the projection is NULL.
 
         SetCenter ( me : mutable ; X,Y: Integer from Standard)
         ---Level: Public
         ---Purpose: Defines the centre of the view from a pixel position.
         --          Updates the view.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If one of the dimensions of the projection is NULL.
 
         SetSize ( me : mutable ; Size : Length )
@@ -857,7 +833,7 @@ is
         --          center and height/width ratio of the window supporting
         --          the view.
         --          NOTE than the Depth of the View is NOT modified .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the size of the view is <= 0
 
         SetZSize ( me : mutable ; Size : Length )
@@ -868,7 +844,7 @@ is
         --          Any Object located Above the Front Plane or
         --                             behind the Back Plane will be Clipped .
         --          NOTE than the XY Size of the View is NOT modified .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the size of the view is <= 0
 
         SetZoom ( me : mutable ; Coef : Factor ; Start : Boolean = Standard_True )
@@ -876,7 +852,7 @@ is
         ---Purpose: Zooms the view by a factor relative to the initial
         --          value expressed by Start = Standard_True
         --          Updates the view.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the zoom coefficient is <= 0
 
         SetScale ( me : mutable ; Coef : Factor )
@@ -884,7 +860,7 @@ is
         ---Purpose: Zooms the view by a factor relative to the value
         --          initialised by SetViewMappingDefault().
         --          Updates the view.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the zoom coefficient is <= 0
 
     SetAxialScale ( me : mutable ; Sx, Sy, Sz : Real from Standard )
@@ -897,7 +873,7 @@ is
     -- || 0   0   Sz  0 ||
     -- || 0   0   0   1 ||
         -- Updates the view.
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the one of factors <= 0
 
         FitAll ( me : mutable ; Coef : Coefficient = 0.01;
@@ -907,7 +883,7 @@ is
         --          so as to occupy the maximum space while respecting the
         --          margin coefficient and the initial height /width ratio.
         --          NOTE than the original Z size of the view is NOT modified .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the margin coefficient is <0 ou >= 1 or
         --      Updates the view
 
@@ -917,7 +893,7 @@ is
         --          visualised so as to occupy the maximum Z amount of space
         --          while respecting the margin coefficient .
         --          NOTE than the original XY size of the view is NOT modified .
-                raises BadValue from Viewer ;
+                raises BadValue from V3d ;
         --      If the margin coefficient is <0 ou or
         --      If No Objects are displayed in the view
 
@@ -935,7 +911,7 @@ is
         --          the maximum space while respecting the initial
         --          height/width ratio.
         --          NOTE than the original Z size of the view is NOT modified .
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --              If the defined projection window has zero size.
 
 
@@ -945,15 +921,18 @@ is
         --          the maximum space while respecting the initial
         --          height/width ratio.
         --          NOTE than the original Z size of the view is NOT modified .
-                raises BadValue from Viewer
+                raises BadValue from V3d
         --              If the defined projection window has zero size.
-        is redefined static;
+        is static;
 
     SetViewingVolume ( me : mutable ; Left, Right, Bottom, Top, ZNear, ZFar : Real from Standard)
         ---Level: Public
         ---Purpose: Sets Z and XY size of the view according to given values
-    --          with respecting the initial view depth (eye position)
-                raises BadValue from Viewer;
+        --          with respecting the initial view depth (eye position).
+        --          Width/heigth aspect ratio should be preserved by the caller
+        --          of this method similarly to SetSize() to avoid unexpected
+        --          visual results like non-uniform scaling of objects in the view. 
+                raises BadValue from V3d;
         --              If the ZNear<0, ZFar<0 or ZNear>=Zfar.
 
     SetViewMapping ( me : mutable; VM   : ViewMapping from Visual3d );
@@ -1216,27 +1195,6 @@ is
         ActiveLight(me) returns mutable Light from V3d;
         ---Level: Advanced
 
-        IfMorePlanes( me ) returns Boolean;
-        ---Level: Advanced
-        ---Purpose: Returns True if One clipping plane more can be
-        --          activated in this View.
-
-        InitActivePlanes(me: mutable);
-        ---Level: Advanced
-        ---Purpose: initializes an iteration on the active Planes.
-
-        MoreActivePlanes (me) returns Boolean from Standard;
-        ---Level: Advanced
-        ---Purpose: returns true if there are more active Plane(s) to return.
-
-        NextActivePlanes (me: mutable);
-        ---Level: Advanced
-        ---Purpose : Go to the next active Plane
-        --           (if there is not, ActivePlane will raise an exception)
-
-        ActivePlane(me) returns mutable Plane from V3d;
-        ---Level: Advanced
-
         Viewer ( me ) returns mutable Viewer from V3d;
         ---Level: Advanced
         ---Purpose: Returns the viewer in which the view has been created.
@@ -1248,7 +1206,7 @@ is
         Window ( me ) returns mutable Window from Aspect
         ---Level: Public
         ---Purpose: Returns the Aspect Window associated with the view.
-                raises BadValue from Viewer;
+                raises BadValue from V3d;
         --      If MyView is not associated with a window
 
         Type( me ) returns TypeOfView from V3d;
@@ -1370,6 +1328,9 @@ is
                                 Matrix : Array2OfReal from TColStd )
                                 returns Vector from Graphic3d is private ;
         ---Purpose: Transforms the vector V according to the matrice Matrix .
+        
+        ImmediateUpdate (me) is static protected;
+         ---Purpose: 
 
         -----------------------------------------
         ---Category: TransientManager methods
@@ -1407,78 +1368,6 @@ is
         --
                 returns Boolean from Standard;
 
-        ---------------------------------------------------
-        -- Category: Methods to modify the class definition
-        --           Animation Mode
-        ---------------------------------------------------
-
-        SetAnimationModeOn ( me : mutable )
-                is static;
-        ---Level: Advanced
-        ---Purpose: Activates animation mode.
-        --      When the animation mode is activated in the view,
-        --      all Graphic3d_Structure are stored in a graphic object.
-        ---Category: Methods to modify the class definition
-
-        SetAnimationModeOff ( me        : mutable )
-                is static;
-        ---Level: Advanced
-        ---Purpose: Deactivates the animation mode.
-        ---Category: Methods to modify the class definition
-
-        AnimationModeIsOn ( me )
-                returns Boolean from Standard
-                is static;
-        ---Level: Advanced
-        ---Purpose: Returns the activity of the animation mode.
-        ---Category: Inquire methods
-
-        SetAnimationMode ( me                : mutable;
-                           anAnimationFlag   : Boolean from Standard = Standard_True;
-                           aDegenerationFlag : Boolean from Standard = Standard_False
-        ) is static;
-        ---Level    : Advanced
-        ---Purpose  : Enable/Disable animation/degeneration mode
-        ---Category : Methods to modify the class definition
-
-    AnimationMode ( me; isDegenerate: out Boolean from Standard )
-                returns Boolean from Standard
-                is static;
-        ---Level    : Advanced
-        ---Purpose  : Returns the animation and degenerate status.
-        ---Category: Inquire methods
-
-        ---------------------------------------------------
-        -- Category: Methods to modify the class definition
-        --           Degenerate Mode
-        ---------------------------------------------------
-
-        SetDegenerateModeOn ( me        : mutable )
-                is static;
-        ---Level    : Obsolete
-        ---Purpose: Activates degenerate mode.
-        --      When the degenerate mode is activated in the view,
-        --      all Graphic3d_Structure with the type TOS_COMPUTED
-        --      displayed in this view are not computed.
-    --  Warning: Obsolete method , use SetComputedMode()
-        ---Category: Methods to modify the class definition
-
-        SetDegenerateModeOff ( me       : mutable )
-                is static;
-        ---Level    : Obsolete
-        ---Purpose: Deactivates the degenerate mode.
-        --  Category: Methods to modify the class definition
-        --  Warning: if the computed mode has been disabled in the
-        --          viewer the mode will remain degenerated.
-    --  Warning: Obsolete method , use SetComputedMode()
-
-        DegenerateModeIsOn ( me )
-                returns Boolean from Standard
-                is static;
-        ---Level    : Obsolete
-        ---Purpose: Returns the activity of the degenerate mode.
-        ---Category: Inquire methods
-
         SetComputedMode ( me : mutable; aMode : Boolean from Standard )
         is static;
         ---Level: Advanced
@@ -1522,7 +1411,7 @@ is
 
         Plot ( me : mutable )
         ---Purpose: Create a 2D View for plotting the contents of the view
-        raises BadValue from Viewer;
+        raises BadValue from V3d;
         --      if the plotter is undefined.
 
         Compute ( me; AVertex   : Vertex from Graphic3d )
@@ -1556,27 +1445,9 @@ is
         --          grid in <me>
         ---Category: Methods to modify the class definition
 
-        Tumble ( me            : mutable;
-                 NbImages      : Integer from Standard = 314;
-                 AnimationMode : Boolean from Standard = Standard_False )
-                returns Real from Standard
-                is static;
-        ---Level   : Advanced
-        ---Purpose: Animates the view <me>
-        --          Returns the number of images per second
-        --          if <AnimationMode> is Standard_True, the animation mode
-        --          is activated.
-
-        ScreenCopy (me               : mutable;
-                    aPlotterDriver   : PlotterDriver from PlotMgt;
-                    fWhiteBackground : Boolean from Standard = Standard_True;
-                    aScale           : Factor from Quantity = 1.0
-        ) is static;
-        ---Purpose: dump the view
-
         Dump ( me: mutable;
-               theFile: CString from Standard;
-               theBufferType : TypeOfImage from Image = Image_TOI_RGB )
+               theFile       : CString from Standard;
+               theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB )
     returns Boolean from Standard;
         ---Level: Public
         ---Purpose: dump the full contents of the view at the same
@@ -1584,31 +1455,12 @@ is
         --          extension must be one of ".png",".bmp",".jpg",".gif".
         --          Returns FALSE when the dump has failed
 
-        Dump ( me: mutable;
-               theFile   : CString from Standard;
-               theFormat : FormatOfSheetPaper from Aspect;
-               theBufferType : TypeOfImage from Image = Image_TOI_RGB )
-    returns Boolean from Standard;
-        ---Level: Public
-        ---Purpose: dump the full contents of the view with a
-        --          different scale according  to the required sheet
-        --          paper size (format) and the ratio
-        --          width/height of the view.
-    --          and returns FALSE when the dump has failed
-    --  Warning : the file name extension must be one of
-    --      ".png",".bmp",".jpg",".gif"
-    --       but make becarefull about the time to dump and
-    --       resulting file size especially for the A0 format.
-    --       NOTE that you can use after any standard system utility
-    --       for editing or sending the image file to a laser printer.
-    --       (i.e: Microsoft Photo Editor on Windows system
-    --        or Image Viewer on SUN system)
-
-      Print (me; hPrnDC: Handle from Aspect = NULL;
+      Print (me; hPrnDC: Handle from Aspect = 0;
              showDialog: Boolean = Standard_True;
-             showBackground: Boolean = Standard_True;
-             filename: CString = NULL)
-      is static;
+             showBackground : Boolean = Standard_True;
+             filename: CString = NULL;
+             printAlgorithm : PrintAlgo from Aspect = Aspect_PA_STRETCH)
+      returns Boolean from Standard is static;
 
         ---Level: Public
         ---Purpose: print the contents of the view to printer with preview.
@@ -1625,19 +1477,30 @@ is
     -- (background is white)
         -- else set to TRUE for printing with current background color.
     -- <filename>: If != NULL, then the view will be printed to a file.
+    -- <printAlgorithm>: If you want to select the print algorithm, then you can
+        -- specify one of existing algorithms: Aspect_PA_STRETCH, Aspect_PA_TILE.
+    -- Returns Standard_True if the data is passed to the printer, otherwise
+    -- Standard_False if the print operation failed. This might be related to
+    -- insufficient memory or some internal errors. All this errors are
+    -- indicated by the message boxes (on level of OpenGl_GraphicDriver).
+    --  Warning: This function can reuse FBO assigned to the 
+    --  view on level of OpenGl_GraphicDriver; Please take it into account if
+    --  you use it for your purposes;
     --  Warning: Works only under Windows.
 
         ToPixMap ( me : mutable;
+                   theImage  : in out PixMap from Image;
                    theWidth  : Integer from Standard;
                    theHeight : Integer from Standard;
-                   theBufferType : TypeOfImage from Image = Image_TOI_RGB;
+                   theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB;
                    theForceCentered : Boolean from Standard = Standard_True )
-        returns PixMap from Image;
+        returns Boolean from Standard;
         ---Level   : Public
         ---Purpose : dump the full contents of the view
         --        to a pixmap of pixel size <theWidth>*<theHeight> and
         --        buffer type <theBufferType>. If <theForceCentered> is true
         --        view scene will be centered.
+        --       Pixmap will be automatically (re)allocated when needed.
 
     SetProjModel( me : mutable;
         amOdel: TypeOfProjectionModel from V3d = V3d_TPM_SCREEN )
@@ -1692,13 +1555,36 @@ is
      ---Purpose: returns the current state of the gl lighting
      --          currently used in triedron displaying
 
+     AddClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
+     ---Purpose: Adds clip plane to the view. The composition of clip planes truncates the
+     -- rendering space to convex volume. Number of supported clip planes can be consulted
+     -- by PlaneLimit method of associated Visual3d_View. Please be aware that the planes
+     -- which exceed the limit are igonred during rendering. 
+     -- @param thePlane [in] the clip plane to be added to view.
+
+     RemoveClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
+     ---Purpose: Removes clip plane from the view.
+     -- @param thePlane [in] the clip plane to be removed from view.
+
+     SetClipPlanes (me : mutable; thePlanes : SetOfHClipPlane from Graphic3d);
+     ---Purpose: Set clip planes to the view. The planes that have been set
+     -- before are removed from the view. The composition of clip planes
+     -- truncates the rendering space to convex volume. Number of supported
+     -- clip planes can be consulted by PlaneLimit method of associated
+     -- Visual3d_View. Please be aware that the planes which exceed the limit
+     -- are igonred during rendering. 
+     -- @param thePlanes [in] the clip planes to set.
+
+     GetClipPlanes (me) returns SetOfHClipPlane from Graphic3d;
+     ---C++: return const&
+     ---Purpose: Get clip planes.
+     -- @return sequence clip planes that have been set for the view
 
 fields
 
         MyType :                TypeOfView from V3d is protected ;
         MyViewer :              ViewerPointer from V3d ;
         MyActiveLights:         ListOfTransient from V3d;
-        MyActivePlanes:         ListOfTransient from V3d;
 
         MyView :                View from Visual3d is protected ;
         MyViewMapping :         ViewMapping from Visual3d is protected ;
@@ -1714,7 +1600,6 @@ fields
         MyPlotter:              Plotter from Graphic3d;
 
         myActiveLightsIterator: ListIteratorOfListOfTransient from TColStd;
-        myActivePlanesIterator: ListIteratorOfListOfTransient from TColStd;
 
         sx,sy: Integer from Standard;
         rx,ry: Real from Standard;
@@ -1730,6 +1615,8 @@ fields
         --MyColorScale            :       ColorScale from V3d;
         MyLayerMgr              :       LayerMgr from V3d;
 
+        MyProjModel         :   TypeOfProjectionModel from V3d is protected;
+            
         -- the transformation between XoY and the grid plane
         MyTrsf                  :       Array2OfReal from TColStd;
 
@@ -1737,10 +1624,8 @@ fields
         MyGridEchoStructure             :       Structure from Graphic3d;
         MyGridEchoGroup                 :       Group from Graphic3d;
 
-    MyProjModel         :   TypeOfProjectionModel from V3d is protected;
-    MyAnimationFlags        :   Integer from Standard;
-
-    MyTransparencyFlag      : Boolean from Standard;
+        MyTransparencyFlag      : Boolean from Standard;
+        myImmediateUpdate: Boolean from Standard is protected;
 friends
 
         SetViewOn from class Viewer from V3d ( me : mutable ),