0023525: Disappearing of highlight in screenshot
[occt.git] / src / Graphic3d / Graphic3d_GraphicDriver.cdl
index bacce22..a672357 100755 (executable)
@@ -1,43 +1,31 @@
+-- Created on: 1997-01-28
+-- Created by: CAL
+-- Copyright (c) 1997-1999 Matra Datavision
+-- Copyright (c) 1999-2012 OPEN CASCADE SAS
 --
--- File:    Graphic3d_GraphicDriver.cdl
--- Created: Mardi 28 janvier 1997
--- Author:  CAL
--- Modified:    01/08/97 ; PCT : ajout texture mapping
---              07/08/97 ; PCT : ajout texture environnante
---              27/08/97 ; PCT : ajout coordonnee texture
---              00/11/97 ; CAL : retrait de la dependance avec math
---              00/11/97 ; CAL : ajout polyline par 2 points
---      16-09-98 ; BGN : Points d'entree du Triedre (S3819, Phase 1)
---              22-09-98 ; BGN : S3989 (anciennement S3819)
---                               TypeOfTriedron* from Aspect(et pas Graphic3d)
---              03-11-98 ; CAL : Introduction de Visual3d_LayerManager.
---              07-10-99 : EUG : Degeneration support (G003)
---               Add DegenerateStructure() and
---                   SetBackFacingModel() methods.
---      10-11-99 ; GG  : PRO19603 Change Redraw( ) method
---      16-06-2000 : ATS,GG : G005 - method PrimitiveArray, which are interface of OpenGl
---                            package, and used to initialize internal fields
---                            of primitives (Convert high level data to internal presentation).
---      17/08/00 ; THA ; Thomas HARTL <t-hartl@muenchen.matra-dtv.fr>
---              -> Add Print methods (works only under Windows).
---      27/03/02 ; GG  ; RIC120302 Add new method Begin(Aspect_Display)
---              28/05/02 ; VSV : New trihedron
---      23/12/02 ; SAV : Added methods to set background image and its
---                       appearence style
---              20/01/09 ; ABD : Integration support of system fonts (using FTGL and FreeType)
+-- 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.
 --
---              Copyright:  MatraDatavision 1997
+-- 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.
 
 deferred class GraphicDriver from Graphic3d inherits GraphicDriver from Aspect
 
     ---Version:
 
-    ---Purpose: This class allows the definition of a graphic
-    --      driver and encapsulates the Pex driver, the
-    --      OpenGl driver, the Optimizer driver and the Phigs driver.
+    ---Purpose: This class allows the definition of a graphic driver
+    --      (currently only OpenGl driver is used).
 
-    ---Keywords: Pex, OpenGl, Optimizer, Phigs
+    ---Keywords: OpenGl
 
     ---Warning:
     ---References:
@@ -50,6 +38,7 @@ uses
     Array1OfReal        from TColStd,
     Array2OfReal        from TColStd,
 
+    AsciiString         from TCollection,
     ExtendedString      from TCollection,
 
     NameOfColor         from Quantity,
@@ -58,6 +47,7 @@ uses
     PlaneAngle          from Quantity,
 
     AlienImage          from AlienImage,
+    PixMap              from Image,
 
     Array1OfEdge        from Aspect,
     CLayer2d            from Aspect,
@@ -66,6 +56,7 @@ uses
     TypeOfTriedronPosition  from Aspect,
     Handle              from Aspect,
     Display             from Aspect,
+    PrintAlgo           from Aspect,
 
     AspectLine3d        from Graphic3d,
     AspectMarker3d      from Graphic3d,
@@ -79,31 +70,16 @@ uses
     CPlane              from Graphic3d,
     CStructure          from Graphic3d,
     CView               from Graphic3d,
-    CRawBufferData      from Image,
+    BufferType          from Graphic3d,
     Structure           from Graphic3d,
     TextPath            from Graphic3d,
     TypeOfComposition   from Graphic3d,
-    TypeOfPolygon       from Graphic3d,
     TypeOfPrimitive     from Graphic3d,
     Vector              from Graphic3d,
     Array1OfVertex      from Graphic3d,
     Array2OfVertex      from Graphic3d,
     Vertex              from Graphic3d,
