Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1995-03-24 |
2 | -- Created by: Robert COUBLANC | |
3 | -- Copyright (c) 1995-1999 Matra Datavision | |
973c2be1 | 4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e | 5 | -- |
973c2be1 | 6 | -- This file is part of Open CASCADE Technology software library. |
b311480e | 7 | -- |
973c2be1 | 8 | -- This library is free software; you can redistribute it and / or modify it |
9 | -- under the terms of the GNU Lesser General Public version 2.1 as published | |
10 | -- by the Free Software Foundation, with special exception defined in the file | |
11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |
12 | -- distribution for complete text of the license and disclaimer of any warranty. | |
b311480e | 13 | -- |
973c2be1 | 14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. | |
7fd59977 | 16 | |
17 | class SensitiveFace from Select3D | |
18 | inherits SensitivePoly from Select3D | |
19 | ||
20 | ---Purpose: Sensitive Entity to make a face selectable. | |
ceae62f0 A |
21 | -- In some cases this class can raise Standard_ConstructionError and |
22 | -- Standard_OutOfRange exceptions. For more details see Select3D_SensitivePoly. | |
7fd59977 | 23 | |
24 | uses | |
25 | EntityOwner from SelectBasics, | |
26 | Projector from Select3D, | |
27 | Lin from gp, | |
28 | ListOfBox2d from SelectBasics, | |
4269bd1b | 29 | PickArgs from SelectBasics, |
7fd59977 | 30 | Array1OfPnt from TColgp, |
31 | HArray1OfPnt from TColgp, | |
32 | Array1OfPnt2d from TColgp, | |
33 | Box2d from Bnd, | |
34 | TypeOfSensitivity from Select3D, | |
ac04d101 SA |
35 | Location from TopLoc, |
36 | SensitiveEntity from Select3D | |
7fd59977 | 37 | |
ceae62f0 A |
38 | raises |
39 | ConstructionError from Standard, | |
40 | OutOfRange from Standard | |
41 | ||
7fd59977 | 42 | is |
43 | ||
44 | Create (OwnerId : EntityOwner from SelectBasics; | |
45 | ThePoints : Array1OfPnt from TColgp; | |
46 | Sensitivity : TypeOfSensitivity = Select3D_TOS_INTERIOR) | |
47 | returns mutable SensitiveFace; | |
48 | ---Level: Public | |
49 | ---Purpose: Constructs a sensitive face object defined by the | |
50 | -- owner OwnerId, the array of points ThePoints, and | |
51 | -- the sensitivity type Sensitivity. | |
52 | -- The array of points is the outer polygon of the geometric face. | |
53 | ||
54 | Create (OwnerId : EntityOwner from SelectBasics; | |
55 | ThePoints : HArray1OfPnt from TColgp; | |
56 | Sensitivity : TypeOfSensitivity = Select3D_TOS_INTERIOR) | |
57 | returns mutable SensitiveFace; | |
58 | ---Level: Public | |
59 | ---Purpose: Constructs a sensitive face object defined by the | |
60 | -- owner OwnerId, the array of points ThePoints, and | |
61 | -- the sensitivity type Sensitivity. | |
62 | -- The array of points is the outer polygon of the geometric face. | |
ac04d101 | 63 | |
4269bd1b | 64 | Matches (me : mutable; |
65 | thePickArgs : PickArgs from SelectBasics; | |
66 | theMatchDMin, theMatchDepth : out Real from Standard) | |
67 | returns Boolean is redefined virtual; | |
68 | ---Level: Public | |
69 | ---Purpose: Checks whether the sensitive entity matches the picking | |
70 | -- detection area (close to the picking line). | |
71 | -- For details please refer to base class declaration. | |
7fd59977 | 72 | |
73 | Matches (me :mutable; | |
74 | XMin,YMin,XMax,YMax : Real from Standard; | |
75 | aTol: Real from Standard) | |
76 | returns Boolean | |
77 | is redefined virtual; | |
78 | ---Level: Public | |
79 | ||
80 | Matches (me :mutable; | |
81 | Polyline:Array1OfPnt2d from TColgp; | |
82 | aBox:Box2d from Bnd; | |
83 | aTol: Real from Standard) | |
84 | returns Boolean | |
85 | is redefined virtual; | |
86 | ---Level: Public | |
87 | ||
88 | ||
4269bd1b | 89 | ComputeDepth (me; |
90 | thePickLine : Lin from gp; | |
91 | theDepthMin, theDepthMax : Real from Standard) | |
92 | returns Real from Standard | |
93 | is virtual; | |
7fd59977 | 94 | ---Level: Public |
95 | ---Purpose: Computes the depth values for all 3D points defining this face and returns | |
4269bd1b | 96 | -- the minimal value among them. |
7fd59977 | 97 | -- If the "minimal depth" approach is not suitable and gives wrong detection results |
4269bd1b | 98 | -- in some particular case, a custom sensitive face class can redefine this method. |
99 | ||
100 | ComputeDepth(me;EyeLine: Lin from gp) | |
101 | is private; | |
102 | ---Level: Public | |
103 | ---Purpose: Warning: Obsolete. | |
104 | -- Use newer version of the method with min, max limits passed as arguments. | |
7fd59977 | 105 | |
ac04d101 SA |
106 | Dump(me; S: in out OStream;FullDump : Boolean from Standard = Standard_True) is redefined virtual; |
107 | ||
108 | GetConnected(me: mutable; theLocation : Location from TopLoc) | |
109 | returns SensitiveEntity from Select3D | |
110 | is redefined virtual; | |
111 | ---Level: Public | |
112 | ---Purpose: Returns the copy of this | |
7fd59977 | 113 | |
114 | ||
115 | fields | |
116 | ||
117 | mytype : TypeOfSensitivity; | |
7fd59977 | 118 | end SensitiveFace; |