FE SpineFitOp

blue feedback demonstrates adaptive subdivision

# SpineFitOp

*Curves are created to best represent the primitives of an arbitrary surface.*
The current role of this operator is to create simulation spines for geometric grass.
Further roles will probably involve expansion of the feature set.

## Inputs

Generally, the **Input Surface** needs to be compatible with the common
search algorithms (currently, this requires triangular faces with normals).
## Parameters

A curve is created for each input primitive with a vertex count of **Samples**.
The first vertex of each curve is placed at the first vertex of each primitive.
The last vertex of each curve is placed at the further vertex of the primitive.
For each sample between the two end points, an initial point is determined by simple interpolation,
then that point is moved to the nearest point on the input surface.
The **Refinement** limits the adaptive subdivision that
can control improved curvature in the nearest point algorithms.
Increased refinement can affect performance.

An attribute named by **Facing** will be added to the output curves
to provide a rotational alignment.
This may be important for binding and wrapping operations further in the graph.

A simplified **Fast Snap** mode does not use the general search algorithm
and should work on any collection of points.
However, this mode will only assign output curve vertices to exact point locations
of the input surface.
If the input surface is coarse, the output curves will be of similar coarseness
and it is very possible that some of those output curve vertices will be coincident.

## Status

PRODUCTION READY

tested in Houdini and Maya

Web page, Copyright 2015, Free Electron Organization