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