0024070: OpenGL capped object-level clipping planes
[occt.git] / src / Select3D / Select3D_SensitiveCircle.cdl
index 869c195..53e6cce 100755 (executable)
@@ -1,8 +1,23 @@
--- File:    Select3D_SensitiveCircle.cdl
--- Created: Tue Feb  6 11:35:02 1996
--- Author:  Robert COUBLANC
---      <rob@fidox>
----Copyright:    Matra Datavision 1996
+-- Created on: 1996-02-06
+-- Created by: Robert COUBLANC
+-- Copyright (c) 1996-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.
+
 
 
 
@@ -10,6 +25,8 @@ class SensitiveCircle from Select3D
 inherits SensitivePoly from Select3D
 
     ---Purpose: A framework to define sensitive 3D arcs and circles. 
+    -- In some cases this class can raise Standard_ConstructionError and 
+    -- Standard_OutOfRange exceptions. For more details see Select3D_SensitivePoly.
 uses
     Pnt             from gp,
     Pnt2d           from gp,
@@ -17,6 +34,7 @@ uses
     Lin             from gp,
     EntityOwner     from SelectBasics,
     ListOfBox2d     from SelectBasics,
+    PickArgs        from SelectBasics,
     Circle          from Geom,
     Array1OfPnt     from TColgp,
     HArray1OfPnt    from TColgp,
@@ -29,6 +47,10 @@ uses
     SensitiveEntity from Select3D, 
     Circle          from Geom
 
+raises
+    ConstructionError from Standard,
+    OutOfRange from Standard
+
 is
     Create (OwnerId      : EntityOwner from SelectBasics;
             TheCircle    : Circle from Geom;
@@ -74,12 +96,14 @@ is
         -- If the length of apolyg3d is more then 1, the first point of apolyg3d 
         -- must be equal to the last point of apolyg3d. 
 
-    Matches(me  :mutable; 
-            X,Y : Real from Standard;
-            aTol: Real from Standard;
-            DMin: out Real from Standard) 
-    returns Boolean
-    is static;
+    Matches (me : mutable;
+             thePickArgs : PickArgs from SelectBasics;
+             theMatchDMin, theMatchDepth : out Real from Standard)
+    returns Boolean is redefined static;
+    ---Level: Public
+    ---Purpose: Checks whether the sensitive entity matches the picking
+    -- detection area (close to the picking line).
+    -- For details please refer to base class declaration.
 
     Matches (me  :mutable; 
              XMin,YMin,XMax,YMax : Real from Standard;
@@ -96,9 +120,16 @@ is
         ---Level: Public 
     
 
-    ComputeDepth(me;EyeLine: Lin from gp) 
-    returns Real from Standard is redefined static;
-    
+    ComputeDepth (me;
+                  thePickLine : Lin from gp;
+                  theDetectedIndex : Integer from Standard)
+    returns Real from Standard;
+    ---Level: Public
+    ---Purpose: Compute depth of sensitive circle for the detected sub-part.
+    -- @param thePickLine [in] the picking line.
+    -- @param theDetectedIndex [in] index of the detected sub-part.
+    -- @return depth on the picking line.
+
     ArrayBounds(me;Low,Up:in out Integer);
     
     GetPoint3d(me;rank:Integer) returns Pnt from gp;
@@ -114,14 +145,13 @@ is
 
     Project(me: mutable;aProjector: Projector from Select3D) is redefined virtual;
 
-    ComputeCenter3D(me: mutable); 
+    ComputeCenter3D(me: mutable) is private; 
         ---Level: Internal 
         ---Purpose: Computes myCenter3D as the barycenter of points from mypolyg3d
 
 fields
 
     myFillStatus    : Boolean;
-    myDetectedIndex : Integer from Standard; -- used for depth...
     myCenter2D      : Pnt2d from Select3D; -- used for Matches()
     myCenter3D      : Pnt from Select3D; -- used for Matches()
     myCircle        : Circle from Geom;