264 lines
13 KiB
XML
264 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
|
<PythonExport
|
|
Name="BezierSurfacePy"
|
|
Namespace="Part"
|
|
Twin="GeomBezierSurface"
|
|
TwinPointer="GeomBezierSurface"
|
|
PythonName="Part.BezierSurface"
|
|
FatherInclude="Mod/Part/App/GeometrySurfacePy.h"
|
|
Include="Mod/Part/App/Geometry.h"
|
|
Father="GeometrySurfacePy"
|
|
FatherNamespace="Part"
|
|
Constructor="true">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
|
|
<UserDocu>Describes a rational or non-rational Bezier surface
|
|
-- A non-rational Bezier surface is defined by a table of poles (also known as control points).
|
|
-- A rational Bezier surface is defined by a table of poles with varying associated weights.</UserDocu>
|
|
</Documentation>
|
|
<Attribute Name="UDegree" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the polynomial degree in u direction of this Bezier surface,
|
|
which is equal to the number of poles minus 1.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="UDegree" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="VDegree" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the polynomial degree in v direction of this Bezier surface,
|
|
which is equal to the number of poles minus 1.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="VDegree" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="MaxDegree" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the value of the maximum polynomial degree of any
|
|
Bezier surface. This value is 25.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="MaxDegree" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="NbUPoles" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the number of poles in u direction of this Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="NbUPoles" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="NbVPoles" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the number of poles in v direction of this Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="NbVPoles" Type="Long"/>
|
|
</Attribute>
|
|
<Methode Name="bounds" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the parametric bounds (U1, U2, V1, V2) of this Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isURational" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false if the equation of this Bezier surface is polynomial
|
|
(e.g. non-rational) in the u or v parametric direction.
|
|
In other words, returns false if for each row of poles, the associated
|
|
weights are identical</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isVRational" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false if the equation of this Bezier surface is polynomial
|
|
(e.g. non-rational) in the u or v parametric direction.
|
|
In other words, returns false if for each column of poles, the associated
|
|
weights are identical</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isUPeriodic" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isVPeriodic" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isUClosed" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if this surface is closed in the u parametric direction.
|
|
Returns true if, in the table of poles the first row and the last
|
|
row are identical.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isVClosed" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Checks if this surface is closed in the v parametric direction.
|
|
Returns true if, in the table of poles the first column and the
|
|
last column are identical.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="increase">
|
|
<Documentation>
|
|
<UserDocu>increase(Int=DegreeU,Int=DegreeV)
|
|
Increases the degree of this Bezier surface in the two
|
|
parametric directions.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleColAfter">
|
|
<Documentation>
|
|
<UserDocu>Inserts into the table of poles of this surface, after the column
|
|
of poles of index.
|
|
If this Bezier surface is non-rational, it can become rational if
|
|
the weights associated with the new poles are different from each
|
|
other, or collectively different from the existing weights in the
|
|
table.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleRowAfter">
|
|
<Documentation>
|
|
<UserDocu>Inserts into the table of poles of this surface, after the row
|
|
of poles of index.
|
|
If this Bezier surface is non-rational, it can become rational if
|
|
the weights associated with the new poles are different from each
|
|
other, or collectively different from the existing weights in the
|
|
table.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleColBefore">
|
|
<Documentation>
|
|
<UserDocu>Inserts into the table of poles of this surface, before the column
|
|
of poles of index.
|
|
If this Bezier surface is non-rational, it can become rational if
|
|
the weights associated with the new poles are different from each
|
|
other, or collectively different from the existing weights in the
|
|
table.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleRowBefore">
|
|
<Documentation>
|
|
<UserDocu>Inserts into the table of poles of this surface, before the row
|
|
of poles of index.
|
|
If this Bezier surface is non-rational, it can become rational if
|
|
the weights associated with the new poles are different from each
|
|
other, or collectively different from the existing weights in the
|
|
table.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removePoleCol">
|
|
<Documentation>
|
|
<UserDocu>removePoleRow(int=VIndex)
|
|
Removes the column of poles of index VIndex from the table of
|
|
poles of this Bezier surface.
|
|
If this Bezier curve is rational, it can become non-rational.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removePoleRow">
|
|
<Documentation>
|
|
<UserDocu>removePoleRow(int=UIndex)
|
|
Removes the row of poles of index UIndex from the table of
|
|
poles of this Bezier surface.
|
|
If this Bezier curve is rational, it can become non-rational.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="segment">
|
|
<Documentation>
|
|
<UserDocu>segment(double=U1,double=U2,double=V1,double=V2)
|
|
Modifies this Bezier surface by segmenting it between U1 and U2
|
|
in the u parametric direction, and between V1 and V2 in the v
|
|
parametric direction.
|
|
U1, U2, V1, and V2 can be outside the bounds of this surface.
|
|
|
|
-- U1 and U2 isoparametric Bezier curves, segmented between
|
|
V1 and V2, become the two bounds of the surface in the v
|
|
parametric direction (0. and 1. u isoparametric curves).
|
|
-- V1 and V2 isoparametric Bezier curves, segmented between
|
|
U1 and U2, become the two bounds of the surface in the u
|
|
parametric direction (0. and 1. v isoparametric curves).
|
|
|
|
The poles and weights tables are modified, but the degree of
|
|
this surface in the u and v parametric directions does not
|
|
change.U1 can be greater than U2, and V1 can be greater than V2.
|
|
In these cases, the corresponding parametric direction is inverted.
|
|
The orientation of the surface is inverted if one (and only one)
|
|
parametric direction is inverted.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setPole">
|
|
<Documentation>
|
|
<UserDocu>Set a pole of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setPoleCol">
|
|
<Documentation>
|
|
<UserDocu>Set the column of poles of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setPoleRow">
|
|
<Documentation>
|
|
<UserDocu>Set the row of poles of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPole" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get a pole of index (UIndex,VIndex) of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPoles" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get all poles of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setWeight">
|
|
<Documentation>
|
|
<UserDocu>Set the weight of pole of the index (UIndex, VIndex)
|
|
for the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setWeightCol">
|
|
<Documentation>
|
|
<UserDocu>Set the weights of the poles in the column of poles
|
|
of index VIndex of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setWeightRow">
|
|
<Documentation>
|
|
<UserDocu>Set the weights of the poles in the row of poles
|
|
of index UIndex of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getWeight" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get a weight of the pole of index (UIndex,VIndex)
|
|
of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getWeights" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get all weights of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getResolution" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Computes two tolerance values for this Bezier surface, based on the
|
|
given tolerance in 3D space Tolerance3D. The tolerances computed are:
|
|
-- UTolerance in the u parametric direction and
|
|
-- VTolerance in the v parametric direction.
|
|
|
|
If f(u,v) is the equation of this Bezier surface, UTolerance and VTolerance
|
|
guarantee that:
|
|
|u1 - u0| < UTolerance
|
|
|v1 - v0| < VTolerance
|
|
====> ||f(u1, v1) - f(u2, v2)|| < Tolerance3D</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="exchangeUV">
|
|
<Documentation>
|
|
<UserDocu>Exchanges the u and v parametric directions on this Bezier surface.
|
|
As a consequence:
|
|
-- the poles and weights tables are transposed,
|
|
-- degrees, rational characteristics and so on are exchanged between
|
|
the two parametric directions, and
|
|
-- the orientation of the surface is reversed.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
</PythonExport>
|
|
</GenerateModel>
|