FreeCAD

Форк
0
/
BezierSurfacePy.xml 
263 строки · 12.7 Кб
1
<?xml version="1.0" encoding="UTF-8"?>
2
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
3
    <PythonExport
4
        Name="BezierSurfacePy"
5
        Namespace="Part"
6
        Twin="GeomBezierSurface"
7
        TwinPointer="GeomBezierSurface"
8
        PythonName="Part.BezierSurface"
9
        FatherInclude="Mod/Part/App/GeometrySurfacePy.h"
10
        Include="Mod/Part/App/Geometry.h"
11
        Father="GeometrySurfacePy"
12
        FatherNamespace="Part"
13
        Constructor="true">
14
        <Documentation>
15
            <Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
16
            <UserDocu>Describes a rational or non-rational Bezier surface
17
                -- A non-rational Bezier surface is defined by a table of poles (also known as control points).
18
                -- A rational Bezier surface is defined by a table of poles with varying associated weights.</UserDocu>
19
        </Documentation>
20
        <Attribute Name="UDegree" ReadOnly="true">
21
            <Documentation>
22
                <UserDocu>Returns the polynomial degree in u direction of this Bezier surface,
23
                    which is equal to the number of poles minus 1.</UserDocu>
24
            </Documentation>
25
            <Parameter Name="UDegree" Type="Long"/>
26
        </Attribute>
27
        <Attribute Name="VDegree" ReadOnly="true">
28
            <Documentation>
29
                <UserDocu>Returns the polynomial degree in v direction of this Bezier surface,
30
                    which is equal to the number of poles minus 1.</UserDocu>
31
            </Documentation>
32
            <Parameter Name="VDegree" Type="Long"/>
33
        </Attribute>
34
        <Attribute Name="MaxDegree" ReadOnly="true">
35
            <Documentation>
36
                <UserDocu>Returns the value of the maximum polynomial degree of any
37
                    Bezier surface. This value is 25.</UserDocu>
38
            </Documentation>
39
            <Parameter Name="MaxDegree" Type="Long"/>
40
        </Attribute>
41
        <Attribute Name="NbUPoles" ReadOnly="true">
42
            <Documentation>
43
                <UserDocu>Returns the number of poles in u direction of this Bezier surface.</UserDocu>
44
            </Documentation>
45
            <Parameter Name="NbUPoles" Type="Long"/>
46
        </Attribute>
47
        <Attribute Name="NbVPoles" ReadOnly="true">
48
            <Documentation>
49
                <UserDocu>Returns the number of poles in v direction of this Bezier surface.</UserDocu>
50
            </Documentation>
51
            <Parameter Name="NbVPoles" Type="Long"/>
52
        </Attribute>
53
        <Methode Name="bounds" Const="true">
54
            <Documentation>
55
                <UserDocu>Returns the parametric bounds (U1, U2, V1, V2) of this Bezier surface.</UserDocu>
56
            </Documentation>
57
        </Methode>
58
        <Methode Name="isURational" Const="true">
59
            <Documentation>
60
                <UserDocu>Returns false if the equation of this Bezier surface is polynomial
61
                    (e.g. non-rational) in the u or v parametric direction.
62
                    In other words, returns false if for each row of poles, the associated
63
                    weights are identical</UserDocu>
64
            </Documentation>
65
        </Methode>
66
        <Methode Name="isVRational" Const="true">
67
            <Documentation>
68
                <UserDocu>Returns false if the equation of this Bezier surface is polynomial
69
                    (e.g. non-rational) in the u or v parametric direction.
70
                    In other words, returns false if for each column of poles, the associated
71
                    weights are identical</UserDocu>
72
            </Documentation>
73
        </Methode>
74
        <Methode Name="isUPeriodic" Const="true">
75
            <Documentation>
76
                <UserDocu>Returns false.</UserDocu>
77
            </Documentation>
78
        </Methode>
79
        <Methode Name="isVPeriodic" Const="true">
80
            <Documentation>
81
                <UserDocu>Returns false.</UserDocu>
82
            </Documentation>
