NurbsCurveInsertKnot
From K-3D
Description
Inserts a new Knot with the specified u-value |
Plugin Status: | Experimental |
Categories: | All Plugins, Experimental Plugins, NURBS Plugins |
Metadata
Name | Value |
---|
Properties
Label | Description | Type | Script Name |
---|---|---|---|
Input Mesh | Input mesh | k3d::mesh* | input_mesh |
Output Mesh | Output mesh | k3d::mesh* | output_mesh |
Mesh Selection | Input Mesh Selection | k3d::selection::set | mesh_selection |
u_value | Insert knot at [0,1] | k3d::double_t | u_value |
multiplicity | Multiplicity | k3d::int32_t | multiplicity |
Description
Knot Insertion is a fundamental algorithm on Nurbs, the implementation here follows the implementation of Piegl and Tiller [1].
This operation will be executed on all selected curves in the mesh!
The knot vector of this curve gets normalized and a new knot gets inserted at the specified position (hence, 0 =< u =< 1). This causes the insertion of one new control vertex and transformation of its neigbours (the number of modified vertices equals the order). This is neccessary to provide an unchanged shape of the curve.
The multiplicity of a knot is limited to the degree of the curve, just the first and last knot may have a multiplicity equal to the order of the curve.
So if you add a knot that is already inside the knot vector this limitation is taken account of.
The effect of the multiplicity is that at this knot the same number of control vertices gets activated/deactivated, meaning the curve will be continuous at this point only if multiplicity is smaller than the order, it wont be deriveable if the multiplicity exceeds the degree. The latter can be seen easily because the curve has an edge at this knot if you move the corresponding control vertices.
Example
Inserting a knot into a circle.
Notice the number and position of the control vertices in the upper left quadrant.
References
[1] The NURBS book, A. Piegl and W. Tiller, page 141ff (http://books.google.com/books?id=7dqY5dyAwWkC&printsec=frontcover&dq=The+Nurbs+book&ei=axiOSNWlL4KosgOV09idDg&hl=de&sig=ACfU3U2O44Q32pLoGiHtwfSrGUHbgZusAw#PPA141,M1)