0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / AppDef / AppDef_LinearCriteria.cdl
1 -- Created on: 1997-09-11
2 -- Created by: Philippe MANGIN
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 LinearCriteria from AppDef inherits SmoothCriterion from AppDef
18
19         ---Purpose: defined an Linear Criteria to used in variational
20         --          Smoothing of points.
21
22
23 uses
24    Vector  from  math, 
25    Matrix  from  math, 
26    Curve   from  FEmTool, 
27    HAssemblyTable    from  FEmTool, 
28    ElementaryCriterion  from  FEmTool,   
29    HArray2OfInteger  from TColStd, 
30    HArray1OfReal     from TColStd,
31    Array1OfReal      from TColStd,
32    MultiLine         from AppDef,
33    MyLineTool        from AppDef
34    
35 raises 
36   NotImplemented,   
37   DomainError 
38    
39  
40
41 is 
42     Create(SSP: MultiLine from AppDef; 
43            FirstPoint, LastPoint: Integer)  returns  LinearCriteria;
44
45     SetParameters(me  :  mutable;  Parameters  : HArray1OfReal); 
46
47     SetCurve(me  :  mutable;  C  :Curve from FEmTool) 
48     is  static; 
49      
50     GetCurve(me;  C  :  out  Curve  from FEmTool) 
51     is  static; 
52      
53     SetEstimation(me  :  mutable;  E1,  E2,  E3  :  Real)   
54     is  static; 
55
56     EstLength(me  :  mutable)   
57     ---C++: return &
58     returns  Real  is  static;      
59       
60     GetEstimation(me;  E1,  E2,  E3  : out Real)   
61     is  static; 
62      
63     AssemblyTable(me)  
64     returns HAssemblyTable  from  FEmTool   
65     is  static; 
66      
67     DependenceTable(me)  
68     returns  HArray2OfInteger  from TColStd   
69     is  static;  
70     
71      
72     QualityValues  (me : mutable; J1min,  J2min,  J3min  :  Real; 
73                                   J1,  J2,  J3  :  out  Real) 
74                                  returns  Integer  is  static; 
75
76     ErrorValues(me  :  mutable;   
77                 MaxError,  QuadraticError,  AverageError  :  out  Real) 
78     is  static;
79      
80     Hessian(me  :  mutable ;  
81             Element    :  Integer; 
82             Dimension1  :  Integer; 
83             Dimension2  :  Integer;
84             H  :  out  Matrix  from  math)  
85      raises  DomainError -- If DependenceTable(Dimension1,Dimension2) is False 
86      is  static;  
87    
88     
89     Gradient(me  :  mutable;  
90              Element  :  Integer; 
91              Dimension  :  Integer;
92              G  :  out  Vector  from  math) 
93     is  static; 
94     
95     InputVector(me  :  mutable;  X : Vector from math;   
96                                  AssTable : HAssemblyTable  from  FEmTool)  
97     ---Purpose: Convert the assembly Vector in an Curve;
98     --          
99     raises  DomainError; 
100      
101     SetWeight(me:  mutable;  
102               QuadraticWeight,  QualityWeight  :  Real; 
103               percentJ1,  percentJ2,  percentJ3  :  Real) 
104     is  static; 
105      
106     GetWeight(me;  QuadraticWeight,  QualityWeight  :  out  Real)  
107     is  static;  
108     
109     SetWeight(me:  mutable;  
110               Weight  :  Array1OfReal)
111     is  static; 
112      
113     BuildCache(me:  mutable;  E  :  Integer)  is  private;
114           
115 fields
116 mySSP         :  MultiLine from AppDef; 
117 myParameters  :  HArray1OfReal; 
118 myCache     :    HArray1OfReal;
119 myCriteria  :  ElementaryCriterion  from  FEmTool[3]; 
120 myEstimation:  Real[3];  
121 myQuadraticWeight,  myQualityWeight  :  Real; 
122 myPercent   :  Real[3]; 
123 myPntWeight :  Array1OfReal;
124 myCurve     :  Curve  from  FEmTool; 
125 myLength    :  Real;  
126 myE         :  Integer; 
127 IF,  IL     :  Integer;
128 end LinearCriteria;
129
130