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