2 Point Spline
==============

.. image:: https://user-images.githubusercontent.com/14288520/188749135-04deebda-04b6-4a20-bad6-96eb96d4ecec.png
  :target: https://user-images.githubusercontent.com/14288520/188749135-04deebda-04b6-4a20-bad6-96eb96d4ecec.png

Functionality
-------------

Single section Bezier Spline. Creates a *Spline Curve* from 2 sets of points. Analogue to the Blender native Curve object, but limited to 2 pairs of *knots* and *control points* per curve.

Inputs
------

+------------+--------+-------------------------------------------------------------+
| Parameter  | Type   | Description                                                 |
+============+========+=============================================================+
| Num Verts  | int    | per curve this sets how many verts define the curve         |
+------------+--------+-------------------------------------------------------------+
| knot 1     | Vector | These place and adjust the shape of the curve. The knots    |
+------------+--------+ are vectors on the curve, the controls are vectors to which |
| control 1  | Vector | the curve is mathematically attracted                       |
+------------+--------+                                                             |
| control 2  | Vector |                                                             |
+------------+--------+                                                             |
| knot 2     | Vector |                                                             |
+------------+--------+-------------------------------------------------------------+

The node accepts these 
The node will adjust to make sure the length of 


Parameters
----------

The Node is vectorized in the following way. If any of the *knots* or *control points* are given in a list that doesn't match the length of the other lists, then the last value of that shorter list is repeated to match the length of the longest. 

This means; if *knot1, control1, knot2* are length 3, 4 and 8 and control2 is length 20 then 
*knot1, control1, knot2* will all get their last value repeated till the full list matches 20 values.

The same *filling* procedure is applied to the *Num Verts* parameter.

Outputs
-------

- (verts, edges) : A set of each of these that correspond with a packet of commands like 'knot1, ctrl1, ctrl2, knot2'
- verts needs to be connected to get output
- edges is optional

**optionals for visualizing the curve handles**

- hnd. Verts 
- hnd. Edges

Passing hnd.Verts and hnd.Edges to a ViewerDraw node helps visualize the Handles that operate on your Spline curve. 


Examples
--------

.. image:: https://user-images.githubusercontent.com/14288520/188749150-1712fa73-1ec7-4003-a2aa-4e06920a4e1f.png
  :target: https://user-images.githubusercontent.com/14288520/188749150-1712fa73-1ec7-4003-a2aa-4e06920a4e1f.png

.. image:: https://cloud.githubusercontent.com/assets/619340/3362910/c18e4eea-fb0e-11e3-9a80-4624d30c65e9.gif
    :target: https://cloud.githubusercontent.com/assets/619340/3362910/c18e4eea-fb0e-11e3-9a80-4624d30c65e9.gif

See the progress of how this node came to life `here <https://github.com/nortikin/sverchok/issues/247>`_ (gifs, screenshots)
