0024784: Move documentation in CDL files to proper location
[occt.git] / src / IntPolyh / IntPolyh_Intersection.cdl
CommitLineData
b311480e 1-- Created on: 1999-03-03
2-- Created by: Fabrice SERVANT
3-- Copyright (c) 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
17-- Modified by skv - Thu Sep 25 17:57:09 2003 OCC567
18-- Add two private methods: PerformMaillage(..) and MergeCouples(..) and several
19-- private fields. Removed field MaillageS.
20-- The method MergeCouples(..) is used
21-- to remove same couples of interferable triangles from different
22-- MaillageAffinage's in order to avoid taking them into section lines several
23-- times.
24
25class Intersection from IntPolyh
ff8178ef 26 ---Purpose: the main algorithm. Algorythm outputs are
27 -- lines and points like discribe in the last
28 -- paragraph. The Algorythm provides direct acces to
29 -- the elements of those lines and points. Other
30 -- classes of this package are for internal use and
31 -- only concern the algorithmic part.
7fd59977 32
33uses
34
35 Pnt from gp,
36 HSurface from Adaptor3d,
37 Array1OfReal from TColStd,
38 Point from IntPolyh,
39 Edge from IntPolyh,
40 Triangle from IntPolyh,
41 ArrayOfPoints from IntPolyh,
42 ArrayOfEdges from IntPolyh,
43 ArrayOfTriangles from IntPolyh,
44 PMaillageAffinage from IntPolyh,
45 SectionLine from IntPolyh,
46 ArrayOfSectionLines from IntPolyh,
47 --TangentZones from IntPolyh, On utilise la classe StartPoint
48 ArrayOfTangentZones from IntPolyh,
49 ArrayOfCouples from IntPolyh
50
51is
52
53 Create(S1,S2 : HSurface from Adaptor3d);
54
55 ---Purpose: Constructor
56 --
57 --
58
59 Create(S1 : HSurface from Adaptor3d;
60 NbSU1,NbSV1 : Integer from Standard;
61 S2 : HSurface from Adaptor3d;
62 NbSU2,NbSV2 : Integer from Standard);
63
64 ---Purpose: NbSU1 ... NbSV2 are used to compute the initial
65 -- samples of the iso parametric meshes on the
66 -- surfaces.
67 Create(S1 : HSurface from Adaptor3d;
68 anUpars1, aVpars1 : Array1OfReal from TColStd;
69 S2 : HSurface from Adaptor3d;
70 anUpars2, aVpars2 : Array1OfReal from TColStd);
71
72 ---Purpose: D1, D2 are used to compute the initial
73 -- samples of the iso parametric meshes on the
74 -- surfaces.
75
76 Perform(me: in out)
77
78 ---Purpose: Compute the intersection.
79
80 is static;
81
82 Perform(me: in out;
83 Upars1, Vpars1, Upars2, Vpars2 : Array1OfReal from TColStd)
84
85 ---Purpose: Compute the intersection.
86
87 is static;
88
89
90 IsDone(me)
91
92 returns Boolean from Standard
93 is static;
94
95 ---------------------------------------------------------------
96
97 NbSectionLines(me)
98
99 returns Integer from Standard
100 is static;
101
102
103 NbPointsInLine(me; IndexLine: Integer from Standard)
104 returns Integer from Standard
105 is static;
106
107 GetLinePoint(me; IndexLine,IndexPoint: Integer from Standard;
108 x,y,z,u1,v1,u2,v2,incidence : out Real from Standard)
109 is static;
110
111 ---------------------------------------------------------------
112
113 NbTangentZones(me)
114
115 returns Integer from Standard
116 is static;
117
118
119 NbPointsInTangentZone(me; IndexLine: Integer from Standard)
120 returns Integer from Standard
121 is static;
122
123 GetTangentZonePoint(me; IndexLine,IndexPoint: Integer from Standard;
124 x,y,z,u1,v1,u2,v2 : out Real from Standard)
125 is static;
126
127 -- Modified by skv - Thu Sep 25 17:57:09 2003 OCC567 Begin
128 PerformMaillage(me: in out;
129 isFirstFwd : Boolean from Standard;
130 isSecondFwd : Boolean from Standard;
131 MaillageS : in out PMaillageAffinage from IntPolyh)
132 ---Purpose: Computes MaillageAffinage
133 returns Boolean from Standard
134 is static private;
135
136 PerformMaillage(me: in out; MaillageS: in out PMaillageAffinage from IntPolyh)
137 ---Purpose: The method PerformMaillage(..) is used to compute MaillageAffinage. It is
138-- called four times (two times for each surface) for creation of inscribed
139-- and circumscribed mesh for each surface.
140 returns Boolean from Standard
141 is static private;
142
143 -- Modified by skv - Thu Sep 25 17:57:09 2003 OCC567 Begin
144 PerformMaillage(me: in out;
145 isFirstFwd : Boolean from Standard;
146 isSecondFwd : Boolean from Standard;
147 Upars1, Vpars1, Upars2, Vpars2 : Array1OfReal from TColStd;
148 MaillageS : in out PMaillageAffinage from IntPolyh)
149 ---Purpose: Computes MaillageAffinage
150 returns Boolean from Standard
151 is static private;
152
153 PerformMaillage(me: in out; Upars1, Vpars1, Upars2, Vpars2 : Array1OfReal from TColStd;
154 MaillageS: in out PMaillageAffinage from IntPolyh)
155 ---Purpose: The method PerformMaillage(..) is used to compute MaillageAffinage. It is
156-- called four times (two times for each surface) for creation of inscribed
157-- and circumscribed mesh for each surface.
158 returns Boolean from Standard
159 is static private;
160
161
162 MergeCouples(me; anArrayFF: in out ArrayOfCouples from IntPolyh;
163 anArrayFR: in out ArrayOfCouples from IntPolyh;
164 anArrayRF: in out ArrayOfCouples from IntPolyh;
165 anArrayRR: in out ArrayOfCouples from IntPolyh)
166 ---Purpose: This method analyzes arrays to find same couples. If some
167 -- are detected it leaves the couple in only one array
168 -- deleting from others.
169 is static private;
170 -- Modified by skv - Thu Sep 25 17:57:11 2003 OCC567 End
171 -- ofv from
172 PerformStd(me: in out;
173 MaillageS: in out PMaillageAffinage from IntPolyh;
174 NbCouples: in out Integer from Standard)
175 ---Purpose: Process default interference
176 returns Boolean from Standard
177 is static private;
178
179 PerformAdv(me: in out;
180 MaillageFF: in out PMaillageAffinage from IntPolyh;
181 MaillageFR: in out PMaillageAffinage from IntPolyh;
182 MaillageRF: in out PMaillageAffinage from IntPolyh;
183 MaillageRR: in out PMaillageAffinage from IntPolyh;
184 NbCouples : in out Integer from Standard)
185 ---Purpose: Process advanced interference
186 returns Boolean from Standard
187 is static private;
188 PerformStd(me: in out;
189 Upars1, Vpars1, Upars2, Vpars2 : Array1OfReal from TColStd;
190 MaillageS: in out PMaillageAffinage from IntPolyh;
191 NbCouples: in out Integer from Standard)
192 ---Purpose: Process default interference
193 returns Boolean from Standard
194 is static private;
195
196 PerformAdv(me: in out;
197 Upars1, Vpars1, Upars2, Vpars2 : Array1OfReal from TColStd;
198 MaillageFF: in out PMaillageAffinage from IntPolyh;
199 MaillageFR: in out PMaillageAffinage from IntPolyh;
200 MaillageRF: in out PMaillageAffinage from IntPolyh;
201 MaillageRR: in out PMaillageAffinage from IntPolyh;
202 NbCouples : in out Integer from Standard)
203 ---Purpose: Process advanced interference
204 returns Boolean from Standard
205 is static private;
206 -- ofv to
207
208
209fields
210
211 done : Boolean from Standard;
212 nbsectionlines : Integer from Standard;
213 nbtangentzones : Integer from Standard;
214
215 TSectionLines : ArrayOfSectionLines from IntPolyh;
216 TTangentZones : ArrayOfTangentZones from IntPolyh;
217
218 -- Modified by skv - Thu Sep 25 17:38:57 2003 OCC567 Begin
219 -- MaillageS : MaillageAffinage from IntPolyh;
220 myNbSU1 : Integer from Standard;
221 myNbSV1 : Integer from Standard;
222 myNbSU2 : Integer from Standard;
223 myNbSV2 : Integer from Standard;
224 -- Modified by skv - Thu Sep 25 17:38:58 2003 OCC567 End
225
226 mySurf1 : HSurface from Adaptor3d;
227 mySurf2 : HSurface from Adaptor3d;
228
229end Intersection from IntPolyh;
230
231