0024624: Lost word in license statement in source files
[occt.git] / src / BRepFill / BRepFill_LocationLaw.cdl
1 -- Created on: 1998-01-14
2 -- Created by: Philippe MANGIN
3 -- Copyright (c) 1998-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 deferred  class LocationLaw from BRepFill  inherits TShared from MMgt
18
19         ---Purpose: Location Law on a  Wire.
20          
21         ---Level: Advanced 
22
23 uses 
24   LocationLaw from  GeomFill,  
25   HArray1OfLocationLaw from GeomFill,  
26   PipeError        from GeomFill,
27   HArray1OfReal    from TColStd,  
28   Array1OfInteger  from TColStd, 
29   HArray1OfInteger from TColStd, 
30   HArray1OfShape   from  TopTools, 
31   Shape  from TopoDS,
32   Wire   from TopoDS, 
33   Edge   from TopoDS, 
34   Vertex from TopoDS
35   
36 raises 
37   OutOfRange  from  Standard
38
39 is 
40   Init (me  :  mutable;  Path   :  Wire  from  TopoDS)
41   ---Purpose: Initialize all the fields, this methode have to
42   --          be called by the constructors of Inherited class.  
43   is  protected; 
44
45   GetStatus(me) 
46   ---Purpose: Return a error status, if the  status is not PipeOk then
47   --          it exist a parameter tlike the law is not valuable for t.
48   returns  PipeError  from  GeomFill;
49
50   TransformInG0Law(me  :  mutable)  
51    ---Purpose:  Apply a linear   transformation  on each law, to  have
52    --          continuity of the global law beetween the edges.
53   is virtual; 
54    
55   
56   TransformInCompatibleLaw(me  :  mutable;  
57                             AngularTolerance  :  Real)  
58    ---Purpose: Apply a linear transformation on each law, to reduce
59    --           the   dicontinuities  of law at one  rotation.         
60   is virtual;    
61       
62   TangentIsMain(me  :  mutable)  
63     ---Purpose: To preseve if possible  the Tangent in transformations
64            -- It is the default mode.                 
65   is  protected; 
66    
67   NormalIsMain(me  :  mutable)  
68     ---Purpose: To preseve if possible the Normal in transformations          
69   is  protected;    
70    
71   BiNormalIsMain(me  :  mutable)  
72     ---Purpose: To preseve if possible the BiNormal in transformations         
73   is  protected;  
74
75   DeleteTransform(me  :  mutable)   
76   is  static;
77        
78   NbHoles(me:  mutable;  Tol  :  Real  =  1.0e-7)  
79   returns  Integer; 
80    
81   Holes(me; Interval  : out Array1OfInteger  from TColStd);  
82     
83   NbLaw(me)  
84   ---Purpose: Return the number of elementary Law
85   returns  Integer; 
86    
87   Law(me; Index  :  Integer)
88    ---Purpose: Return the elementary Law of rank <Index>
89    --          <Index> have to be in [1, NbLaw()]
90    ---C++: return const &
91     returns LocationLaw from GeomFill   
92     raises OutOfRange;   
93      
94   Wire(me)     
95   ---Purpose: return the path  
96   ---C++: return const &
97   returns  Wire  from  TopoDS;
98      
99   Edge(me; Index  :  Integer) 
100    ---Purpose: Return the Edge of rank <Index> in the path 
101    --          <Index> have to be in [1, NbLaw()] 
102      ---C++: return const &
103     returns Edge from TopoDS   
104     raises OutOfRange;  
105      
106   Vertex(me; Index  :  Integer) 
107         ---Purpose: Return the vertex of rank <Index> in the path 
108         --          <Index> have to be in [0, NbLaw()] 
109     returns Vertex from TopoDS   
110     raises OutOfRange;
111       
112   PerformVertex(me;  Index        :  Integer; 
113                      InputVertex  : Vertex from TopoDS; 
114                      TolMin       : Real; 
115                      OutputVertex :  out  Vertex; 
116                      Location     :  Integer  =  0)  
117         ---Purpose: Compute <OutputVertex> like a transformation of
118         --          <InputVertex>  the  transformation   is given by
119         --          evaluation of the location law   in the vertex of
120         --          rank   <Index>.      
121         --          <Location> is used to manage discontinuities :
122         --   - -1 : The law before the vertex is used.
123         --   -  1 : The law after the vertex is used.
124         --   -  0 : Average of the both laws is used.
125   is  static;      
126                                                           
127   CurvilinearBounds(me;  Index  :  Integer;   
128                     First,  Last  :out  Real);
129   ---Purpose:Return the Curvilinear Bounds of the <Index> Law
130      
131   IsClosed(me)  returns Boolean;
132     
133   IsG1(me; Index  :  Integer;
134            SpatialTolerance  :  Real  =  1.0e-7; 
135            AngularTolerance  :  Real  =  1.0e-4)  
136   ---Purpose: Compute the Law's continuity beetween 2 edges of the path
137         -- The result can be : 
138         --  -1 : Case Not connex
139         --  0  : It is connex (G0)
140         --  1  : It is tangent (G1)
141   returns  Integer; 
142
143   D0(me:mutable;  Abscissa  :Real;   
144      Section  :  in  out  Shape  from  TopoDS);       
145   ---Purpose: Apply the Law to a shape, for a given Curnilinear abscissa
146             
147             
148   Parameter(me:mutable; Abscissa  :Real; 
149             Index  :  out  Integer;   
150             Param  :  out  Real);
151    ---Purpose: Find the  index Law  and the  parmaeter, for  a given
152    --          Curnilinear abscissa
153              
154             
155   Abscissa(me:mutable;  Index  :  Integer;   
156            Param  :  Real)  
157   ---Purpose:Return the curvilinear abscissa  corresponding to a point
158   --                 of  the path, defined by  <Index>  of  Edge and a
159   --                parameter on the edge.                      
160   returns  Real;   
161       
162 fields  
163   myPath   :  Wire                 from TopoDS   is  protected; 
164   myTol    :  Real                               is  protected;
165   myLaws   :  HArray1OfLocationLaw from GeomFill is  protected;
166   myLength :  HArray1OfReal        from TColStd  is  protected;  
167   myEdges  :  HArray1OfShape       from TopTools is  protected; 
168   myDisc   :  HArray1OfInteger     from TColStd  is  protected; 
169   myType   :  Integer;
170 end LocationLaw;
171
172
173