83
        </Methode>
84
        <Methode Name="isUClosed" Const="true">
85
            <Documentation>
86
                <UserDocu>Checks if this surface is closed in the u parametric direction.
87
                    Returns true if, in the table of poles the first row and the last
88
                    row are identical.</UserDocu>
89
            </Documentation>
90
        </Methode>
91
        <Methode Name="isVClosed" Const="true">
92
            <Documentation>
93
                <UserDocu>Checks if this surface is closed in the v parametric direction.
94
                    Returns true if, in the table of poles the first column and the
95
                    last column are identical.</UserDocu>
96
            </Documentation>
97
        </Methode>
98
        <Methode Name="increase">
99
            <Documentation>
100
                <UserDocu>increase(Int=DegreeU,Int=DegreeV)
101
                    Increases the degree of this Bezier surface in the two
102
                    parametric directions.</UserDocu>
103
            </Documentation>
104
        </Methode>
105
        <Methode Name="insertPoleColAfter">
106
            <Documentation>
107
                <UserDocu>Inserts into the table of poles of this surface, after the column
108
                    of poles of index.
109
                    If this Bezier surface is non-rational, it can become rational if
110
                    the weights associated with the new poles are different from each
111
                    other, or collectively different from the existing weights in the
112
                    table.</UserDocu>
113
            </Documentation>
114
        </Methode>
115
        <Methode Name="insertPoleRowAfter">
116
            <Documentation>
117
                <UserDocu>Inserts into the table of poles of this surface, after the row
118
                    of poles of index.
119
                    If this Bezier surface is non-rational, it can become rational if
120
                    the weights associated with the new poles are different from each
121
                    other, or collectively different from the existing weights in the
122
                    table.</UserDocu>
123
            </Documentation>
124
        </Methode>
125
        <Methode Name="insertPoleColBefore">
126
            <Documentation>
127
                <UserDocu>Inserts into the table of poles of this surface, before the column
128
                    of poles of index.
129
                    If this Bezier surface is non-rational, it can become rational if
130
                    the weights associated with the new poles are different from each
131
                    other, or collectively different from the existing weights in the
132
                    table.</UserDocu>
133
            </Documentation>
134
        </Methode>
135
        <Methode Name="insertPoleRowBefore">
136
            <Documentation>
137
                <UserDocu>Inserts into the table of poles of this surface, before the row
138
                    of poles of index.
139
                    If this Bezier surface is non-rational, it can become rational if
140
                    the weights associated with the new poles are different from each
141
                    other, or collectively different from the existing weights in the
142
                    table.</UserDocu>
143
            </Documentation>
144
        </Methode>
145
        <Methode Name="removePoleCol">
146
            <Documentation>
147
                <UserDocu>removePoleRow(int=VIndex)
148
                    Removes the column of poles of index VIndex from the table of
149
                    poles of this Bezier surface.
150
                    If this Bezier curve is rational, it can become non-rational.</UserDocu>
151
            </Documentation>
152
        </Methode>
153
        <Methode Name="removePoleRow">
154
            <Documentation>
155
                <UserDocu>removePoleRow(int=UIndex)
156
                    Removes the row of poles of index UIndex from the table of
157
                    poles of this Bezier surface.
158
                    If this Bezier curve is rational, it can become non-rational.</UserDocu>
159
            </Documentation>
160
        </Methode>
161
        <Methode Name="segment">
162
            <Documentation>
163
                <UserDocu>segment(double=U1,double=U2,double=V1,double=V2)
164
                    Modifies this Bezier surface by segmenting it between U1 and U2
165
                    in the u parametric direction, and between V1 and V2 in the v
166
                    parametric direction.
167
                    U1, U2, V1, and V2 can be outside the bounds of this surface.
168

169
                    -- U1 and U2 isoparametric Bezier curves, segmented between
170
                       V1 and V2, become the two bounds of the surface in the v
171
                       parametric direction (0. and 1. u isoparametric curves).
172
                    -- V1 and V2 isoparametric Bezier curves, segmented between
173
                       U1 and U2, become the two bounds of the surface in the u
