b311480e |
1 | -- Created on: 1997-09-12 |
2 | -- Created by: Philippe MANGIN |
3 | -- Copyright (c) 1997-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | |
22 | |
23 | class Curve from FEmTool inherits TShared from MMgt |
24 | |
25 | ---Purpose: Curve defined by Polynomial Elements. |
26 | |
27 | uses |
28 | Base from PLib, |
29 | Array1OfReal from TColStd, |
30 | HArray1OfInteger from TColStd, |
31 | Array2OfReal from TColStd, |
32 | Array1OfInteger from TColStd, |
33 | HArray1OfReal from TColStd |
34 | |
35 | raises |
36 | DimensionError |
37 | |
38 | is |
39 | Create(Dimension : Integer; |
40 | NbElements : Integer; |
41 | TheBase : Base from PLib; |
42 | Tolerance : Real); |
43 | |
44 | Knots(me) |
45 | ---C++: return & |
46 | returns Array1OfReal; |
47 | |
48 | SetElement(me : mutable; IndexOfElement : Integer; |
49 | Coeffs : Array2OfReal); |
50 | |
51 | D0(me : mutable; U : Real; Pnt : out Array1OfReal); |
52 | |
53 | D1(me : mutable; U : Real; Vec : out Array1OfReal); |
54 | |
55 | D2(me : mutable; U : Real; Vec : out Array1OfReal); |
56 | |
57 | Length(me : mutable; |
58 | FirstU, LastU : Real; |
59 | Length : out Real); |
60 | |
61 | GetElement(me : mutable; IndexOfElement : Integer; |
62 | Coeffs : out Array2OfReal); |
63 | |
64 | GetPolynom(me : mutable; Coeffs : out Array1OfReal); |
65 | ---Purpose: returns coefficients of all elements in canonical base. |
66 | |
67 | NbElements(me) returns Integer; |
68 | |
69 | Dimension(me) returns Integer; |
70 | |
71 | Base(me) returns Base from PLib; |
72 | |
73 | Degree(me; IndexOfElement : Integer) returns Integer; |
74 | |
75 | SetDegree(me : mutable; |
76 | IndexOfElement : Integer; |
77 | Degree : Integer); |
78 | |
79 | ReduceDegree(me : mutable; |
80 | IndexOfElement : Integer; Tol : Real; |
81 | NewDegree : out Integer; MaxError : out Real); |
82 | |
83 | |
84 | Update(me:mutable; Element : Integer; Order : Integer) |
85 | is private; |
86 | |
87 | fields |
88 | myNbElements : Integer; |
89 | myDimension : Integer; |
90 | myTolerance : Real; |
91 | myBase : Base from PLib; |
92 | myKnots : HArray1OfReal; |
93 | myDegree : Array1OfInteger; |
94 | myCoeff : Array1OfReal; -- Coeff in <myBase> |
95 | myPoly : Array1OfReal; -- Coeff in the canonnical Bases |
96 | myDeri : Array1OfReal; -- Coeff of the first Derivative |
97 | -- in the canonical Base |
98 | myDsecn : Array1OfReal; -- Coeff of the second Derivative |
99 | -- in the canonnical Base |
100 | HasPoly : Array1OfInteger; -- Say If the Ith Element |
101 | -- has an canonical Representation. |
102 | HasDeri : Array1OfInteger; -- Say If the Ith Element |
103 | -- has an first Derivative Representation. |
104 | HasSecn : Array1OfInteger; -- Say If the Ith Element |
105 | -- has an second Derivative Representation. |
106 | myLength : Array1OfReal; -- Table of Length Element by Element |
107 | Uf, Ul : Real; |
108 | Denom, USum : Real; |
109 | myIndex, myPtr : Integer; |
110 | end Curve; |
111 | |
112 | |