0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / HLRBRep / HLRBRep_EdgeInterferenceTool.cdl
1 -- Created on: 1997-04-17
2 -- Created by: Christophe MARION
3 -- Copyright (c) 1997-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
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
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class EdgeInterferenceTool from HLRBRep
18
19         ---Purpose: Implements the  methods required  to  instantiates
20         --          the EdgeInterferenceList from HLRAlgo.
21
22 uses
23     Integer      from Standard,
24     Boolean      from Standard,
25     Real         from Standard,
26     Dir          from gp,
27     Orientation  from TopAbs,
28     Intersection from HLRAlgo,
29     Interference from HLRAlgo,
30     Data         from HLRBRep
31
32 is
33     Create(DS : Data from HLRBRep) returns EdgeInterferenceTool from HLRBRep;
34
35     --- methods to iterate on the Vertices of the Edge
36     
37     LoadEdge(me : in out)
38     is static;
39         
40     InitVertices(me : in out)
41         ---C++: inline
42     is static;
43     
44     MoreVertices(me) returns Boolean from Standard
45         ---C++: inline
46     is static;
47     
48     NextVertex(me : in out)
49         ---C++: inline
50     is static;
51     
52     CurrentVertex(me) returns Intersection from HLRAlgo
53         ---C++: inline
54         ---C++: return const &
55     is static;
56     
57     CurrentOrientation(me) returns Orientation from TopAbs
58         ---C++: inline
59     is static;
60     
61     CurrentParameter(me) returns Real from Standard
62         ---C++: inline
63     is static;
64     
65     -- Data on the Edge
66
67     IsPeriodic(me) returns Boolean from Standard
68         ---C++: inline
69     is static;
70
71     EdgeGeometry(me; Param :     Real from Standard;
72                      Tgt   : out Dir  from gp;
73                      Nrm   : out Dir  from gp;
74                      Curv  : out Real from Standard)
75         ---Purpose: Returns local geometric description of the Edge at
76         --          parameter   <Para>.  See  method  Reset  of  class
77         --          EdgeFaceTransition from TopCnx for other arguments.
78     is static;
79     
80     -- Data on Interferences
81     
82     ParameterOfInterference(me; I : Interference from HLRAlgo) 
83     returns Real from Standard 
84         ---C++: inline
85     is static;
86     
87     SameInterferences(me; I1, I2 : Interference from HLRAlgo) 
88     returns Boolean from Standard 
89         ---Purpose: True if   the  two interferences are on   the same
90         --          geometric locus.
91     is static;
92     
93     SameVertexAndInterference(me; I : Interference from HLRAlgo)
94     returns Boolean from Standard
95         ---Purpose: True if the  Interference and the  current  Vertex
96         --          are on the same geometric locus.
97     is static;
98     
99     InterferenceBoundaryGeometry(me; I    :     Interference from HLRAlgo;
100                                      Tang : out Dir          from gp;       
101                                      Norm : out Dir          from gp;       
102                                      Curv : out Real         from Standard)
103         ---Purpose: Returns   the  geometry of  the   boundary  at the
104         --          interference  <I>.  See the AddInterference method
105         --          of the class  EdgeFaceTransition  from  TopCnx for
106         --          the other arguments.
107     is static;          
108     
109 fields
110     myDS   : Data         from HLRBRep;
111     inter  : Intersection from HLRAlgo [2];
112     cur    : Integer      from Standard;
113     
114 end EdgeInterferenceTool;