7fd59977 |
1 | -- File: Select3D_SensitiveBox.cdl |
2 | -- Created: Thu Apr 13 10:16:20 1995 |
3 | -- Author: Robert COUBLANC |
4 | -- <rob@photon> |
5 | ---Copyright: Matra Datavision 1995 |
6 | |
7 | |
8 | |
9 | class SensitiveBox from Select3D |
10 | inherits SensitiveEntity from Select3D |
11 | |
12 | ---Purpose: A framework to define selection by a sensitive box. |
13 | |
14 | uses |
15 | Pnt from gp, |
16 | Pnt2d from gp, |
17 | Box from Bnd, |
18 | Box2d from Bnd, |
19 | Projector from Select3D, |
20 | Lin from gp, |
21 | EntityOwner from SelectBasics, |
22 | ListOfBox2d from SelectBasics, |
23 | Array1OfPnt2d from TColgp, |
24 | Location from TopLoc |
25 | |
26 | is |
27 | |
28 | |
29 | Create (OwnerId : EntityOwner from SelectBasics; |
30 | BoundingBox : Box from Bnd) |
31 | returns mutable SensitiveBox; |
32 | ---Purpose: Constructs a sensitive box object defined by the |
33 | -- owner OwnerId, and the bounding box BoundingBox. |
34 | Create (OwnerId : EntityOwner from SelectBasics; |
35 | XMin,YMin,ZMin, |
36 | XMax,YMax,ZMax : Real) |
37 | returns mutable SensitiveBox; |
38 | --- Purpose: Constructs a sensitive box object defined by the |
39 | -- owner OwnerId, and the coordinates Xmin, YMin, ZMin, XMax, YMax, ZMax. |
40 | -- Xmin, YMin and ZMin define the minimum point in |
41 | -- the front lower left hand corner of the box, |
42 | -- and XMax, YMax and ZMax define the maximum |
43 | -- point in the back upper right hand corner of the box. |
44 | |
45 | Project (me:mutable;aProjector : Projector from Select3D) |
46 | is redefined static; |
47 | ---Level: Public |
48 | ---Purpose: projection of the sensitive primitive in order to |
49 | -- get 2D boxes for the Sort Algorithm |
50 | |
51 | Areas (me:mutable ; boxes : in out ListOfBox2d from SelectBasics) |
52 | is redefined static; |
53 | ---Level: Public |
54 | ---Purpose: gives the 2D boxes which represent the Box in the |
55 | -- selection process... |
56 | |
57 | GetConnected(me:mutable;aLocation: Location from TopLoc) |
58 | returns SensitiveEntity from Select3D is redefined static; |
59 | |
60 | Matches(me :mutable; |
61 | X,Y : Real from Standard; |
62 | aTol: Real from Standard; |
63 | DMin: out Real from Standard) |
64 | returns Boolean |
65 | is static; |
66 | ---Level: Public |
67 | ---Purpose: |
68 | -- |
69 | |
70 | Matches (me :mutable; |
71 | XMin,YMin,XMax,YMax : Real from Standard; |
72 | aTol: Real from Standard) |
73 | returns Boolean is redefined static; |
74 | |
75 | Matches (me :mutable; |
76 | Polyline:Array1OfPnt2d from TColgp; |
77 | aBox:Box2d from Bnd; |
78 | aTol: Real from Standard) |
79 | returns Boolean |
80 | is redefined virtual; |
81 | ---Level: Public |
82 | |
83 | |
84 | ComputeDepth(me;EyeLine: Lin from gp) |
85 | returns Real from Standard is redefined static; |
86 | |
87 | Dump(me; S: in out OStream;FullDump : Boolean from Standard = Standard_True) is redefined virtual; |
88 | |
89 | Box(me) returns Box from Bnd; |
90 | ---Purpose: Returns the sensitive 3D box used at the time of construction. |
91 | ---C++: inline |
92 | ---C++: return const & |
93 | |
94 | |
95 | ProjectBox(me:mutable;aPrj: Projector from Select3D;aBox:Box from Bnd) |
96 | is static private; |
97 | |
98 | fields |
99 | |
100 | mybox3d : Box from Bnd; |
101 | mybox2d : Box2d from Bnd; |
102 | |
103 | end SensitiveBox; |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |