1 -- File:        IntCurveSurface_PolyhedronTool.cdl
2 -- Created:     Fri Mar 12 11:05:50 1993
3 -- Author:      Laurent BUCHARD
4 --              <lbr@sdsun2>
8 generic class PolyhedronTool from IntCurveSurface
9     (ThePolyhedron as any) -- as Polyhedron from IntCurveSurface
11     ---Purpose: Describe the signature  of  a polyhedral  surface with
12     --          only triangular facets and the  necessary informations
13     --          to compute the interferences.
16 uses    XYZ           from gp,
17         Pnt           from gp,
18         Box           from Bnd,
19         HArray1OfBox  from Bnd
22 raises  OutOfRange from Standard
25 is
28     Bounding       (myclass; thePolyh : ThePolyhedron)
29         ---Purpose: Give the bounding box of the PolyhedronTool.
30         ---C++: return const &
31         ---C++: inline
32     returns Box from Bnd;
35     ComponentsBounding
36                    (myclass; thePolyh : ThePolyhedron)
37         ---Purpose: Give the array of boxes. The box <n> corresponding
38         --          to the triangle <n>.
39         ---C++: return const &
40         ---C++: inline
41     returns HArray1OfBox from Bnd;
44     DeflectionOverEstimation
45                    (myclass; thePolyh : ThePolyhedron)
46         ---Purpose: Give the tolerance of the polygon.
47         ---C++: inline
48     returns Real from Standard;
53 -- Structure needings :
55     NbTriangles    (myclass; thePolyh : ThePolyhedron)
56                     returns Integer from Standard;
57     ---Purpose: Give the number of triangles in this polyedral surface.
58     ---C++: inline
61     Triangle       (myclass; thePolyh : ThePolyhedron;
62                     Index     : in Integer from Standard;
63                     P1,P2,P3  : out Integer from Standard)
64                     raises OutOfRange from Standard;
65     ---Purpose: Give the indices  of  the 3 points of  the triangle of
66     --          address Index in the PolyhedronTool.
67     ---C++: inline
70     Point          (myclass; thePolyh : ThePolyhedron;
71                     Index : in Integer)
72                     returns Pnt from gp
73                     raises OutOfRange from Standard;
74     ---Purpose: Give the point of index i in the polyedral surface.
75     ---C++: return const &
76     ---C++: inline
79     TriConnex      (myclass; thePolyh : ThePolyhedron;
80                     Triang       : in Integer;
81                     Pivot,Pedge  : in Integer;
82                     TriCon       : out Integer;
83                     OtherP       : out Integer)
84                     returns Integer
85                     raises OutOfRange from Standard;
86     ---Purpose: Give the  addresse Tricon of   the triangle connexe to
87     --          the triangle of address Triang by the edge Pivot Pedge
88     --          and the third point of this  connexe triangle. When we
89     --          are on  a free edge TriCon==0  but the function return
90     --          the value of  the triangle in the  other side of Pivot
91     --          on the free edge.  Used to turn around a vertex.
92     ---C++: inline
95 -- Modified by Sergey KHROMOV - Fri Dec  7 13:25:47 2001 Begin
97     IsOnBound(myclass;  thePolyh: ThePolyhedron;
98                         Index1  : Integer  from  Standard;
99                         Index2  : Integer  from  Standard)
100     ---Purpose: This method returns true if the edge based on points with
101     --          indices Index1 and Index2 represents a boundary edge. It is
102     --          necessary to take into account the boundary deflection for
103     --          this edge.
104     ---C++: inline
105     returns  Boolean  from  Standard;
107     GetBorderDeflection(myclass;  thePolyh : ThePolyhedron)
108     ---Purpose: This method returns a border deflection of the polyhedron.
109     ---C++: inline
110     returns  Real  from  Standard;
112 -- Modified by Sergey KHROMOV - Fri Dec  7 13:25:53 2001 End
115     Dump          (myclass; thePolyh: ThePolyhedron);
117 end PolyhedronTool;