0023654: Problem with displaying vertices in OCC view after closing all OCC views...
[occt.git] / src / PrsMgr / PrsMgr_PresentableObject.cdl
index a35ec9e..fa05273 100755 (executable)
@@ -35,7 +35,7 @@
 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
@@ -54,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,
@@ -65,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, 
@@ -80,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;
@@ -264,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;