0024157: Parallelization of assembly part of BO
[occt.git] / src / Select3D / Select3D_SensitivePoly.cdl
1 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
2 --
3 -- The content of this file is subject to the Open CASCADE Technology Public
4 -- License Version 6.5 (the "License"). You may not use the content of this file
5 -- except in compliance with the License. Please obtain a copy of the License
6 -- at http://www.opencascade.org and read it completely before using this file.
7 --
8 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10 --
11 -- The Original Code and all software distributed under the License is
12 -- distributed on an "AS IS" basis, without warranty of any kind, and the
13 -- Initial Developer hereby disclaims all such warranties, including without
14 -- limitation, any warranties of merchantability, fitness for a particular
15 -- purpose or non-infringement. Please see the License for the specific terms
16 -- and conditions governing the rights and limitations under the License.
17
18 deferred class SensitivePoly from Select3D 
19 inherits SensitiveEntity from Select3D
20
21     ---Purpose: Sensitive Entity to make a face selectable.
22     -- In some cases this class can raise Standard_ConstructionError and 
23     -- Standard_OutOfRange exceptions from its member Select3D_PointData 
24     -- mypolyg.
25
26 uses
27     EntityOwner       from SelectBasics,
28     Projector         from Select3D,
29     ListOfBox2d       from SelectBasics,
30     Array1OfPnt       from TColgp,
31     HArray1OfPnt      from TColgp,
32     Array1OfPnt2d     from TColgp,
33     Box2d             from Select3D,
34     PointData         from Select3D
35
36 raises    
37     ConstructionError from Standard,
38     OutOfRange        from Standard
39
40 is
41
42     Initialize (OwnerId      : EntityOwner from SelectBasics;
43             ThePoints    : Array1OfPnt from TColgp)
44      returns mutable SensitivePoly;
45         ---Level: Public 
46         ---Purpose: Constructs a sensitive face object defined by the
47         -- owner OwnerId, the array of points ThePoints, and
48         -- the sensitivity type Sensitivity.
49         -- The array of points is the outer polygon of the geometric face.
50
51     Initialize (OwnerId      : EntityOwner from SelectBasics;
52             ThePoints    : HArray1OfPnt from TColgp)
53      returns mutable SensitivePoly;
54         ---Level: Public 
55         ---Purpose: Constructs a sensitive face object defined by the
56         -- owner OwnerId, the array of points ThePoints, and
57         -- the sensitivity type Sensitivity.
58         -- The array of points is the outer polygon of the geometric face.
59
60     Initialize(OwnerId      : EntityOwner from SelectBasics;
61             NbOfPoints   : Integer = 6)
62      returns mutable SensitivePoly;
63         ---Level: Public 
64         ---Purpose: Constructs the sensitive circle object defined by the
65         -- owner OwnerId, the circle Circle, the Boolean
66         -- FilledCircle and the number of points NbOfPoints. 
67
68     Project (me:mutable;aProjector : Projector from Select3D) is redefined virtual;
69     ---Level: Public 
70     ---Purpose: projection of the sensitive primitive in order to
71     --          get 2D boxes for the Sort Algorithm
72     
73     Areas   (me:mutable ; boxes : in out ListOfBox2d from SelectBasics) is redefined static;
74     ---Level: Public 
75     ---Purpose: stores in <boxes> the 2D Boxes which represent the sensitive face
76     --          in the selection algorithm.
77
78     Points3D(me:mutable; theHArrayOfPnt : in out HArray1OfPnt from TColgp);
79     ---Purpose: Returns the 3D points of the array used at construction time.
80     ---C++: inline
81
82     Points2D(me:mutable; theArrayOfPnt2d : in out Array1OfPnt2d from TColgp);
83     ---Purpose: Returns the 2D points of the array used at construction time.
84     ---C++: inline
85
86 fields
87  
88     mybox2d         : Box2d     from Select3D is protected;
89     mypolyg         : PointData from Select3D is protected;
90 end SensitivePoly;