0024157: Parallelization of assembly part of BO
[occt.git] / src / Select3D / Select3D_SensitiveGroup.cdl
... / ...
CommitLineData
1-- Created on: 1998-04-16
2-- Created by: Robert COUBLANC
3-- Copyright (c) 1998-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
23class SensitiveGroup from Select3D inherits SensitiveEntity from Select3D
24
25 ---Purpose: A framework to define selection of a sensitive group
26 -- by a sensitive entity which is a set of 3D sensitive entities.
27 -- Remark: 2 modes are possible for rectangle selection
28 -- the group is considered selected
29 -- 1) when all the entities inside are selected in the rectangle
30 -- 2) only one entity inside is selected by the rectangle
31 -- By default the "Match All entities" mode is set.
32
33uses
34 Pnt from gp,
35 Projector from Select3D,
36 Lin from gp,
37 EntityOwner from SelectBasics,
38 SensitiveEntity from Select3D,
39 ListOfSensitive from Select3D,
40 ListOfBox2d from SelectBasics,
41 PickArgs from SelectBasics,
42 Array1OfPnt2d from TColgp,
43 Box2d from Bnd,
44 Location from TopLoc
45
46
47is
48
49 Create (OwnerId : EntityOwner from SelectBasics;
50 MatchAll : Boolean from Standard = Standard_True)
51 returns mutable SensitiveGroup from Select3D;
52 ---Purpose: Constructs an empty sensitive group object.
53 -- This is a set of sensitive 3D entities. The sensitive
54 -- entities will be defined using the function Add to fill
55 -- the entity owner OwnerId. If MatchAll is false, nothing can be added.
56
57 Create(OwnerId : EntityOwner from SelectBasics;
58 TheList : in out ListOfSensitive from Select3D;
59 MatchAll : Boolean from Standard = Standard_True)
60 returns mutable SensitiveGroup from Select3D;
61 ---Purpose: Constructs a sensitive group object defined by the list
62 -- TheList and the entity owner OwnerId. If MatchAll is false, nothing is done.
63
64 Add (me :mutable; LL: in out ListOfSensitive from Select3D);
65 ---Purpose: Adds the list of sensitive entities LL to the empty
66 -- sensitive group object created at construction time.
67
68 Add (me :mutable;aSensitive : SensitiveEntity from Select3D);
69 ---Purpose: Adds the sensitive entity aSensitive to the non-empty
70 -- sensitive group object created at construction time.
71
72 Remove(me:mutable; aSensitive :SensitiveEntity from Select3D);
73
74 Clear(me:mutable) ;
75 ---Purpose: Removes all sensitive entities from the list used at the
76 -- time of construction, or added using the function Add.
77
78 IsIn(me;aSensitive: SensitiveEntity from Select3D)
79 returns Boolean from Standard;
80 ---Purpose: Returns true if the sensitive entity aSensitive is in
81 -- the list used at the time of construction, or added using the function Add.
82 Set(me:mutable; MustMatchAllEntities: Boolean from Standard);
83 ---Purpose: Sets the requirement that all sensitive entities in the
84 -- list used at the time of construction, or added using
85 -- the function Add must be matched.
86 ---C++: inline
87 MustMatchAll(me) returns Boolean from Standard;
88 ---Purpose: Returns true if all sensitive entities in the list used
89 -- at the time of construction, or added using the function Add must be matched.
90 ---C++: inline
91
92
93
94
95 Project (me:mutable;aProjector : Projector from Select3D)
96 is redefined static;
97 ---Level: Public
98 ---Purpose: projection of the sensitive primitive in order to
99 -- get 2D boxes for the Sort Algorithm
100
101 Areas (me:mutable ; boxes : in out ListOfBox2d from SelectBasics)
102 is redefined static;
103 ---Level: Public
104 ---Purpose: gives the 2D boxes which represent the segment in the
105 -- selection process...
106
107
108 MaxBoxes(me) returns Integer from Standard is redefined static;
109
110 GetConnected(me:mutable;aLocation: Location from TopLoc)
111 returns SensitiveEntity from Select3D is redefined static;
112
113
114 SetLocation(me:mutable;aLoc:Location from TopLoc) is redefined static;
115 ---Purpose: propagation of location on all the sensitive inside...
116 ResetLocation(me:mutable) is redefined static;
117 ---Purpose: propagation of location on all the sensitive inside...
118
119 Matches (me : mutable;
120 thePickArgs : PickArgs from SelectBasics;
121 theMatchDMin, theMatchDepth : out Real from Standard)
122 returns Boolean is redefined static;
123 ---Level: Public
124 ---Purpose: Checks whether the sensitive entity matches the picking
125 -- detection area (close to the picking line).
126 -- For details please refer to base class declaration.
127
128 Matches (me :mutable;
129 XMin,YMin,XMax,YMax : Real from Standard;
130 aTol: Real from Standard)
131 returns Boolean
132 is static;
133
134 Matches (me :mutable;
135 Polyline:Array1OfPnt2d from TColgp;
136 aBox:Box2d from Bnd;
137 aTol: Real from Standard)
138 returns Boolean
139 is redefined virtual;
140 ---Level: Public
141
142 Set(me:mutable;TheOwnerId: EntityOwner from SelectBasics) is redefined static;
143 ---Purpose: Sets the owner for all entities in group
144
145 GetEntities(me)
146 returns ListOfSensitive from Select3D;
147 ---Purpose: Gets group content
148 ---C++: inline
149 ---C++: return const&
150
151
152fields
153 myList : ListOfSensitive from Select3D;
154 myMustMatchAll : Boolean from Standard;
155end SensitiveGroup;
156