0022887: Request to make Intf_InterferencePolygon2d class thread-safe.
[occt.git] / src / Intf / Intf_Interference.cdl
1 -- File:        Interference.cdl
2 -- Created:     Mon Jun 24 10:15:49 1991
3 -- Author:      Didier PIFFAULT
4 ---Copyright:   Matra Datavision 1991, 1992
5
6
7 deferred class Interference from Intf
8
9         ---Purpose: Describes the   Interference  computation    result
10         --          between polygon2d or polygon3d or polyhedron.
11
12 uses    SectionPoint      from Intf,
13         SeqOfSectionPoint from Intf,
14         SectionLine       from Intf,
15         SeqOfSectionLine  from Intf,
16         TangentZone       from Intf,
17         SeqOfTangentZone  from Intf
18
19
20 raises  OutOfRange from Standard
21
22
23 is  Initialize(Self : Boolean from Standard);
24
25     SelfInterference(me   : in out;
26                      Self : Boolean from Standard) is protected;
27     ---Purpose: Only one argument for the intersection.
28
29     NbSectionPoints(me)
30                     returns Integer is static;
31     ---Purpose: Gives the number   of  points of  intersection  in the
32     --          interference.
33     ---C++: inline
34
35     PntValue       (me;
36                     Index      : in Integer)
37                     returns SectionPoint from Intf
38                     raises OutOfRange from Standard
39                     is static;
40     ---Purpose: Gives the point of  intersection of address  Index in
41     --          the interference.
42     --
43     ---C++: return const &
44     ---C++: inline
45
46     NbSectionLines (me)
47                     returns Integer is static;
48     ---Purpose: Gives the number  of polylines of  intersection in the
49     --          interference.
50     ---C++: inline
51
52     LineValue      (me;
53                     Index      : in Integer)
54                     returns SectionLine from Intf
55                     raises OutOfRange from Standard
56                     is static;
57     ---Purpose: Gives the polyline of intersection at address <Index> in
58     --          the interference.
59     --
60     ---C++: return const &
61     ---C++: inline
62
63     NbTangentZones  (me)
64                     returns Integer is static;
65     ---Purpose: Gives the number of zones of tangence in the interference.
66     ---C++: inline
67
68     ZoneValue      (me;
69                     Index      : in Integer)
70                     returns TangentZone from Intf
71                     raises OutOfRange from Standard
72                     is static;
73     ---Purpose: Gives  the zone of  tangence at address   Index in the
74     --          interference.
75     --
76     ---C++: return const &
77     ---C++: inline
78
79     GetTolerance   (me)
80                     returns Real
81                     is static;
82     ---Purpose: Gives the tolerance used for the calculation.
83     ---C++: inline
84
85 -- Implementation functions :
86
87     Contains       (me;
88                     ThePnt : in SectionPoint from Intf)
89                     returns Boolean
90                     is static;
91     ---Purpose: Tests if the polylines of  intersection or the zones of
92     --          tangence contain the point of intersection <ThePnt>.
93
94
95     Insert         (me         : in out;
96                     TheZone    : in TangentZone from Intf)
97                     returns Boolean
98                     is static;
99     ---Purpose: Inserts a new zone of tangence in  the current list of
100     --          tangent zones of  the interference  and  returns  True
101     --          when done.
102
103
104     Insert         (me         : in out;
105                     pdeb       : in SectionPoint from Intf;
106                     pfin       : in SectionPoint from Intf)
107                     is static;
108     ---Purpose: Insert a new segment of intersection in the current  list of
109     --          polylines of intersection of the interference.
110
111
112     Dump           (me) is static;
113
114
115 fields    mySPoins  : SeqOfSectionPoint from Intf is protected;
116           mySLines  : SeqOfSectionLine  from Intf is protected;
117           myTZones  : SeqOfTangentZone  from Intf is protected;
118           SelfIntf  : Boolean from Standard is protected;
119           Tolerance : Real from Standard is protected;
120
121 end Interference;