0023654: Problem with displaying vertices in OCC view after closing all OCC views...
[occt.git] / src / PrsMgr / PrsMgr_PresentableObject.cdl
index 5cc4a89..fa05273 100755 (executable)
@@ -1,6 +1,23 @@
--- File:        PrsMgr_PresentableObject.cdl
--- Created:     Wed Jan 25 09:23:00 1995
--- Author:      Jean-Louis Frenkel
+-- Created on: 1995-01-25
+-- Created by: Jean-Louis Frenkel
+-- Copyright (c) 1995-1999 Matra Datavision
+-- Copyright (c) 1999-2012 OPEN CASCADE SAS
+--
+-- 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 by  Rob (18/12/96) -> information about modes to update.
 --              Rob (04/07/97) ->   TypeOfPresentation3d () Method 
 --                                  changed to Public Method.
 --                              and no more private.
 --              SAN (22/03/04) -> OCC4895 High-level interface for controlling 
 --                              polygon offsets: Fill() made protected virtual.
---
----Copyright:    Matra Datavision 1995
 
 deferred class PresentableObject from PrsMgr inherits TShared from MMgt
 
 
-       ---Purpose: A framework to supply the Graphic2d or Graphic3d
+       ---Purpose: A framework to supply the Graphic3d
        -- structure of the object to be presented. On the first
        -- display request, this structure is created by calling the
        -- appropriate algorithm and retaining this frameworkfor
@@ -39,10 +54,8 @@ deferred class PresentableObject from PrsMgr inherits TShared from MMgt
 uses
     Presentation          from PrsMgr,
     Presentation          from Prs3d,
-    GraphicObject         from Graphic2d,
     Presentations         from PrsMgr,
     PresentationManager   from PrsMgr,
-    PresentationManager2d from PrsMgr,
     PresentationManager3d from PrsMgr,
     TypeOfPresentation3d  from PrsMgr,
     DataStructureManager  from Graphic3d,
@@ -50,6 +63,8 @@ uses
     Transformation        from Geom,
     ListOfInteger         from TColStd,
     Location              from TopLoc, 
+    ClipPlane_Handle      from Graphic3d,
+    SetOfHClipPlane       from Graphic3d,
     --   ABD 29/10/04  Transform Persistence of Presentation( pan, zoom, rotate )
     TransModeFlags        from Graphic3d, 
     Pnt                   from gp, 
@@ -65,19 +80,6 @@ is
     
 ---Category: deferred methods.
 --           
-    Compute(me:mutable;
-                aPresentationManager: PresentationManager2d from PrsMgr;
-                aPresentation: mutable GraphicObject from Graphic2d;
-                aMode: Integer from Standard = 0)
-       ---Purpose: Calculates the 2D view aPresentation and its
-       -- updates. The latter are managed by aPresentationManager.
-       -- aPresentableObject has the display mode aMode;
-       -- this has the default value of 0, that is, the wireframe display mode.
-       -- Note that this syntax is not used in AIS as that
-       -- package only concerns 3D display.
-                
-    raises NotImplemented from Standard
-    is virtual protected;
     
     Compute(me:mutable;
                 aPresentationManager: PresentationManager3d from PrsMgr;
@@ -249,15 +251,51 @@ is
      returns Integer from Standard is static;
    ---Purpose: Get ID of Z layer. If no presentations of object is displayed,
    -- and layer ID is unavailable, the -1 value is returned.
+
+   AddClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
+   ---Purpose: Adds clip plane for graphical clipping for all display mode
+   -- presentations. The composition of clip planes truncates the rendering
+   -- space to convex volume. Please be aware that number of supported
+   -- clip plane is limited. The planes which exceed the limit are ignored.
+   -- Besides of this, some planes can be already set in view where the object
+   -- is shown: the number of these planes should be substracted from limit
+   -- to predict the maximum possible number of object clipping planes.
+   -- @param thePlane [in] the clip plane to be appended to map of clip planes.
+
+   RemoveClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
+   ---Purpose: Removes previously added clip plane.
+   -- @param thePlane [in] the clip plane to be removed from map of clip planes.
+
+   SetClipPlanes (me : mutable; thePlanes : SetOfHClipPlane from Graphic3d) is virtual;
+   ---Purpose: Set clip planes for graphical clipping for all display mode presentations.
+   -- The composition of clip planes truncates the rendering space to convex
+   -- volume. Please be aware that number of supported clip plane is limited.
+   -- The planes which exceed the limit are ignored. Besides of this, some
+   -- planes can be already set in view where the object is shown: the number 
+   -- of these planes should be substracted from limit to predict the maximum
+   -- possible number of object clipping planes.
+
+   GetClipPlanes (me) returns SetOfHClipPlane from Graphic3d;
+   ---C++: inline
+   ---C++: return const&
+   ---Purpose: Get clip planes.
+   -- @return set of previously added clip planes for all display mode presentations.
+
+   UpdateClipping (me : mutable) is virtual protected;
+   ---Purpose: General virtual method for internal update of presentation state
+   -- when some modifications on list of clip planes occurs. Base 
+   -- implementation propagate clip planes to every presentation.
+
 fields
     myPresentations: Presentations from PrsMgr is protected;
     myTypeOfPresentation3d: TypeOfPresentation3d from PrsMgr is protected;
     myLocation  : Location from TopLoc is protected; 
+    myClipPlanes : SetOfHClipPlane from Graphic3d is protected;
     --myTransformPersistence  :  TransModeFlags  from  Graphic3d; 
     myTransformPersistence  :  CTransPersStruct  from  Graphic3d;
 
 friends
+    class Presentation3d      from PrsMgr,
     class PresentationManager from PrsMgr,
     Compute from Presentation3d from PrsMgr(me : mutable; aProjector   : DataStructureManager from Graphic3d),
     Compute from Presentation3d from PrsMgr(me : mutable; aProjector   : DataStructureManager from Graphic3d;