git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
322 lines
11 KiB
XML
322 lines
11 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
|
|
Father="GeometrySurfacePy"
|
|
Name="BezierSurfacePy"
|
|
Twin="GeomBezierSurface"
|
|
TwinPointer="GeomBezierSurface"
|
|
Include="Mod/Part/App/Geometry.h"
|
|
Namespace="Part"
|
|
FatherInclude="Mod/Part/App/GeometrySurfacePy.h"
|
|
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="Int"/>
|
|
</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="Int"/>
|
|
</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="Int"/>
|
|
</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="Int"/>
|
|
</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="Int"/>
|
|
</Attribute>
|
|
<Methode Name="bounds">
|
|
<Documentation>
|
|
<UserDocu>
|
|
Returns the parametric bounds (U1, U2, V1, V2) of this Bezier surface.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isURational">
|
|
<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">
|
|
<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">
|
|
<Documentation>
|
|
<UserDocu>Returns false.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isVPeriodic">
|
|
<Documentation>
|
|
<UserDocu>Returns false.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isUClosed">
|
|
<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">
|
|
<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">
|
|
<Documentation>
|
|
<UserDocu>Get a pole of index (UIndex,VIndex) of the Bezier surface.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPoles">
|
|
<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">
|
|
<Documentation>
|
|
<UserDocu>
|
|
Get a weight of the pole of index (UIndex,VIndex)
|
|
of the Bezier surface.
|
|
</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getWeights">
|
|
<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>
|
|
<Methode Name="uIso">
|
|
<Documentation>
|
|
<UserDocu>Builds the U isoparametric Bezier curve of this Bezier surface</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="vIso">
|
|
<Documentation>
|
|
<UserDocu>Builds the V isoparametric Bezier curve of this Bezier surface</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
</PythonExport>
|
|
</GenerateModel>
|