-    Array1OfVertexC     from Graphic3d,
-    Array2OfVertexC     from Graphic3d,
-    VertexC             from Graphic3d,
-    Array1OfVertexN     from Graphic3d,
-    Array2OfVertexN     from Graphic3d,
-    VertexN             from Graphic3d,
-    Array1OfVertexNC    from Graphic3d,
-    Array2OfVertexNC    from Graphic3d,
-    VertexNC            from Graphic3d,
     VerticalTextAlignment   from Graphic3d,
-    CInitTexture        from Graphic3d,
-    TypeOfTexture       from Graphic3d,
-    VertexNT            from Graphic3d,
-    Array1OfVertexNT    from Graphic3d,
-    Array2OfVertexNT    from Graphic3d,
     PrimitiveArray      from Graphic3d,
     PtrFrameBuffer      from Graphic3d,
     HArray1OfByte       from TColStd,
@@ -114,7 +90,7 @@ uses
     HArray1OfReal       from TColStd,
     CUserDraw           from Graphic3d,
     NListOfHAsciiString from Graphic3d,
-    FontAspect          from OSD,
+    FontAspect          from Font,
     CGraduatedTrihedron from Graphic3d
 
 raises
@@ -173,12 +149,6 @@ is
         is deferred;
     ---Purpose: call_togl_inquireview
 
-    InquireTextureAvailable ( me    : mutable )
-        returns Boolean from Standard
-        is deferred;
-    ---Purpose: Returns Standard_True if texture is
-    --      supported by the graphic driver
-
     ------------------------------
     -- Category: Highlight methods
     ------------------------------
@@ -218,11 +188,6 @@ is
         is deferred;
     ---Purpose: call_togl_cleargroup
 
