Curve on Surface
================

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

This node generates a (3D) curve by laying another (2D) curve into some
surface's UV space. In other words, it takes a curve, considers it as being
placed in 2D space of U and V parameters, and generates another curve by
evaluating the surface at U/V coordinates generated by the first curve. One may
say that this node draws the curve on the surface.

Inputs
------

This node has the following inputs:

* **Curve**. The curve to be drawn on the surface. This input is mandatory.
* **Surface**. The surface, on which to draw the curve. This input is mandatory.

Parameters
----------

This node has the following parameter:

* **Curve plane**. The coordinate plane, in which the input curve lies. This
  defines the pair of coordinates being used. The available values are **XY**,
  **YZ** and **XZ**. For example, if **XY** is selected, then Z coordinates of
  the input curve's points will be ignored. The default value is **XY**.

Outputs
-------

This node has the following output:

* **Curve**. The curve drawn on the surface.

Examples of usage
-----------------

Generate some surface and draw a circle on it:

.. image:: https://user-images.githubusercontent.com/284644/78508319-5ce15c80-779f-11ea-92a8-48e9ea65450c.png

It is possible to use such a curve, for example, to place cubes along it:

.. image:: https://user-images.githubusercontent.com/284644/78508386-f6a90980-779f-11ea-9156-edd05500a0f8.png

