0024624: Lost word in license statement in source files
[occt.git] / src / Intf / Intf_InterferencePolygon3d.cdl
CommitLineData
b311480e 1-- Created on: 1992-09-29
2-- Created by: Didier PIFFAULT
3-- Copyright (c) 1992-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 8-- This library is free software; you can redistribute it and/or modify it under
9-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17generic class InterferencePolygon3d from Intf
18 (Polygon3d1 as any;
19 ToolPolygon3d1 as any; -- as ToolPolygon(Pnt,Polygon3d1,Box)
20 Polygon3d2 as any;
21 ToolPolygon3d2 as any) -- as ToolPolygon(Pnt,Polygon3d2,Box)
22 inherits Interference from Intf
23
24 ---Purpose: Computes the interference between two polygons or the
25 -- self interference of a polygon in 3 dimensions . In 3
26 -- dimensions the result can be a common perpendicular ,
27 -- an orthogonal projection or a real intersections.
28 -- There are two different instantiation arguments to
29 -- authorize an interference between two polygons from
30 -- differents origin. Ex : to intersect a curve polygon
31 -- with an algorithmic curve from numerical walking
32 -- between two surfaces.
33
34uses Pnt from gp,
35 SectionPoint from Intf,
36 SeqOfSectionPoint from Intf,
37 SectionLine from Intf,
38 SeqOfSectionLine from Intf
39
40raises OutOfRange from Standard
41
42
43is
44-- Interface :
45
46 Create returns InterferencePolygon3d from Intf;
47 ---Purpose: Constructs an empty interference of 3d Polygon.
48
49
50 Create (Obje1 : in Polygon3d1 ;Obje2 : in Polygon3d2)
51 returns InterferencePolygon3d from Intf;
52 ---Purpose: Constructs and computes an interference between two Polygons.
53
54
55 Create (Obje : in Polygon3d1)
56 returns InterferencePolygon3d from Intf;
57 ---Purpose: Constructs and computes the self interference of a Polygon.
58
59
60 Perform (me : in out;
61 Obje1 : in Polygon3d1 ;Obje2 : in Polygon3d2);
62 ---Purpose: Computes an interference between two Polygons.
63
64
65 Perform (me : in out;
66 Obje : in Polygon3d1);
67 ---Purpose: Computes the auto interference of a Polygon.
68
69
70 NbResults (me)
71 returns Integer is static;
72 ---Purpose: Gives the number of common Perpendiculars or orthogonal
73 -- projections between the two polygons.
74
75 ResultLine (me;
76 Index : in Integer)
77 returns SectionLine from Intf
78 raises OutOfRange from Standard
79 is static;
80 ---Purpose: Gives the segment of address <Index> in the interference
81 -- representing the perpendicular or the orthogonal
82 -- projection .
83 --
84 ---C++: return const &
85
86
87 ResultValue (me;
88 Index : in Integer)
89 returns Real from Standard
90 raises OutOfRange from Standard
91 is static;
92 ---Purpose: Gives the distance between the two polygons
93
94
95 MinimalDistance(me)
96 returns Real from Standard
97 is static;
98 ---Purpose: Gives the distance between the two polygon3d at the
99 -- perpendicular or projection of minimal length.
100
101
102 MinimalResult (me)
103 returns Integer from Standard
104 is static;
105 ---Purpose: Give the perpendicular or projection of minimal length.
106 -- WARNING : if there are points of intersection the minimal
107 -- result is one of them and this function is unusuable.
108
109
110-- Implementation :
111
112 Interference (me : in out;
113 Obje1 : in Polygon3d1;
114 Obje2 : in Polygon3d2)
115 is private;
116
117 Interference (me : in out;
118 Obje : in Polygon3d1)
119 is private;
120
121 CommonPerpen (me : in out;
122 BegO : in Pnt from gp;
123 EndO : in Pnt from gp;
124 BegT : in Pnt from gp;
125 EndT : in Pnt from gp)
126 is private;
127 ---Purpose: Computes the common perpendicular between the two
128 -- segments <BegO><EndO> and <BegT><EndT>.
129
130 Projections (me : in out;
131 BegO : in Pnt from gp;
132 EndO : in Pnt from gp;
133 BegT : in Pnt from gp;
134 EndT : in Pnt from gp)
135 is private;
136 ---Purpose: Computes the different orthogonal projections between
137 -- segment <BegO><EndO> and points <BegT>,<EndT> and segment
138 -- <BegT><EndT> and points <BegO>,<EndO>.
139
140
41194117
K
141fields IndexMin : Integer from Standard;
142 MinimalDist : Real from Standard;
143 iObje1, iObje2 : Integer from Standard;
144 beginOfNotClosedFirst: Boolean from Standard;
145 beginOfNotClosedSecon: Boolean from Standard;
146
7fd59977 147
148end InterferencePolygon3d;