# Convert

Right-clicking on a value in the Parameters dialog brings up a context menu which has a sub-menu called "Convert". The "Convert" menu allows you to specify that the parameter should be controlled automatically in various ways. Depending on the type of the parameter the Convert menu will contain different options.

To convert the value back to its original type, select "Disconnect" from its context menu.

- BLinePoint values can be converted to Composite ...

- Bool values can only be converted to the Reference type.

- Canvas values can be converted to the Reference type.

- Color values can be converted to Composite, Radial Composite, Reference, Scale, and Subtract types.

- Gradient values can be converted to Gradient Rotate, Reference, Stripes, and Two-Tone types.

- List values can be converted to BLine, Dynamic List, and Reference types.

- String values can be converted to the Reference type.

- Vector values can be converted to Composite, Linear, Radial Composite, Reference, Scale, Seg Calc Tangent, Seg Calc Vertex, and Subtract types.

## Contents

## BLine

Converting a list parameter to "BLine" doesn't seem to change anything. Perhaps that's the default type for lists of vertices, such as are found in outlines and regions?

## Composite

Converting a blinepoint parameter to "Composite" adds ... writeme

Converting a color parameter to "Composite" adds four real-valued sub-parameters:

- real "Red"
- real "Green"
- real "Blue"
- real "Alpha"

Converting a segment parameter to "Composite" adds four vertex sub-parameters:

- vertex "Vertex 1"
- vertex "Tangent 1"
- vertex "Vertex 2"
- vertex "Tangent 2"

Converting a vector parameter to "Composite" adds two real-valued sub-parameters:

- real "X-Axis"
- real "Y-Axis"

The resulting value is a color, segment, or vector made by combining the component parts.

## Dynamic List

Converting a parameter to "Dynamic List" seems to replace each of the "Vertex NNN" sub-parameters with "Item NNN" parameters which can't be expanded, but can be exported.

## Gradient Rotate

Converting a gradient to "Gradient Rotate" adds two sub-parameters:

- gradient "Gradient"
- real "Offset"

The resulting value is a gradient based on the "Gradient" parameter, but shifted left (for negative values) or right, according to the value of the "Offset" parameter. An offset of 1.0 will shift the gradient by its entire visible width. Values shifted off the left or right edge aren't lost - they aren't visible in the gradient as it's displayed in the parameters dialog, but they will still be used when rendering (depending on parameters such as 'Loop' and 'Zigzag', which can cause gradients to be looped between their their left and right edges, rather than using the non-displayed parts).

## Linear

Converting an angle parameter to be 'Linear' adds two angle sub-parameters:

- angle "Rate"
- angle "Offset"

Converting a real parameter to be 'Linear' adds two real-valued sub-parameters:

- real "Rate"
- real "Offset"

Converting a time parameter to be 'Linear' adds two time sub-parameters:

- time "Rate"
- time "Offset"

Converting a vector parameter to be 'Linear' adds two vector sub-parameters:

- vector "Slope"
- vector "Offset"

The parameter's value will change linearly over time, starting with the value specified by "Offset" at time zero, and increasing by the value specified by "Rate" (or "Slope", in the case of vector parameters) every second.

The resulting value for vector parameters is:

Offset + Slope*time

and for the other 3 types of parameter it is:

Offset + Rate*time

## Radial Composite

Converting a color to "Radial Composite" adds four sub-parameters:

- real "Luma"
- real "Saturation"
- angle "Hue"
- real "Alpha"

Converting a vector to "Radial Composite" adds two sub-parameters:

- real "Radius"
- angle "Theta"

For color parameters, the resulting value is the color with the given lima, saturation, hue, and alpha amounts.

For vector parameters, the resulting value is the point reached by traveling a distance "Radius" from the origin, in the distance given by the angle "Theta".

## Reference

Converting a parameter to "Reference" adds a single sub-parameter called "Link". The "Link" parameter is the same type as the parameter being converted.

It doesn't seem to do anything at all, other than adding an extra parameter. Whatever value is put into "Link" becomes the value of the parameter being converted.

The resulting value is:

Link

## Scale

Converting a parameter to "Scale" adds two sub-parameters: one called "Link", of the same type as the parameter itself, and a real-valued parameter called "Scalar".

"Scale" can be used on angles, colors, integers, reals, and vectors.

The resulting value is:

Link * Scalar

## Seg Calc Tangent

Converting a vector parameter to "Seg Calc Tangent" adds two sub-parameters:

- segment "Segment"
- real "Amount"

Amount is a number between 0 and 1, defining the distance along the given segment. The resulting value for the whole parameter is the tangent to the segment, at the given point along the segment.

## Seg Calc Vertex

Converting a vector parameter to "Seg Calc Vertex" adds two sub-parameters:

- segment "Segment"
- real "Amount"

Amount is a number between 0 and 1, defining the distance along the given segment. The resulting value is the vertex at the given point along the segment.

## Sine

Converting a real-valued parameter to "Sine" adds two sub-parameters:

- angle "Angle"
- real "Amplitude".

The resulting value is:

Amplitude * sin(Angle)

## Stripes

Converting a gradient parameter to "Stripes" adds four sub-parameters:

- color "Color 1"
- color "Color 2"
- integer "Stripe Count"
- real "Width"

The resulting value is a gradient containing "Stripe Count" equally spaced, equally wide stripes of color "Color 2" with a background of "Color 1". "Width" specifies the width of the stripes, with a width of 0 or less meaning they are invisible, and a width of 1 or more meaning the whole gradient is of "Color 2".

## Subtract

Converting a parameter to "Subtract" adds three real-valued sub-parameters:

- real "LHS"
- real "RHS"
- real "Scalar"

The resulting value is:

(LHS - RHS) * Scalar

## Timed Swap

This conversion is currently disabled.

## Two-Tone

Converting a gradient to "Two-Tone" adds two color-valued sub-parameters:

- color "Color1"
- color "Color2"

The resulting gradient has two CPoints, one at each end, starting with "Color1" and ending with "Color2".

These color parameters can be animated, giving us the ability to have the gradient change color over time. This can be used as a workaround for this bug.