0024784: Move documentation in CDL files to proper location
[occt.git] / src / Convert / Convert_GridPolynomialToPoles.cdl
CommitLineData
b311480e 1-- Created on: 1996-07-08
2-- Created by: Philippe MANGIN
3-- Copyright (c) 1996-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17class GridPolynomialToPoles from Convert
ff8178ef 18 ---Purpose: Convert a grid of Polynomial Surfaces
19 -- that are have continuity CM to an
20 -- Bspline Surface that has continuity
21 -- CM
7fd59977 22
23uses Array1OfReal from TColStd,
24 HArray1OfReal from TColStd,
25 HArray2OfReal from TColStd,
26 HArray1OfInteger from TColStd,
27 HArray2OfInteger from TColStd,
28 HArray2OfPnt from TColgp,
29 Shape from GeomAbs
30raises
31
32 DomainError from Standard,
33 NotDone from StdFail
34
35is
36
37 Create(MaxUDegree : Integer ;
38 MaxVDegree : Integer ;
39 NumCoeff : HArray1OfInteger from TColStd ;
40 Coefficients : HArray1OfReal from TColStd ;
41 PolynomialUIntervals : HArray1OfReal from TColStd ;
42 PolynomialVIntervals : HArray1OfReal from TColStd )
43 returns GridPolynomialToPoles
44 ---Purpose: To only one polynomial Surface.
45 -- The Length of <PolynomialUIntervals> and <PolynomialVIntervals>
46 -- have to be 2.
47 -- This values defined the parametric domain of the Polynomial Equation.
48 --
49 -- Coefficients :
50 -- The <Coefficients> have to be formated than an "C array"
51 -- [MaxUDegree+1] [MaxVDegree+1] [3]
52 --
53 ---Level: Public
54 raises DomainError; -- if <NumCoeff> is not a [1, 2] array
55 -- if the <Coefficients> is not a [1,(MaxUDegree+1)*(MaxVDegree+1)*3]
56 -- array
57
58
59 Create(NbUSurfaces : Integer;
60 NBVSurfaces : Integer;
61 UContinuity : Integer ;
62 VContinuity : Integer ;
63 MaxUDegree : Integer ;
64 MaxVDegree : Integer ;
65 NumCoeffPerSurface : HArray2OfInteger from TColStd ;
66 Coefficients : HArray1OfReal from TColStd ;
67 PolynomialUIntervals : HArray1OfReal from TColStd ;
68 PolynomialVIntervals : HArray1OfReal from TColStd ;
69 TrueUIntervals : HArray1OfReal from TColStd;
70 TrueVIntervals : HArray1OfReal from TColStd)
71 returns GridPolynomialToPoles
72 ---Purpose: To one grid of polynomial Surface.
73 -- Warning!
74 -- Continuity in each parametric direction can be at MOST the
75 -- maximum degree of the polynomial functions.
76 --
77 -- <TrueUIntervals>, <TrueVIntervals> :
78 -- this is the true parameterisation for the composite surface
79 --
80 -- Coefficients :
81 -- The Coefficients have to be formated than an "C array"
82 -- [NbVSurfaces] [NBUSurfaces] [MaxUDegree+1] [MaxVDegree+1] [3]
83-- raises DomainError if <NumCoeffPerSurface> is not a
84 -- [1, NbVSurfaces*NbUSurfaces, 1,2] array.
85 -- if <Coefficients> is not a
86 --[1, NbVSurfaces*NBUSurfaces*(MaxUDegree+1)*(MaxVDegree+1)*3] array
87 raises DomainError ;
88
89
90 Perform(me : in out;
91 UContinuity : Integer ;
92 VContinuity : Integer ;
93 MaxUDegree : Integer ;
94 MaxVDegree : Integer ;
95 NumCoeffPerSurface : HArray2OfInteger from TColStd ;
96 Coefficients : HArray1OfReal from TColStd ;
97 PolynomialUIntervals : HArray1OfReal from TColStd ;
98 PolynomialVIntervals : HArray1OfReal from TColStd ;
99 TrueUIntervals : HArray1OfReal from TColStd ;
100 TrueVIntervals : HArray1OfReal from TColStd );
101
102 BuildArray(me;
103 Degree : Integer;
104 Knots : HArray1OfReal;
105 Continuty : Integer;
106 FlatKnots : in out HArray1OfReal;
107 Mults : in out HArray1OfInteger;
108 Parameters : in out HArray1OfReal)
109 is private;
110
111
112 NbUPoles(me) returns Integer ;
113 NbVPoles(me) returns Integer ;
114
115 Poles(me)
116 ---Purpose: returns the poles of the BSpline Surface
117 ---C++: return const &
118 returns HArray2OfPnt ;
119
120 UDegree(me)
121 returns Integer ;
122
123 VDegree(me)
124 returns Integer ;
125
126 NbUKnots(me)
127 returns Integer ;
128
129 NbVKnots(me)
130 returns Integer ;
131
132 UKnots(me)
133 ---Purpose: Knots in the U direction
134 ---C++: return const &
135 returns HArray1OfReal;
136
137 VKnots(me)
138 ---Purpose: Knots in the V direction
139 ---C++: return const &
140 returns HArray1OfReal;
141
142 UMultiplicities(me)
143 ---Purpose: Multiplicities of the knots in the U direction
144 ---C++: return const &
145 returns HArray1OfInteger;
146
147 VMultiplicities(me)
148 ---Purpose: Multiplicities of the knots in the V direction
149 ---C++: return const &
150 returns HArray1OfInteger;
151
152 IsDone(me) returns Boolean ;
153
154
155fields
156
157 myUFlatKnots : HArray1OfReal from TColStd ;
158 myVFlatKnots : HArray1OfReal from TColStd ;
159 myUKnots : HArray1OfReal from TColStd ;
160 myVKnots : HArray1OfReal from TColStd ;
161 myUMults : HArray1OfInteger from TColStd ;
162 myVMults : HArray1OfInteger from TColStd ;
163 myPoles : HArray2OfPnt from TColgp ;
164 myUDegree : Integer ;
165 myVDegree : Integer ;
166 myDone : Boolean ;
167
168end GridPolynomialToPoles;