166 lines
6.9 KiB
XML
166 lines
6.9 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="BezierCurvePy"
|
|
Namespace="Part"
|
|
Twin="GeomBezierCurve"
|
|
TwinPointer="GeomBezierCurve"
|
|
PythonName="Part.BezierCurve"
|
|
FatherInclude="Mod/Part/App/BoundedCurvePy.h"
|
|
Include="Mod/Part/App/Geometry.h"
|
|
Father="BoundedCurvePy"
|
|
FatherNamespace="Part"
|
|
Constructor="true">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net"/>
|
|
<UserDocu>Describes a rational or non-rational Bezier curve:
|
|
-- a non-rational Bezier curve is defined by a table of poles (also called control points)
|
|
-- a rational Bezier curve is defined by a table of poles with varying weights
|
|
|
|
Constructor takes no arguments.
|
|
|
|
Example usage:
|
|
p1 = Base.Vector(-1, 0, 0)
|
|
p2 = Base.Vector(0, 1, 0.2)
|
|
p3 = Base.Vector(1, 0, 0.4)
|
|
p4 = Base.Vector(0, -1, 1)
|
|
|
|
bc = BezierCurve()
|
|
bc.setPoles([p1, p2, p3, p4])
|
|
curveShape = bc.toShape()</UserDocu>
|
|
</Documentation>
|
|
<Attribute Name="Degree" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the polynomial degree of this Bezier curve,
|
|
which is equal to the number of poles minus 1.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Degree" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="MaxDegree" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the value of the maximum polynomial degree of any
|
|
Bezier curve curve. This value is 25.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="MaxDegree" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="NbPoles" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the number of poles of this Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="NbPoles" Type="Long"/>
|
|
</Attribute>
|
|
<Attribute Name="StartPoint" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the start point of this Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="StartPoint" Type="Object"/>
|
|
</Attribute>
|
|
<Attribute Name="EndPoint" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Returns the end point of this Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="EndPoint" Type="Object"/>
|
|
</Attribute>
|
|
<Methode Name="isRational" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false if the weights of all the poles of this Bezier curve are equal.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isPeriodic" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns false.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isClosed" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Returns true if the distance between the start point and end point of
|
|
this Bezier curve is less than or equal to gp::Resolution().</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="increase">
|
|
<Documentation>
|
|
<UserDocu>increase(Int=Degree)
|
|
Increases the degree of this Bezier curve to Degree.
|
|
As a result, the poles and weights tables are modified.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleAfter">
|
|
<Documentation>
|
|
<UserDocu>Inserts after the pole of index.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="insertPoleBefore">
|
|
<Documentation>
|
|
<UserDocu>Inserts before the pole of index.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="removePole">
|
|
<Documentation>
|
|
<UserDocu>Removes the pole of index Index from the table of poles of this Bezier curve.
|
|
If this Bezier curve is rational, it can become non-rational.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="segment">
|
|
<Documentation>
|
|
<UserDocu>Modifies this Bezier curve by segmenting it.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setPole">
|
|
<Documentation>
|
|
<UserDocu>Set a pole of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPole" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get a pole of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPoles" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get all poles of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setPoles">
|
|
<Documentation>
|
|
<UserDocu>Set the poles of the Bezier curve.
|
|
|
|
Takes a list of 3D Base.Vector objects.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="setWeight">
|
|
<Documentation>
|
|
<UserDocu>(id, weight) Set a weight of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getWeight" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get a weight of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getWeights" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Get all weights of the Bezier curve.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getResolution" Const="true">
|
|
<Documentation>
|
|
<UserDocu>Computes for this Bezier curve the parametric tolerance (UTolerance)
|
|
for a given 3D tolerance (Tolerance3D).
|
|
If f(t) is the equation of this Bezier curve, the parametric tolerance
|
|
ensures that:
|
|
|t1-t0| < UTolerance =""==> |f(t1)-f(t0)| < Tolerance3D</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="interpolate">
|
|
<Documentation>
|
|
<UserDocu>Interpolates a list of constraints.
|
|
Each constraint is a list of a point and some optional derivatives
|
|
An optional list of parameters can be passed. It must be of same size as constraint list.
|
|
Otherwise, a simple uniform parametrization is used.
|
|
Example :
|
|
bezier.interpolate([[pt1, deriv11, deriv12], [pt2,], [pt3, deriv31]], [0, 0.4, 1.0])</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
</PythonExport>
|
|
</GenerateModel>
|