0024023: Revamp the OCCT Handle -- downcast (automatic)
[occt.git] / src / GeomFill / GeomFill_DraftTrihedron.cdl
1 -- Created on: 1998-04-14
2 -- Created by: Stephanie HUMEAU
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 ----------------------------------------------------
18 -- Triedre de Frenet pour une surface de depouille
19 ----------------------------------------------------
20
21 class  DraftTrihedron  from  GeomFill   
22 inherits  TrihedronLaw  from  GeomFill 
23
24 uses  
25     Shape  from  GeomAbs, 
26     Array1OfReal   from TColStd, 
27     Vec  from  gp  
28
29 raises
30     OutOfRange,  ConstructionError
31
32 is 
33     Create (BiNormal :  Vec from gp;   
34             Angle  :  Real )   
35     returns  DraftTrihedron  from  GeomFill;  
36      
37     SetAngle(me  :  mutable; Angle  :  Real) 
38     is  static; 
39
40     Copy(me)  returns  TrihedronLaw  from  GeomFill          
41      is  redefined;
42      
43   
44     D0( me : mutable;  
45         Param  : Real; 
46         Tangent    : out  Vec  from  gp; 
47         Normal     : out  Vec  from  gp;  
48         BiNormal   : out  Vec  from  gp)        
49     returns Boolean  is  redefined;    
50       
51   ---Purpose: compute Triedrhon and derivative Trihedron on curve at
52   --          parameter <Param>
53   --  Warning : It used  only for C1 or C2 aproximation
54     D1( me : mutable;
55         Param: Real;       
56         Tangent    : out  Vec  from  gp;  
57         DTangent   : out  Vec  from  gp; 
58         Normal     : out  Vec  from  gp; 
59         DNormal    : out  Vec  from  gp;                 
60         BiNormal   : out  Vec  from  gp; 
61         DBiNormal  : out  Vec  from  gp)
62     returns Boolean  is  redefined; 
63
64     ---Purpose: compute Trihedron on curve          
65     --          first and seconde  derivatives.         
66     --  Warning : It used only for C2 aproximation   
67     D2( me : mutable;
68         Param: Real;       
69         Tangent    : out  Vec  from  gp;  
70         DTangent   : out  Vec  from  gp; 
71         D2Tangent  : out  Vec  from  gp; 
72         Normal     : out  Vec  from  gp; 
73         DNormal    : out  Vec  from  gp;                 
74         D2Normal   : out  Vec  from  gp; 
75         BiNormal   : out  Vec  from  gp; 
76         DBiNormal  : out  Vec  from  gp; 
77         D2BiNormal : out  Vec  from  gp)    
78     returns Boolean  is  redefined;  
79
80 -- 
81 --  =================== Management  of  continuity  ===================
82 --                 
83    NbIntervals(me; S : Shape from GeomAbs) 
84         ---Purpose: Returns  the number  of  intervals for  continuity
85         --          <S>. 
86         --          May be one if Continuity(me) >= <S>
87    returns Integer  is  redefined;
88
89    Intervals(me; T : in out Array1OfReal from TColStd; 
90                  S : Shape from GeomAbs)
91         ---Purpose: Stores in <T> the  parameters bounding the intervals
92         --          of continuity <S>.
93         --          
94         --          The array must provide  enough room to  accomodate
95         --          for the parameters. i.e. T.Length() > NbIntervals()
96     raises
97         OutOfRange from Standard 
98     is redefined;    
99     
100 --  =====================  To help   computation of  Tolerance ============      
101     GetAverageLaw(me  :  mutable;
102       ATangent    : out  Vec  from  gp; 
103       ANormal     : out  Vec  from  gp; 
104       ABiNormal   : out  Vec  from  gp) 
105      ---Purpose: Get average value of Tangent(t) and Normal(t) it is usefull to 
106      --          make fast approximation of rational  surfaces.        
107   is  redefined; 
108    
109   
110 --   =================== To help Particular case   ===============      
111    
112     IsConstant(me) 
113     ---Purpose: Say if the law is Constant.        
114     returns  Boolean   
115     is redefined;   
116      
117     IsOnlyBy3dCurve(me) 
118      ---Purpose: Return True.        
119     returns  Boolean   
120     is redefined;   
121      
122 fields  
123  
124     B :  Vec  from  gp; 
125     myAngle  :  Real  from  Standard;  
126     myCos    :  Real;
127    
128 end  DraftTrihedron; 
129
130