-    CloseGroup ( me     : mutable;
-             ACGroup    : CGroup from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_closegroup
-
     FaceContextGroup ( me       : mutable;
                        ACGroup  : CGroup from Graphic3d;
                        NoInsert : Integer from Standard )
@@ -255,11 +220,6 @@ is
                 is deferred;
     ---Purpose: call_togl_markercontextgroup
 
-    OpenGroup ( me      : mutable;
-                ACGroup : CGroup from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_opengroup
-
     RemoveGroup ( me        : mutable;
                   ACGroup   : CGroup from Graphic3d )
         is deferred;
@@ -320,59 +280,6 @@ is
         is deferred;
     ---Purpose: call_togl_structure
 
-    --------------------------------
-    -- Category: Exploration methods
-    --------------------------------
-
-    DumpGroup ( me      : mutable;
-                ACGroup : CGroup from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_structure_exploration
-
-    DumpStructure ( me          : mutable;
-                    ACStructure : CStructure from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_structure_exploration
-
-    DumpView ( me       : mutable;
-               ACView   : CView from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_view_exploration
-
-    ElementExploration ( me             : mutable;
-                         ACStructure    : CStructure from Graphic3d;
-                         ElementNumber  : Integer from Standard;
-                         AVertex        : out VertexNC from Graphic3d;
-                         AVector        : out Vector from Graphic3d )
-        returns Boolean from Standard
-        is deferred;
-    ---Purpose: call_togl_element_exploration
-
-    ElementType ( me            : mutable;
-                  ACStructure   : CStructure from Graphic3d;
-                  ElementNumber : Integer from Standard )
-        returns TypeOfPrimitive from Graphic3d
-        is deferred;
-    ---Purpose: call_togl_element_type
-
-    ------------------------------------
-    -- Category: Pick management methods
-    ------------------------------------
-
-    InitPick ( me   : mutable )
-        is deferred;
-    ---Purpose: call_togl_init_pick
-
-    Pick ( me   : mutable;
-           ACPick   : out CPick from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_pick
-
-    PickId ( me         : mutable;
-             ACGroup    : CGroup from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_pickid
-
     ------------------------------------
     -- Category: Structured mode methods
     ------------------------------------
@@ -399,7 +306,7 @@ is
                         AColor2: Color from Quantity;
                          FillStyle : GradientFillMethod from Aspect
                        )
-    is virtual;
+    is deferred;
     ---Purpose: call_togl_gradient_background
 
 
@@ -417,7 +324,7 @@ is
     SetBgGradientStyle( me        : mutable;
                         ACView    : CView from Graphic3d;
                         FillStyle : GradientFillMethod from Aspect )
-    is virtual;
+    is deferred;
 
     ClipLimit ( me      : mutable;
                 ACView  : CView from Graphic3d;
@@ -570,189 +477,14 @@ is
 
     Marker ( me         : mutable;
              ACGroup    : CGroup from Graphic3d;
-             APoint     : Vertex from Graphic3d;
-             EvalMinMax : Boolean from Standard = Standard_True )
+             APoint     : Vertex from Graphic3d )
         is deferred;
 
     MarkerSet ( me          : mutable;
                 ACGroup     : CGroup from Graphic3d;
-                ListVertex  : Array1OfVertex from Graphic3d;
-                EvalMinMax  : Boolean from Standard = Standard_True )
+                ListVertex  : Array1OfVertex from Graphic3d )
         is deferred;
 
-    ----------------------------------------
-    -- Category: Methods to create Polygon
-    -- for Purpose : see Graphic3d_Group.cdl
-    ----------------------------------------
-
-    Polygon ( me            : mutable;
-              ACGroup       : CGroup from Graphic3d;
-              ListVertex    : Array1OfVertex from Graphic3d;
-              AType         : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
-              EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon
-
-    Polygon ( me            : mutable;
-              ACGroup       : CGroup from Graphic3d;
-              ListVertex    : Array1OfVertex from Graphic3d;
-              Normal        : Vector from Graphic3d;
-              AType         : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
-              EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon
-
-    Polygon ( me            : mutable;
-              ACGroup       : CGroup from Graphic3d;
-              ListVertex    : Array1OfVertexN from Graphic3d;
-              AType         : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
-              EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon
-
-    Polygon ( me            : mutable;
-              ACGroup       : CGroup from Graphic3d;
-              ListVertex    : Array1OfVertexN from Graphic3d;
-              Normal        : Vector from Graphic3d;
-              AType         : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
-              EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon
-
-    Polygon ( me            : mutable;
-              ACGroup       : CGroup from Graphic3d;
-              ListVertex    : Array1OfVertexNT from Graphic3d;
-              AType         : TypeOfPolygon from Graphic3d = Graphic3d_TOP_CONVEX;
-              EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon
-
-    PolygonHoles ( me          : mutable;
-                   ACGroup     : CGroup from Graphic3d;
-                   Bounds      : Array1OfInteger from TColStd;
-                   ListVertex  : Array1OfVertex from Graphic3d;
-                   EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_holes
-
-    PolygonHoles ( me          : mutable;
-                   ACGroup     : CGroup from Graphic3d;
-                   Bounds      : Array1OfInteger from TColStd;
-                   ListVertex  : Array1OfVertex from Graphic3d;
-                   Normal      : Vector from Graphic3d;
-                   EvalMinMax  : Boolean from Standard = Standard_True )
-                   is deferred;
-    ---Purpose: call_togl_polygon_holes
-
-    PolygonHoles ( me          : mutable;
-                   ACGroup     : CGroup from Graphic3d;
-                   Bounds      : Array1OfInteger from TColStd;
-                   ListVertex  : Array1OfVertexN from Graphic3d;
-                   EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_holes
-
-    PolygonHoles ( me          : mutable;
-                   ACGroup     : CGroup from Graphic3d;
-                   Bounds      : Array1OfInteger from TColStd;
-                   ListVertex  : Array1OfVertexN from Graphic3d;
-                   Normal      : Vector from Graphic3d;
-                   EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_holes
-
-    ----------------------------------------
-    -- Category: Methods to create Polyline
-    -- for Purpose : see Graphic3d_Group.cdl
-    ----------------------------------------
-
-    Polyline ( me                       : mutable;
-               ACGroup                  : CGroup from Graphic3d;
-               X1, Y1, Z1, X2, Y2, Z2   : Real from Standard;
-               EvalMinMax               : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polyline
-
-    Polyline ( me           : mutable;
-               ACGroup      : CGroup from Graphic3d;
-               ListVertex   : Array1OfVertex from Graphic3d;
-               EvalMinMax   : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polyline
-
-    Polyline ( me           : mutable;
-               ACGroup      : CGroup from Graphic3d;
-               ListVertex   : Array1OfVertexC from Graphic3d;
-               EvalMinMax   : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polyline
-
-    -----------------------------------------
-    -- Category: Methods to create Quadrangle
-    -- for Purpose : see Graphic3d_Group.cdl
-    -----------------------------------------
-
-    QuadrangleMesh ( me         : mutable;
-                     ACGroup    : CGroup from Graphic3d;
-                     ListVertex : Array2OfVertex from Graphic3d;
-                     EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_quadrangle
-
-    QuadrangleMesh ( me         : mutable;
-                     ACGroup    : CGroup from Graphic3d;
-                     ListVertex : Array2OfVertexN from Graphic3d;
-                     EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_quadrangle
-
-    QuadrangleMesh ( me         : mutable;
-                     ACGroup    : CGroup from Graphic3d;
-                     ListVertex : Array2OfVertexNT from Graphic3d;
-                     EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_quadrangle
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertex from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexN from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexNT from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexC from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    QuadrangleSet ( me          : mutable;
-                    ACGroup     : CGroup from Graphic3d;
-                    ListVertex  : Array1OfVertexNC from Graphic3d;
-                    ListEdge    : Array1OfEdge from Aspect;
-                    EvalMinMax  : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
     ----------------------------------------
     -- Category: Methods to create Text
     -- for Purpose : see Graphic3d_Group.cdl
@@ -807,67 +539,6 @@ is
     -- for Purpose : see Graphic3d_Group.cdl
     ----------------------------------------
 
-    TriangleMesh ( me           : mutable;
-                   ACGroup      : CGroup from Graphic3d;
-                   ListVertex   : Array1OfVertex from Graphic3d;
-                   EvalMinMax   : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_triangle
-
-    TriangleMesh ( me           : mutable;
-                   ACGroup      : CGroup from Graphic3d;
-                   ListVertex   : Array1OfVertexN from Graphic3d;
-                   EvalMinMax   : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_triangle
-
-    TriangleMesh ( me           : mutable;
-                   ACGroup      : CGroup from Graphic3d;
-                   ListVertex   : Array1OfVertexNT from Graphic3d;
-                   EvalMinMax   : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_triangle
-
-    TriangleSet ( me            : mutable;
-                  ACGroup       : CGroup from Graphic3d;
-                  ListVertex    : Array1OfVertex from Graphic3d;
-                  ListEdge      : Array1OfEdge from Aspect;
-                  EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    TriangleSet ( me            : mutable;
-                  ACGroup       : CGroup from Graphic3d;
-                  ListVertex    : Array1OfVertexN from Graphic3d;
-                  ListEdge      : Array1OfEdge from Aspect;
-                  EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    TriangleSet ( me            : mutable;
-                  ACGroup       : CGroup from Graphic3d;
-                  ListVertex    : Array1OfVertexNT from Graphic3d;
-                  ListEdge      : Array1OfEdge from Aspect;
-                  EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    TriangleSet ( me            : mutable;
-                  ACGroup       : CGroup from Graphic3d;
-                  ListVertex    : Array1OfVertexC from Graphic3d;
-                  ListEdge      : Array1OfEdge from Aspect;
-                  EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
-    TriangleSet ( me            : mutable;
-                  ACGroup       : CGroup from Graphic3d;
-                  ListVertex    : Array1OfVertexNC from Graphic3d;
-                  ListEdge      : Array1OfEdge from Aspect;
-                  EvalMinMax    : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_polygon_indices
-
     PrimitiveArray( me          : mutable;
                     ACGroup     : CGroup from Graphic3d;
                     parray      : PrimitiveArray from Graphic3d;
@@ -883,9 +554,14 @@ is
 
     EnableVBO( me       : mutable;
                status   : Boolean from Standard )
-               is virtual;
+               is deferred;
     ---Purpose: enables/disables usage of OpenGL vertex buffer arrays while drawing primitiev arrays
 
+    MemoryInfo (me;
+                theFreeBytes : out Size from Standard;
+                theInfo      : out AsciiString from TCollection) returns Boolean from Standard is deferred;
+    ---Purpose: Returns information about GPU memory usage.
+
     ----------------------------------------
     ---Category: Methods to create Triedron
     -- for Purpose : see Graphic3d_Group.cdl
@@ -927,138 +603,9 @@ is
     ---Category: Graduated  trihedron
     ---------------------------------
 
-    GetGraduatedTrihedron(me;
-                          view : CView from Graphic3d;
-                          -- Names of axes --
-                          xname : out CString from Standard;
-                          yname : out CString from Standard;
-                          zname : out CString from Standard;
-                          -- Draw names --
-                          xdrawname : out Boolean from Standard;
-                          ydrawname : out Boolean from Standard;
-                          zdrawname : out Boolean from Standard;
-                          -- Draw values --
-                          xdrawvalues : out Boolean from Standard;
-                          ydrawvalues : out Boolean from Standard;
-                          zdrawvalues : out Boolean from Standard;
-                          -- Draw grid --
-                          drawgrid : out Boolean from Standard;
-                          -- Draw axes --
-                          drawaxes : out Boolean from Standard;
-                          -- Number of splits along axes --
-                          nbx : out Integer from Standard;
-                          nby : out Integer from Standard;
-                          nbz : out Integer from Standard;
-                          -- Offset for drawing values --
-                          xoffset : out Integer from Standard;
-                          yoffset : out Integer from Standard;
-                          zoffset : out Integer from Standard;
-                          -- Offset for drawing names of axes --
-                          xaxisoffset : out Integer from Standard;
-                          yaxisoffset : out Integer from Standard;
-                          zaxisoffset : out Integer from Standard;
-                          -- Draw tickmarks --
-                          xdrawtickmarks : out Boolean from Standard;
-                          ydrawtickmarks : out Boolean from Standard;
-                          zdrawtickmarks : out Boolean from Standard;
-                          -- Length of tickmarks --
-                          xtickmarklength : out Integer from Standard;
-                          ytickmarklength : out Integer from Standard;
-                          ztickmarklength : out Integer from Standard;
-                          -- Grid color --
-                          gridcolor : out Color from Quantity;
-                          -- X name color --
-                          xnamecolor : out Color from Quantity;
-                          -- Y name color --
-                          ynamecolor : out Color from Quantity;
-                          -- Z name color --
-                          znamecolor : out Color from Quantity;
-                          -- X color of axis and values --
-                          xcolor : out Color from Quantity;
-                          -- Y color of axis and values --
-                          ycolor : out Color from Quantity;
-                          -- Z color of axis and values --
-                          zcolor : out Color from Quantity;
-                          -- Name of font for names of axes --
-                          fontOfNames : out CString from Standard;
-                          -- Style of names of axes --
-                          styleOfNames : out FontAspect from OSD;
-                          -- Size of names of axes --
-                          sizeOfNames : out Integer from Standard;
-                          -- Name of font for values --
-                          fontOfValues : out CString from Standard;
-                          -- Style of values --
-                          styleOfValues : out FontAspect from OSD;
-                          -- Size of values --
-                          sizeOfValues : out Integer from Standard)
-    ---Purpose: call_togl_graduatedtrihedron_get
-    is virtual;
-
     GraduatedTrihedronDisplay(me : mutable;
                               view : CView from Graphic3d;
-                              cubic : in out CGraduatedTrihedron from Graphic3d;
-                              -- Names of axes --
-                              xname : CString from Standard;
-                              yname : CString from Standard;
-                              zname : CString from Standard;
-                              -- Draw names --
-                              xdrawname : Boolean from Standard;
-                              ydrawname : Boolean from Standard;
-                              zdrawname : Boolean from Standard;
-                              -- Draw values --
-                              xdrawvalues : Boolean from Standard;
-                              ydrawvalues : Boolean from Standard;
-                              zdrawvalues : Boolean from Standard;
-                              -- Draw grid --
-                              drawgrid : Boolean from Standard;
-                              -- Draw axes --
-                              drawaxes : Boolean from Standard;
-                              -- Number of splits along axes --
-                              nbx : Integer from Standard;
-                              nby : Integer from Standard;
-                              nbz : Integer from Standard;
-                              -- Offset for drawing values --
-                              xoffset : Integer from Standard;
-                              yoffset : Integer from Standard;
-                              zoffset : Integer from Standard;
-                              -- Offset for drawing names of axes --
-                              xaxisoffset : Integer from Standard;
-                              yaxisoffset : Integer from Standard;
-                              zaxisoffset : Integer from Standard;
-                              -- Draw tickmarks --
-                              xdrawtickmarks : Boolean from Standard;
-                              ydrawtickmarks : Boolean from Standard;
-                              zdrawtickmarks : Boolean from Standard;
-                              -- Length of tickmarks --
-                              xtickmarklength : Integer from Standard;
-                              ytickmarklength : Integer from Standard;
-                              ztickmarklength : Integer from Standard;
-                              -- Grid color --
-                              gridcolor : Color from Quantity;
-                              -- X name color --
-                              xnamecolor : Color from Quantity;
-                              -- Y name color --
-                              ynamecolor : Color from Quantity;
-                              -- Z name color --
-                              znamecolor : Color from Quantity;
-                              -- X color of axis and values --
-                              xcolor : Color from Quantity;
-                              -- Y color of axis and values --
-                              ycolor : Color from Quantity;
-                              -- Z color of axis and values --
-                              zcolor : Color from Quantity;
-                              -- Name of font for names of axes --
-                              fontOfNames : CString from Standard;
-                              -- Style of names of axes --
-                              styleOfNames : FontAspect from OSD;
-                              -- Size of names of axes --
-                              sizeOfNames : Integer from Standard;
-                              -- Name of font for values --
-                              fontOfValues : CString from Standard;
-                              -- Style of values --
-                              styleOfValues : FontAspect from OSD;
-                              -- Size of values --
-                              sizeOfValues : Integer from Standard)
+                              cubic : CGraduatedTrihedron from Graphic3d)
     ---Purpose: call_togl_graduatedtrihedron_display
     is deferred;
 
@@ -1077,26 +624,6 @@ is
     ---Purpose: call_togl_graduatedtrihedron_minmaxvalues
     is deferred;
 
-    ----------------------------------------
-    -- Category: Internal methods
-    -- for Purpose : see Graphic3d_Group.cdl
-    ----------------------------------------
-
-    Bezier ( me         : mutable;
-             ACGroup    : CGroup from Graphic3d;
-             ListVertex : Array1OfVertex from Graphic3d;
-             EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_bezier
-
-    Bezier ( me         : mutable;
-             ACGroup    : CGroup from Graphic3d;
-             ListVertex : Array1OfVertex from Graphic3d;
-             ListWeight : Array1OfReal from TColStd;
-             EvalMinMax : Boolean from Standard = Standard_True )
-        is deferred;
-    ---Purpose: call_togl_bezier_weight
-
     ---------------------------
     -- Category: Animation mode
     ---------------------------
@@ -1129,6 +656,23 @@ is
     -- Category: Immediat mode methods
     ----------------------------------
 
+    SetImmediateModeDrawToFront (me                   : mutable;
+                                 theCView             : CView from Graphic3d;
+                                 theDrawToFrontBuffer : Boolean from Standard)
+    returns Boolean from Standard
+    is deferred;
+    ---Purpose: @param theDrawToFrontBuffer Advanced option to modify rendering mode:
+    -- 1. TRUE.  Drawing immediate mode structures directly to the front buffer over the scene image.
+    --    Fast, so preferred for interactive work (used by default).
+    --    However these extra drawings will be missed in image dump since it is performed from back buffer.
+    --    Notice that since no pre-buffering used the V-Sync will be ignored and rendering could be seen
+    --    in run-time (in case of slow hardware) and/or tearing may appear.
+    --    So this is strongly recommended to draw only simple (fast) structures.
+    -- 2. FALSE. Drawing immediate mode structures to the back buffer.
+    --    The complete scene is redrawn first, so this mode is slower if scene contains complex data and/or V-Sync is turned on.
+    --    But it works in any case and is especially useful for view dump because the dump image is read from the back buffer.
+    -- @return previous mode.
+
     BeginImmediatMode ( me              : mutable;
                         ACView          : CView from Graphic3d;
                         ACUnderLayer    : CLayer2d from Aspect;
@@ -1139,22 +683,11 @@ is
         is deferred;
     ---Purpose: call_togl_begin_immediat_mode
 
-    BeginPolyline ( me  : mutable )
-        is deferred;
-    ---Purpose: call_togl_begin_polyline
-
     ClearImmediatMode ( me  : mutable; ACView       : CView from Graphic3d;
                   aFlush        : Boolean from Standard = Standard_True)
         is deferred;
     ---Purpose: call_togl_clear_immediat_mode
 
-    Draw ( me   : mutable;
-           X    : ShortReal from Standard;
-           Y    : ShortReal from Standard;
-           Z    : ShortReal from Standard )
-        is deferred;
-    ---Purpose: call_togl_draw
-
     DrawStructure ( me          : mutable;
                     ACStructure : CStructure from Graphic3d )
         is deferred;
@@ -1165,74 +698,6 @@ is
         is deferred;
     ---Purpose: call_togl_end_immediat_mode
 
-    EndPolyline ( me    : mutable )
-        is deferred;
-    ---Purpose: call_togl_end_polyline
-
-    Move ( me   : mutable;
-           X    : ShortReal from Standard;
-           Y    : ShortReal from Standard;
-           Z    : ShortReal from Standard )
-        is deferred;
-    ---Purpose: call_togl_move
-
-    SetLineColor ( me   : mutable;
-                   R    : ShortReal from Standard;
-                   G    : ShortReal from Standard;
-                   B    : ShortReal from Standard )
-        is deferred;
-    ---Purpose: call_togl_set_linecolor
-
-    SetLineType ( me    : mutable;
-                  Type  : Integer from Standard )
-        is deferred;
-    ---Purpose: call_togl_set_linetype
-
-    SetLineWidth ( me   : mutable;
-               Width    : ShortReal from Standard )
-        is deferred;
-    ---Purpose: call_togl_set_linewidth
-
-    SetMinMax ( me  : mutable;
-                X1  : ShortReal from Standard;
-                Y1  : ShortReal from Standard;
-                Z1  : ShortReal from Standard;
-                X2  : ShortReal from Standard;
-                Y2  : ShortReal from Standard;
-                Z2  : ShortReal from Standard )
-        is deferred;
-    ---Purpose: call_togl_set_minmax
-
-    Transform ( me      : mutable;
-                AMatrix : Array2OfReal from TColStd;
-                AType   : TypeOfComposition from Graphic3d )
-        is deferred;
-    ---Purpose: call_togl_transform
-
-    -----------------------------
-    -- Category: Textures methods
-    -----------------------------
-
-        CreateTexture ( me;
-                        Type            : TypeOfTexture from Graphic3d;
-                        Image           : AlienImage from AlienImage;
-                        FileName        : CString from Standard;
-                        TexUpperBounds  : HArray1OfReal from TColStd )
-        returns Integer from Standard
-        is deferred;
-    ---Purpose:
-
-    DestroyTexture ( me;
-                     TexId  : Integer from Standard )
-        is deferred;
-    ---Purpose:
-
-    ModifyTexture ( me;
-                    TexId   : Integer from Standard;
-                    AValue  : CInitTexture from Graphic3d )
-        is deferred;
-    ---Purpose:
-
     -------------------------------
     -- Category: Layer mode methods
     -------------------------------
@@ -1330,8 +795,12 @@ is
                         R       : ShortReal from Standard;
                         G       : ShortReal from Standard;
                         B       : ShortReal from Standard )
-        is virtual;
-    ---Purpose: call_togl_set_text_attributes
+        is deferred;
+    ---Purpose: Set text attributes for under-/overlayer.
+    -- <Font> argument defines the name of the font to be used,
+    -- <Type> argument defines the display type of the text,
+    -- <R> <G> <B> values define the color of decal or subtitle background.
+    -- To set the color of the text you can use the SetColor method.
 
     Text ( me       : mutable;
            AText    : CString from Standard;
@@ -1408,8 +877,9 @@ is
     ---Purpose: Change offscreen FBO viewport.
 
         BufferDump( me            : mutable;
-                    view          : CView from Graphic3d;
-                    buffer        : in out CRawBufferData from Image )
+                    theCView      : CView from Graphic3d;
+                    theImage      : in out PixMap from Image;
+                    theBufferType : BufferType from Graphic3d )
                    returns Boolean from Standard
     is deferred;
     ---Purpose: Dump active rendering buffer into specified memory buffer.
@@ -1429,8 +899,10 @@ is
            ACOverLayer     : CLayer2d from Aspect;
            hPrnDC          : Handle from Aspect;
            showBackground  : Boolean;
-           filename        : CString)
-        is deferred;
+           filename        : CString;
+           printAlgorithm  : PrintAlgo from Aspect = Aspect_PA_STRETCH;
+           theScaleFactor  : Real from Standard = 1.0 )
+        returns Boolean from Standard is deferred;
       ---Level: Internal
       ---Purpose: print the contents of all layers of the view to the printer.
     -- <hPrnDC> : Pass the PrinterDeviceContext (HDC),
@@ -1438,19 +910,78 @@ 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>: Select print algorithm: stretch, tile.   
+    -- <theScaleFactor>: Scaling coefficient, used internally to scale the
+    -- printings accordingly to the scale factor selected in the printer 
+    -- properties dialog.
+    -- Returns Standard_True if the data is passed to the printer, otherwise
+    -- Standard_False if the print operation failed due to the printer errors, 
+    -- or insufficient system memory available.
     ---Warning: Works only under Windows.
 
-
         Export( me: mutable;
-                FileName         : CString from Standard;
-                Format           : ExportFormat from Graphic3d;
-                SortType         : SortType from Graphic3d;
-                W, H             : Integer from Standard;
-                View             : CView from Graphic3d;
-                Under, Over      : CLayer2d from Aspect;
-                Precision        : Real from Standard = 0.005;
-                ProgressBarFunc  : Address from Standard = NULL;
-                ProgressObject   : Address from Standard = NULL ) is deferred;
+                theFileName         : CString from Standard;
+                theFormat           : ExportFormat from Graphic3d;
+                theSortType         : SortType from Graphic3d;
+                theWidth, theHeight : Integer from Standard;
+                theView             : CView from Graphic3d;
+                theLayerUnder       : CLayer2d from Aspect;
+                theLayerOver        : CLayer2d from Aspect;
+                thePrecision        : Real from Standard = 0.005;
+                theProgressBarFunc  : Address from Standard = NULL;
+                theProgressObject   : Address from Standard = NULL )
+        returns Boolean from Standard
+        is deferred;
+    ---Purpose:
+    -- Export scene into the one of the Vector graphics formats (SVG, PS, PDF...).
+    -- In contrast to Bitmaps, Vector graphics is scalable (so you may got quality benefits on printing to laser printer).
+    -- Notice however that results may differ a lot and do not contain some elements.
+
+    AddZLayer( me         : mutable;
+               theCView   : CView from Graphic3d;
+               theLayerId : Integer from Standard )
+        is deferred;
+        ---Purpose: Add a new top-level z layer with ID <theLayerId> for
+        -- the view. Z layers allow drawing structures in higher layers
+        -- in foreground of structures in lower layers. To add a structure
+        -- to desired layer on display it is necessary to set the layer
+        -- ID for the structure.
+
+    RemoveZLayer( me         : mutable;
+                  theCView   : CView from Graphic3d;
+                  theLayerId : Integer from Standard )
+        is deferred;
+        ---Purpose: Remove Z layer from the specified view. All structures
+        -- displayed at the moment in layer will be displayed in default layer
+        -- ( the bottom-level z layer ). To unset layer ID from associated
+        -- structures use method UnsetZLayer (...).
+
+    UnsetZLayer( me         : mutable;
+                 theLayerId : Integer from Standard ) 
+        is deferred;
+        ---Purpose: Unset Z layer ID for all structures. The structure
+        -- indexes will be set to default layer ( the bottom-level z layer
+        -- with ID = 0 ).
+
+    ChangeZLayer( me            : mutable;
+                  theCStructure : CStructure from Graphic3d;
+                  theLayerId    : Integer from Standard )
+        is deferred;
+        ---Purpose: Change Z layer of a structure. The new z layer ID will
+        -- be used to define the associated layer for structure on display.
+
+    ChangeZLayer( me            : mutable;
+                  theCStructure : CStructure from Graphic3d;
+                  theCView      : CView from Graphic3d;
+                  theNewLayerId : Integer from Standard )
+        is deferred;
+        ---Purpose: Change Z layer of a structure already presented in view.
+
+    GetZLayer( me;
+               theCStructure : CStructure from Graphic3d )
+        returns Integer from Standard is deferred;
+        ---Purpose: Get Z layer ID of structure. If the structure doesn't
+        -- exists in graphic driver, the method returns -1.
 
     --------------------------
     -- Category: Class methods