0022887: Request to make Intf_InterferencePolygon2d class thread-safe.
[occt.git] / src / Intf / Intf.cdl
1 -- File:      Intf.cdl
2 -- Created:   Thu May 23 11:21:00 1991
3 -- Author:    Didier PIFFAULT
4 ---Copyright: Matra Datavision 1991, 1992
5
6
7 package Intf 
8
9         ---Purpose: Interference computation  between polygons, lines  and
10         --          polyhedra with only  triangular  facets. These objects
11         --          are polygonal  representations of complex   curves and
12         --          triangulated representations of complex surfaces.
13
14
15 uses Standard, TCollection, TColStd, gp, Bnd, IntAna2d
16
17
18 is
19
20 --  Enumeration :
21
22     enumeration PIType is EXTERNAL, FACE, EDGE, VERTEX;
23     ---Purpose: Describes the different intersection  point types for this
24     --          application.
25
26
27 --  Classes input data :
28
29     deferred class Polygon2d;
30     ---Purpose: Describes the necessary polygon information to compute
31     --          the interferences.
32
33     generic  class ToolPolyhedron;     -- Signature
34     ---Purpose: Describes the  necessary polyhedron information to compute
35     --          the interferences.
36
37
38     class Array1OfLin instantiates Array1 from TCollection
39                     (Lin from gp);
40     ---Purpose: Describes  a set of Straight Lines  to  intersect with the
41     --          Polyhedron.
42
43
44
45 --      Classes output data :
46
47     class SectionPoint;
48     ---Purpose: Describes a common point between two polygons  or between a
49     --          polygon and a polyhedron.
50
51     class SeqOfSectionPoint instantiates Sequence from TCollection
52                                             (SectionPoint);
53
54
55     class SectionLine;
56     ---Purpose: Describes a common line between two polyhedrons.
57
58     class SeqOfSectionLine instantiates Sequence from TCollection
59                                             (SectionLine);
60
61
62     class TangentZone;
63     ---Purpose: Describes a zone  of tangence between two polygons  or  two
64     --          polyhedrons.
65
66     class SeqOfTangentZone instantiates Sequence from TCollection
67                                             (TangentZone);
68
69
70     deferred class Interference;
71     ---Purpose: Describes  the Interference   computation result  as  three
72     --          sequences   of  points  of  intersection   ,  polylines of
73     --          intersection and zones de tangence.
74
75
76 -- Algorithms :
77
78     class Tool;
79         ---Purpose: The class tool  provide methods to  create Box  or
80         --          Box2d in particular contex. 
81
82
83
84
85     class InterferencePolygon2d;
86     ---Purpose: Computes   the  interference between   two polygons in  2d.
87     --          Result : points of intersections and zones of tangence.
88
89     generic class InterferencePolygon3d;
90     ---Purpose: Computes  the   interference  between  two  polygon  in 3d.
91     --          Section points, common perpendicular and projections.
92
93     generic class InterferencePolygonPolyhedron;
94     ---Purpose: Computes the interference  between a polygon or  a straight
95     --          line and a polyhedron.   Points of intersection  and zones
96     --          of tangence.
97
98     generic class InterferencePolyhedron;
99     ---Purpose: Compute the  interference  between two polyhedron.  Points
100     --          of intersection ,  polylines  of intersection and zones of
101     --          tangence.
102
103
104     --- Package Methods :
105     --  
106
107     PlaneEquation  (P1            : in Pnt from gp;
108                     P2            : in Pnt from gp;
109                     P3            : in Pnt from gp;
110                     NormalVector  : out XYZ from gp;
111                     PolarDistance : out Real from Standard);
112     ---Purpose: Give the plane equation of the triangle <P1> <P2> <P3>.
113
114
115     Contain        (P1            : in Pnt from gp;
116                     P2            : in Pnt from gp;
117                     P3            : in Pnt from gp;
118                     ThePnt        : in Pnt from gp)
119                     returns Boolean;
120     ---Purpose: Compute if the triangle <P1> <P2> <P3> contain <ThePnt>.
121
122
123 end Intf;