687efeca2cf592882c554c6328c814e1387c811e
[occt.git] / src / SelectBasics / SelectBasics_SensitiveEntity.cdl
1 -- Created on: 1995-01-23
2 -- Created by: Mister rmi
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 deferred class SensitiveEntity from SelectBasics inherits TShared from MMgt
24
25         ---Purpose: root class ; the inheriting classes will be able to give
26         --          sensitive Areas for the dynamic selection algorithms
27
28 uses 
29     EntityOwner,
30     ListOfBox2d,
31     Array1OfPnt2d from TColgp, 
32     Box2d from Bnd
33
34 is
35
36
37     Initialize (OwnerId            : EntityOwner;
38                 aSensitivityFactor : ShortReal from Standard =1);
39     
40     
41     Set (me:mutable ; TheOwnerId : EntityOwner) is virtual;
42     ---Level: Public 
43     
44
45     OwnerId(me) returns any EntityOwner is static;
46     ---Level: Public 
47     ---C++: return const&
48             
49     
50     Areas(me:mutable; aresult : in out ListOfBox2d ) is deferred;  
51     ---Level: Public 
52     ---Purpose: to be implemented specifically by each type of
53     --          sensitive  primitive .
54     --          
55     
56     Matches (me  :mutable; 
57              X,Y : Real from Standard;
58              aTol: Real from Standard;
59              DMin: out Real from Standard) 
60     returns Boolean
61     is deferred;
62     ---Level: Public 
63     ---Purpose: returns True if the object is very close to the
64     --          sensitive areas it gave to the selector...
65     --          returns the minimum distance found if no match;
66     --          
67     --          to be implemented specifically by each type of
68     --          sensitive  primitive .
69     
70
71     Matches (me  :mutable; 
72              XMin,YMin,XMax,YMax : Real from Standard;
73              aTol: Real from Standard)
74     returns Boolean
75     is deferred;    
76     ---Level: Public 
77     ---Purpose: returns True if the box (Xmin,YMin)------(Xmax,Ymax)
78     --          contains the SensitiveEntity. 
79     --          Necessary for selection using elastic boxes,or segments.
80
81
82     Matches (me  :mutable; 
83              Polyline:Array1OfPnt2d from TColgp;
84              aBox:Box2d from Bnd;
85              aTol: Real from Standard)
86     returns Boolean
87     is deferred;    
88     ---Level: Public 
89     ---Purpose: returns True if the polyline xi,yi
90     --          contains the SensitiveEntity. 
91     --          Necessary for selection using polyline selection
92
93     NeedsConversion(me) returns Boolean is deferred ;
94     
95     Is3D(me) returns Boolean from Standard is deferred;
96     ---Purpose: returns True if able to give 3D information
97     --          (Depth,...). See Select3D
98     
99     Depth(me) returns Real from Standard is virtual;
100     ---Level: Internal 
101     ---Purpose:  Sort Selected entities according to depth...
102
103     MaxBoxes(me) returns Integer is deferred;
104     ---Purpose: returns the max number of boxes the entity is able to give
105     --          at a time
106
107
108     SetSensitivityFactor(me:mutable; aFactor:ShortReal from Standard);
109     ---C++: inline
110
111     SensitivityFactor(me) returns ShortReal from Standard;
112     ---C++: inline
113     ---Purpose: allows a better sensitivity for
114     --          a specific entity in selection algorithms
115     --          useful for small sized entities.
116
117
118 fields
119     
120     myOwnerId       : EntityOwner from SelectBasics is protected;
121     mySFactor       : ShortReal from Standard;
122 end SensitiveEntity;
123
124
125
126
127