0024005: Intersecting a slightly off angle plane with a cylinder takes 7+ seconds
[occt.git] / src / IntTools / IntTools_TopolTool.cdl
1 -- Created on: 2002-04-18
2 -- Created by: Michael KLOKOV
3 -- Copyright (c) 2002-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21 class TopolTool from IntTools inherits TopolTool from Adaptor3d
22
23         ---Purpose: Class redefine methods of TopolTool from Adaptor3d
24         ---         concerning sample points
25         ---
26 uses
27     Pnt   from gp,
28     Pnt2d from gp,
29     HSurface from Adaptor3d, 
30     HArray1OfReal  from  TColStd
31
32 raises DomainError from Standard
33
34 is
35     Create returns mutable TopolTool from IntTools;
36         ---Purpose:
37         --- Empty constructor
38         ---
39
40     Create(theSurface: HSurface from Adaptor3d)
41         returns mutable TopolTool from IntTools;
42         ---Purpose:
43         --- Initializes me by surface
44         ---
45
46     Initialize(me: mutable)
47         is redefined;
48         ---Purpose:
49         --- Redefined empty initializer
50         ---
51         --  Warning:
52         --- Raises the exception NotImplemented
53         ---
54     
55     Initialize(me: mutable; theSurface: HSurface from Adaptor3d)
56         is redefined;
57         ---Purpose:
58         --- Initializes me by surface
59         ---
60
61     --- sample points  tools
62
63     ComputeSamplePoints(me: mutable)
64         is redefined;
65         ---Purpose:
66         --- 
67         ---
68     
69     NbSamplesU(me: mutable) 
70         returns Integer from Standard
71         is redefined;
72         ---Purpose: 
73         --- Computes the sample-points for the intersections algorithms
74         ---
75     
76     NbSamplesV(me: mutable) 
77         returns Integer from Standard
78         is redefined;
79         ---Purpose: 
80         --- Computes the sample-points for the intersections algorithms
81         ---
82     
83     NbSamples(me: mutable)
84         returns Integer from Standard
85         is redefined;
86         ---Purpose: 
87         --- Computes the sample-points for the intersections algorithms
88         ---
89
90     SamplePoint(me: mutable; Index: Integer from Standard;
91                              P2d  : out Pnt2d   from gp;
92                              P3d  : out Pnt     from gp)
93         is redefined;
94         ---Purpose:
95         --- Returns a 2d point from surface myS
96         --- and a corresponded 3d point
97         --- for given index.
98         --- The index should be from 1 to NbSamples()
99         ---
100
101     --modified by NIZNHY-IFV Sep 28 16:01:38 2005 f
102     SamplePnts(me: mutable; theDefl:  Real  from  Standard; theNUmin, theNVmin: Integer from Standard)
103         ---Purpose: compute the sample-points for the intersections algorithms
104         -- by adaptive algorithm for BSpline surfaces. For other surfaces algorithm
105         -- is the same as in method ComputeSamplePoints(), but only fill arrays of U
106         -- and V sample parameters;
107         -- theDefl is a requred deflection
108         -- theNUmin, theNVmin are minimal nb points for U and V.
109     is redefined;
110     
111 fields
112     --myS         : HSurface from Adaptor3d;  now inherits myS from Adaptor3d_TopolTool
113     myNbSmplU   : Integer  from Standard;
114     myNbSmplV   : Integer  from Standard;
115     myU0        : Real     from Standard;
116     myV0        : Real     from Standard;
117     myDU        : Real     from Standard;
118     myDV        : Real     from Standard;
119      
120 end TopolTool from IntTools;