174
                       parametric direction (0. and 1. v isoparametric curves).
175

176
                    The poles and weights tables are modified, but the degree of
177
                    this surface in the u and v parametric directions does not
178
                    change.U1 can be greater than U2, and V1 can be greater than V2.
179
                    In these cases, the corresponding parametric direction is inverted.
180
                    The orientation of the surface is inverted if one (and only one)
181
                    parametric direction is inverted.</UserDocu>
182
            </Documentation>
183
        </Methode>
184
        <Methode Name="setPole">
185
            <Documentation>
186
                <UserDocu>Set a pole of the Bezier surface.</UserDocu>
187
            </Documentation>
188
        </Methode>
189
        <Methode Name="setPoleCol">
190
            <Documentation>
191
                <UserDocu>Set the column of poles of the Bezier surface.</UserDocu>
192
            </Documentation>
193
        </Methode>
194
        <Methode Name="setPoleRow">
195
            <Documentation>
196
                <UserDocu>Set the row of poles of the Bezier surface.</UserDocu>
197
            </Documentation>
198
        </Methode>
199
        <Methode Name="getPole" Const="true">
200
            <Documentation>
201
                <UserDocu>Get a pole of index (UIndex,VIndex) of the Bezier surface.</UserDocu>
202
            </Documentation>
203
        </Methode>
204
        <Methode Name="getPoles" Const="true">
205
            <Documentation>
206
                <UserDocu>Get all poles of the Bezier surface.</UserDocu>
207
            </Documentation>
208
        </Methode>
209
        <Methode Name="setWeight">
210
            <Documentation>
211
                <UserDocu>Set the weight of pole of the index (UIndex, VIndex)
212
                    for the Bezier surface.</UserDocu>
213
            </Documentation>
214
        </Methode>
215
        <Methode Name="setWeightCol">
216
            <Documentation>
217
                <UserDocu>Set the weights of the poles in the column of poles
218
                    of index VIndex of the Bezier surface.</UserDocu>
219
            </Documentation>
220
        </Methode>
221
        <Methode Name="setWeightRow">
222
            <Documentation>
223
                <UserDocu>Set the weights of the poles in the row of poles
224
                    of index UIndex of the Bezier surface.</UserDocu>
225
            </Documentation>
226
        </Methode>
227
        <Methode Name="getWeight" Const="true">
228
            <Documentation>
229
                <UserDocu>Get a weight of the pole of index (UIndex,VIndex)
230
                    of the Bezier surface.</UserDocu>
231
            </Documentation>
232
        </Methode>
233
        <Methode Name="getWeights" Const="true">
234
            <Documentation>
235
                <UserDocu>Get all weights of the Bezier surface.</UserDocu>
236
            </Documentation>
237
        </Methode>
238
        <Methode Name="getResolution" Const="true">
239
            <Documentation>
240
                <UserDocu>Computes two tolerance values for this Bezier surface, based on the
241
                    given tolerance in 3D space Tolerance3D. The tolerances computed are:
242
                    -- UTolerance in the u parametric direction and
243
                    -- VTolerance in the v parametric direction.
244

245
                    If f(u,v) is the equation of this Bezier surface, UTolerance and VTolerance
246
                    guarantee that:
247
                    |u1 - u0| &lt; UTolerance
248
                    |v1 - v0| &lt; VTolerance
249
                    ====&gt; ||f(u1, v1) - f(u2, v2)|| &lt; Tolerance3D</UserDocu>
250
            </Documentation>
251
        </Methode>
252
        <Methode Name="exchangeUV">
253
            <Documentation>
254
                <UserDocu>Exchanges the u and v parametric directions on this Bezier surface.
255
                    As a consequence:
256
                    -- the poles and weights tables are transposed,
257
                    -- degrees, rational characteristics and so on are exchanged between
258
                       the two parametric directions, and
259
                    -- the orientation of the surface is reversed.</UserDocu>
260
            </Documentation>
261
        </Methode>
262
    </PythonExport>
263
</GenerateModel>
264

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.