1d783d5e6beba11341321f801337a9ad7fee7e44
[occt.git] / src / Select3D / Select3D_SensitiveFace.cdl
1 -- Created on: 1995-03-24
2 -- Created by: Robert COUBLANC
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 class SensitiveFace from Select3D 
24 inherits SensitivePoly from Select3D
25
26     ---Purpose: Sensitive Entity to make a face selectable.
27     -- In some cases this class can raise Standard_ConstructionError and 
28     -- Standard_OutOfRange exceptions. For more details see Select3D_SensitivePoly.
29
30 uses
31     EntityOwner       from SelectBasics,
32     Projector         from Select3D,
33     Lin               from gp,
34     ListOfBox2d       from SelectBasics,
35     Array1OfPnt       from TColgp,
36     HArray1OfPnt      from TColgp,
37     Array1OfPnt2d     from TColgp,
38     Box2d             from Bnd,
39     TypeOfSensitivity from Select3D,
40     Location          from TopLoc, 
41     SensitiveEntity   from Select3D
42
43 raises
44     ConstructionError from Standard,
45     OutOfRange from Standard
46
47 is
48
49     Create (OwnerId      : EntityOwner from SelectBasics;
50             ThePoints    : Array1OfPnt from TColgp;
51             Sensitivity  : TypeOfSensitivity = Select3D_TOS_INTERIOR)
52      returns mutable SensitiveFace;
53         ---Level: Public 
54         ---Purpose: Constructs a sensitive face object defined by the
55         -- owner OwnerId, the array of points ThePoints, and
56         -- the sensitivity type Sensitivity.
57         -- The array of points is the outer polygon of the geometric face.
58
59     Create (OwnerId      : EntityOwner from SelectBasics;
60             ThePoints    : HArray1OfPnt from TColgp;
61             Sensitivity  : TypeOfSensitivity = Select3D_TOS_INTERIOR)
62      returns mutable SensitiveFace;
63         ---Level: Public 
64         ---Purpose: Constructs a sensitive face object defined by the
65         -- owner OwnerId, the array of points ThePoints, and
66         -- the sensitivity type Sensitivity.
67         -- The array of points is the outer polygon of the geometric face.
68    
69     Matches(me  :mutable; 
70             X,Y : Real from Standard;
71             aTol: Real from Standard;
72             DMin: out Real from Standard) 
73     returns Boolean
74     is redefined virtual;
75
76     Matches (me  :mutable; 
77              XMin,YMin,XMax,YMax : Real from Standard;
78              aTol: Real from Standard) 
79     returns Boolean
80     is redefined virtual;
81     ---Level: Public 
82      
83     Matches (me  :mutable; 
84              Polyline:Array1OfPnt2d from TColgp;
85              aBox:Box2d from Bnd;
86              aTol: Real from Standard) 
87     returns Boolean
88     is redefined virtual;
89     ---Level: Public 
90     
91
92     ComputeDepth(me;EyeLine: Lin from gp) 
93     returns Real from Standard is redefined virtual;
94     ---Level: Public
95     ---Purpose: Computes the depth values for all 3D points defining this face and returns
96     -- the minimal value among them. 
97     -- If the "minimal depth" approach is not suitable and gives wrong detection results
98     -- in some particular case, a custom sensitive face class can be implemented at application level
99     -- that overrides default ComputeDepth() behavior.
100
101     Dump(me; S: in out OStream;FullDump : Boolean from Standard = Standard_True) is redefined virtual; 
102
103     GetConnected(me: mutable; theLocation : Location from TopLoc) 
104     returns SensitiveEntity from Select3D 
105     is redefined virtual; 
106         ---Level: Public 
107         ---Purpose: Returns the copy of this
108
109
110 fields
111
112     mytype          : TypeOfSensitivity;
113     myautointer     : Boolean;
114
115 end SensitiveFace;