40f940c13488bf65a34fd935138d815887f74324
[occt.git] / src / Select3D / Select3D_SensitiveTriangle.cdl
1 -- Created on: 1997-05-14
2 -- Created by: Robert COUBLANC
3 -- Copyright (c) 1997-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 class SensitiveTriangle from Select3D  
24 inherits SensitivePoly from Select3D
25
26     ---Purpose: A framework to define selection of triangles in a view.
27     -- This comes into play in the detection of meshing and triangulation in surfaces.
28     -- In some cases this class can raise Standard_ConstructionError and 
29     -- Standard_OutOfRange exceptions. For more details see Select3D_SensitivePoly.
30
31 uses
32     EntityOwner      from SelectBasics,
33     Projector        from Select3D,
34     Lin              from gp,
35     ListOfBox2d      from SelectBasics,
36     Array1OfPnt2d    from TColgp,
37     Box2d            from Bnd,
38     XY               from gp,
39     Pnt              from gp,
40     TypeOfSensitivity from Select3D,
41     Location          from TopLoc, 
42     SensitiveEntity   from Select3D
43
44 raises
45     ConstructionError from Standard,
46     OutOfRange from Standard
47
48 is
49     Create (OwnerId      : EntityOwner from SelectBasics;
50             P1,P2,P3     : Pnt from gp;
51             Sensitivity  : TypeOfSensitivity = Select3D_TOS_INTERIOR)
52      returns mutable SensitiveTriangle;
53     ---Level: Public 
54         ---Purpose: Constructs a sensitive triangle object defined by the
55         -- owner OwnerId, the points P1, P2, P3, and the type of sensitivity Sensitivity. 
56
57     Matches(me  :mutable; 
58             X,Y : Real from Standard;
59             aTol: Real from Standard;
60             DMin: out Real from Standard) 
61     returns Boolean
62     is redefined virtual;
63
64     Matches (me  :mutable; 
65              XMin,YMin,XMax,YMax : Real from Standard;
66              aTol: Real from Standard) 
67     returns Boolean
68     is redefined virtual;
69         ---Level: Public 
70      
71     Matches (me  :mutable; 
72              Polyline:Array1OfPnt2d from TColgp;
73          aBox:Box2d from Bnd;
74              aTol: Real from Standard) 
75     returns Boolean
76     is redefined virtual;
77         ---Level: Public 
78     
79     
80     ComputeDepth(me;EyeLine: Lin from gp) 
81     returns Real from Standard is redefined static;
82
83
84     Points3D(me; P1,P2,P3 : out Pnt from gp) ;
85         ---Purpose: Returns the 3D points P1, P2, P3 used at the time of construction.
86     Center3D (me) returns Pnt from gp;
87         ---Purpose: Returns the center point of the sensitive triangle created at construction time.
88     Center2D (me) returns XY from gp;
89         ---Purpose: WARNING : the returned Values are the original values
90         --          without the stored  location (if there's one).
91         --          To get the genuine value, One must apply this location
92         --          (Method Location() )
93     
94     
95     
96     
97     Status(me; 
98              X,Y  : Real from Standard;
99              aTol : Real from Standard ;
100              Dmin : out Real from Standard)
101     returns Integer from Standard;
102     
103     Status (myclass;
104              p0,p1,p2: XY from gp ;
105              aPoint  : XY from gp ;
106              aTol    : Real from Standard;
107              Dmin    : out Real from Standard) returns Integer from  Standard;
108     ---Purpose: Dmin gives the distance between the cdg and aPoint return 
109
110     Dump(me; S: in out OStream;FullDump : Boolean from Standard = Standard_True) is redefined virtual; 
111
112     GetConnected(me: mutable; theLocation : Location from TopLoc) 
113     returns SensitiveEntity from Select3D 
114     is redefined virtual; 
115         ---Level: Public 
116         ---Purpose: Returns the copy of this
117
118
119 fields
120     mytype  : TypeOfSensitivity from Select3D;
121 end SensitiveTriangle;