SeExpr

Typedefs | Functions | Variables
userdoc.txt File Reference

## Typedefs
using | style = "margin-left: 40px

## Functions
< br > | pow ($a, 0.5)+ $b< br >< br ></div > External variables can also be overridden by local assignment. &nbsp
| fbm (vnoise($P)+ $P/4)< br ></div >< br >< h4 >< a name
constrain x to range[lo, hi]< br >< br > float< b > | compress</b > (float x, float lo, float hi) &nbsp
< div style="margin-left: 40px;"> Compress the dynamic range from[0..1] to[lo..hi]< br ></div > float< b > | expand</b > (float x, float lo, float hi)< div style
the contrast is increased< br ></div > float< b > | invert</b > (float x) - Invert the value. &nbsp
Defined as x< br >< br > float< b > | remap</b > (float x, float source, float range, float falloff, int interp)< br >< div style
The shift will be scaled back for values between zero and one< br ></div > color< b > | midhsi</b > (color x, float h, float s, float i, float map, float falloff=1, int interp=0)< br >< div style
The default falloff and interp values result in no remapping< br ></div >< br > color< b > | rgbtohsl</b > (color rgb)< br > color< b >hsltorgb</b >(color hsl)< br >< div style
< br > HSL is | Lightness (all in range[0..1])< br > These functions have also been extended to support rgb and hsl values outside of the range[0..1] in a reasonable way. &nbsp
For any rgb or hsl | value (except for negative s values)
For any rgb or hsl the conversion is well defined and reversible< br ></div >< br > float< b > | bias</b > (float x, float b)< div style
Defined as | pow (x, log(b)/log(0.5)).< br ></div > float< b >gamma</b >(float x
Defined as float g | pow (x, 1/g)< br >< br > float< b >fit</b >(float x
Defined as float g float float float float b2< div style="margin-left: 40px;"> Linear remapping of[a1..x..b1] to[a2..x..b2]< br ></div > float< b > | mix</b > (float a, float b, float alpha)< div style
Defined as a *alpha b *alpha< br ></div >< br > float< b > | boxstep</b > (float x, float a)< br > float< b >gaussstep</b >(float x
Defined as a *alpha b *alpha< br ></div >< br > float< b > float float b< br > float< b > | linearstep</b > (float x, float a, float b)< br > float< b >smoothstep</b >(float x
| b (or x &gt;a in the case of boxstep). &nbsp
gausstep is has a sharper transition near one and a softer transition near zero whereas smoothstep is has a medium softness near both one and zero< br ></div >< br >< h4 >< a name="Noise_Functions"></a > Noise Functions</h4 > float< b > | rand</b > ([float min, float max], [float seed])< br >< div style
Any number of seeds may be given and the result will be a random function based on all the seeds< br ></div > float< b > | cellnoise</b > (vector v) float< b >cellnoise1</b >(float x)< br > float< b >cellnoise2</b >(float x
Any number of seeds may be given and the result will be a random function based on all the seeds< br ></div > float< b > float y< br > float< b > | cellnoise3</b > (float x, float y, float z)< br > color< b >ccellnoise</b >(vector v) - color cellnoise< br >< div style
This is the same as the prman cellnoise function< br ></div >< br > float< b > | noise</b > (vector v)< br > float< b >noise</b >(float x
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > | noise</b > (float x, float y, float z)< br > float< b >noise</b >(float x
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > float float float w< br > color< b > | cnoise</b > (vector v) - color noise< br > float< b >snoise</b >(vector v) - signed noise w/range -1 to 1.< br > vector< b >vnoise</b >(vector v) - signed vector noise< br > color< b >cnoise4</b >(vector v
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > float float float w< br > color< b > float t color noise< br > float< b > | snoise4</b > (vector v, float t) - signed noise w/range -1 to 1.< br > vector< b >vnoise4</b >(vector v
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > float float float w< br > color< b > float t color noise< br > float< b > float t signed vector noise< br > float< b > | pnoise</b > (vector v, vector period) - periodic noise< br >< div style
This is Ken Perlin s original noise function< br ></div >< br > float< b > | perlin</b > (vector v)< br > color< b >cperlin</b >(vector v) - color noise< br > float< b >sperlin</b >(vector v) - signed noise w/range -1 to 1.< br > vector< b >vperlin</b >(vector v) - signed vector noise< br >< div style
The< i > gain</i > controls how much each frequency is scaled relative to the previous frequency< br ></div >< br > float< b > | turbulence</b > (vector v, int octaves &nbsp;=&nbsp;6, float lacunarity &nbsp;=&nbsp;2, float gain &nbsp;=&nbsp;0.5)< br > color< b >cturbulence</b >(vector v
< br > vector< b > | vturbulence</b > (vector v, int octaves &nbsp;=&nbsp;6, float lacunarity &nbsp;=&nbsp;2, float gain &nbsp;=&nbsp;0.5)< br >< div style
This gives a more billowy appearance< br ></div >< br >< br > float< b > | voronoi</b > (vector v, int type &nbsp;=&nbsp;1, float jitter &nbsp;=&nbsp;0.5, float fbmScale &nbsp;=&nbsp;0, int fbmOctaves &nbsp;=&nbsp;4, float fbmLacunarity &nbsp;=&nbsp;2, float fbmGain &nbsp;=&nbsp;0.5)< br > color< b >cvoronoi</b >(vector v
< br > vector< b > | pvoronoi</b > (vector v, float jitter &nbsp;=&nbsp;0.5, float fbmScale &nbsp;=&nbsp;0, int fbmOctaves &nbsp;=&nbsp;4, float fbmLacunarity &nbsp;=&nbsp;2, float fbmGain &nbsp;=&nbsp;0.5)< br >< div style
The jitter param controls how irregular the pattern | is (jitter=0 is like ordinary cellnoise). &nbsp
When fbmScale is | zero (the default)
</div >< br >< h4 >< a name="Selection_Functions"></a > Selection Functions</h4 > int< b > | cycle</b > (int index, int loRange, int hiRange)< br >< div style
The result is computed | as (loRange+value %(hiRange-loRange+1)).< br ></div >< br > int< b >pick</b >(float index
The result is computed int int< br >< div style="margin-left: 40px;"> Picks values randomly between loRange and hiRange based on supplied | index (which is automatically hashed). &nbsp
Any weights not supplied are assumed to be< br >< br ></div > float< b > | choose</b > (float index, float choice1, float choice2, [...])< br >< div style
If a scalar is used in a vector it is replicated into the three | components (e.g. 0.5 becomes[0.5, 0.5, 0.5]). &nbsp
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > | curve</b > (float param, float pos0, color val0, int interp0, float pos1, color val1, int interp1,[...])< br > Interpolates color ramp given by control points at 'param'. Control points are specified by triples of parameters pos_i
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are | monotone (non-oscillating) spline</p >< p > float< b >curve</b >(float param
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float< br > Interpolates a set of values to the parameter specified where yn are distributed evenly from[0...1]</p >< h4 >< a name="Misc_Functions"></a > Misc Functions</h4 >< p > void< b > | printf</b > (string format,[param0, param1,...])< br > Prints a string to stdout that is formatted as given. Formatting parameters possible are %f for float(takes first component of vector argument) or %v for vector. For example if you wrote printf("test %f %v"
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float< br > Interpolates a set of values to the parameter specified where yn are distributed evenly from[0...1]</p >< h4 >< a name="Misc_Functions"></a > Misc Functions</h4 >< p > void< b > you would get test[4, 5, 6]</p >< h4 >< a name="Operators"></a > | Operators (listed in decreasing precedence)</h4 >< table cellpadding
e g $P[0]</td ></tr >< tr >< td >< b ></b ></td >< td > | exponentiation (same as pow function)</td ></tr >< tr >< td >< b >!</b ></td >< td >logical NOT</td ></tr >< tr >< td >< b >~</b ></td >< td >inversion(i.e. ~ $A gives the same result as 1- $A)</td ></tr >< tr >< td >< b > *&nbsp
</b ></td >< td > | modulus (same as fmod function)</td ></tr >< tr >< td >< b >+&nbsp
| contrast (.7) - &gt
| clamp (0.2,&nbsp;0.8)< br > $u &nbsp
| hsi (20,&nbsp;1.2,&nbsp;1,&nbsp;$Cs &nbsp;-&gt;&nbsp;gamma(1.2))</td ></tr ></tbody ></table >< br >< h4 >< a name

## Variables
<!-- Copyright Disney Enterprises, Inc. All rights reserved. Licensed under the Apache License, Version 2.0(the "License");you may not use this file except in compliance with the License and the following modification to it:Section 6 Trademarks. deleted and replaced with:6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor and its affiliates, except as required for reproducing the content of the NOTICE file. You may obtain a copy of the License at http:-->< h3 > Shader XGen Paint3d Expressions</h3 >< ul >< li >< a href="#Variables"> Variables</a ></li >< li >< a href="#Color_Masking_and_Remapping_Functions"> | Color
<!-- Copyright Disney Enterprises, Inc. All rights reserved. Licensed under the Apache License, Version 2.0(the "License");you may not use this file except in compliance with the License and the following modification to it:Section 6 Trademarks. deleted and replaced with:6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor and its affiliates, except as required for reproducing the content of the NOTICE file. You may obtain a copy of the License at http:-->< h3 > Shader XGen Paint3d Expressions</h3 >< ul >< li >< a href="#Variables"> Variables</a ></li >< li >< a href="#Color_Masking_and_Remapping_Functions"> | Masking
< br > | $a = noise($P)
< br > | $b = noise($a * 1)
This can be useful to scale the noise frequency for | instance
< br > | $P = $P * 10
For c from | to
For c from the contrast is decreased & | nbsp
For c & | gt =&nbsp
When x is within< i > range</i > of | source
The falloff shape is controlled by< i > interp</i > Numeric values or named constants may be | used
int< b > | linear</b >
int< b > | smooth</b >
int< b > | gaussian</b >
At the mid | point
| At
the full shift | happens
the full shift and | at
< br > HSL is | Hue
< br > HSL is | Saturation
pulling the curve up and values & | lt
Defined as float g float | a1
Defined as float g float float | b1
Defined as float g float float float | a2
Defined as a *alpha b *alpha< br ></div >< br > float< b > float | a
Between a and | b
| Intuitively
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > float | y
This is the same as the prman cellnoise function< br ></div >< br > float< b > float y< br > float< b > float float | z
The remaining params are the same as for the fbm function< br > Voronoi types | through
The result is computed int | loRange
The result is computed int int | hiRange
If a scalar is used in a vector | context
For< b > | pick
For< b ></b >< b > | choose
For< b ></b >< b ></b >< b > | cycle
For< b ></b >< b ></b >< b ></b >< b > | spline
For< b ></b >< b ></b >< b ></b >< b ></b > | etc
For< b ></b >< b ></b >< b ></b >< b ></b > will work just fine with vectors< br >< br > Arithmetic operators such | as
For | example
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > | val_i
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are | none
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are | linear
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are | smooth
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float | pos0
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float | val0
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int | interp0
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float | pos1
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float | val1
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int | interp1
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters | pos_i
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float | y1
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float | y2
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float | y3
For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float | y4
< b ></b >< br >< b ></b ></td >< td > vector constructor< br > vector component access n must | be
</b ></td >< td > | multiply
</b ></td >< td > | divide
</b ></td >< td > | add
</b ></td >< td > | equality =&nbsp
</b ></td >< td > inequality</td ></tr >< tr >< td >< b > & | amp
| __pad0__
| __pad1__
</b ></td >< td > apply The function on the right of the arrow is applied to the expression on the left< br > | Examples
For a multi line | expression

## Typedef Documentation

## ◆ style

using style = "margin-left: 40px

Definition at line 70 of file userdoc.txt.

## Function Documentation

## ◆ as()

The result is computed as | ( | loRange+value % | hiRange-loRange+1 | ) |

## ◆ b()

b | ( | or x &gt;a in the case of | boxstep | ) | &

## ◆ bias</b >()

For any rgb or hsl the conversion is well defined and reversible<br></div><br> float<b> bias</b > | ( | float | x,
|  | float | b
| ) |  |

## ◆ boxstep</b >()

Defined as a* alpha b* alpha<br></div><br> float<b> boxstep</b > | ( | float | x,
|  | float | a
| ) |  |

## ◆ cellnoise3</b >()

Any number of seeds may be given and the result will be a random function based on all the seeds<br></div> float<b> float y<br> float<b> cellnoise3</b > | ( | float | x,
|  | float | y,
|  | float | z
| ) |  |

## ◆ cellnoise</b >()

Any number of seeds may be given and the result will be a random function based on all the seeds<br></div> float<b> cellnoise</b > | ( | vector | v | ) |

## ◆ choose</b >()

Any weights not supplied are assumed to be<br><br></div> float<b> choose</b > | ( | float | index,
|  | float | choice1,
|  | float | choice2
| ) |  |

## ◆ clamp()

clamp | ( | 0. | 2,
|  | &nbsp;0. | 8
| ) |  | &

## ◆ cnoise</b >()

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> float float float w<br> color<b> cnoise</b > | ( | vector | v | ) |

## ◆ components()

If a scalar is used in a vector it is replicated into the three components | ( | e.g. 0.5 | becomes[0.5, 0.5, 0.5] | ) | &

Referenced by DeepWaterScene::flowDirectionChanged().

## ◆ compress</b >()

constrain x to range [lo, hi]<br><br> float<b> compress</b > | ( | float | x,
|  | float | lo,
|  | float | hi
| ) |  | &

## ◆ contrast()

contrast | ( | . | 7 | ) | &

## ◆ curve</b >()

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> curve</b > | ( | float | param,
|  | float | pos0,
|  | color | val0,
|  | int | interp0,
|  | float | pos1,
|  | color | val1,
|  | int | interp1
| ) |  |

## ◆ cycle</b >()

</div><br><h4><a name="Selection_Functions"></a> Selection Functions</h4> int<b> cycle</b > | ( | int | index,
|  | int | loRange,
|  | int | hiRange
| ) |  |

## ◆ expand</b >()

<div style="margin-left: 40px;"> Compress the dynamic range from [0..1] to [lo..hi]<br></div> float<b> expand</b > | ( | float | x,
|  | float | lo,
|  | float | hi
| ) |  |

## ◆ exponentiation()

e g $P [0]</td></tr><tr><td><b></b></td><td> exponentiation | ( | same as pow | function | ) | &

## ◆ fbm()

fbm | ( | vnoise($P)+ $P/ | 4 | ) |

## ◆ hsi()

hsi | ( | 20 | ,
|  | &nbsp;1. | 2,
|  | &nbsp; | 1,
|  | &nbsp; $Cs &nbsp;-&gt;&nbsp; | gamma1.2
| ) |  |

## ◆ index()

The result is computed int int<br><div style="margin-left: 40px;"> Picks values randomly between loRange and hiRange based on supplied index | ( | which is automatically | hashed | ) | &

Referenced by ExprColorSwatchWidget::addSwatch(), SeExpr2::CellNoise(), ColorSwatchEditable::change(), ExprGrapherView::clear(), ColorSwatchControl::colorAdded(), ColorSwatchControl::colorChanged(), ColorSwatchControl::colorRemoved(), SeExpr2::cycle(), ExprColorWidget::ExprColorWidget(), ExprTreeFilterModel::filterAcceptsRow(), SeDeepWater< T >::fromIndex(), SeExpr2::Curve< T >::getChannelValue(), SeExpr2::Curve< T >::getLowerBoundCV(), ExprColorSwatchWidget::getSwatchColor(), SeExpr2::Curve< T >::getValue(), SeDeepWater< T >::getValue(), SeExpr2::hashReduce(), SeExpr2::hashReduceChar(), ExprHighlighter::highlightBlock(), ExprColorSwatchWidget::internalSwatchChanged(), ExprTextEdit::keyPressEvent(), ExprShortTextEdit::keyPressEvent(), SeExpr2::ExprVarEnv::merge(), SeExpr2::noiseHelper(), SeExpr2::pick(), ColorSwatchEditable::remove(), CCurveScene::removePoint(), CurveScene::removePoint(), ExprBrowser::selectPath(), ExprColorSwatchWidget::setSwatchColor(), unescapeString(), and ExprGrapherView::update().

## ◆ invert</b >()

the contrast is increased<br></div> float<b> invert</b > | ( | float | x | ) | &

## ◆ is()

The jitter param controls how irregular the pattern is | ( | jitter | = `0 is like ordinary cellnoise` | ) | &

## ◆ Lightness()

<br> HSL is Lightness | ( | all in | range[0..1] | ) | &

## ◆ linearstep</b >()

Defined as a* alpha b* alpha<br></div><br> float<b> float float b<br> float<b> linearstep</b > | ( | float | x,
|  | float | a,
|  | float | b
| ) |  |

## ◆ midhsi</b >()

The shift will be scaled back for values between zero and one<br></div> color<b> midhsi</b > | ( | color | x,
|  | float | h,
|  | float | s,
|  | float | i,
|  | float | map,
|  | float | falloff = `1`,
|  | int | interp = `0`
| ) |  |

## ◆ mix</b >()

Defined as float g float float float float b2<div style="margin-left: 40px;"> Linear remapping of [a1..x..b1] to [a2..x..b2]<br></div> float<b> mix</b > | ( | float | a,
|  | float | b,
|  | float | alpha
| ) |  |

## ◆ modulus()

</b></td><td> modulus | ( | same as fmod | function | ) | &

## ◆ monotone()

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are monotone | ( | non- | oscillating | ) |

## ◆ noise</b >() [1/2]

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> noise</b > | ( | float | x,
|  | float | y,
|  | float | z
| ) |  |

## ◆ noise</b >() [2/2]

This is the same as the prman cellnoise function<br></div><br> float<b> noise</b > | ( | vector | v | ) |

## ◆ Operators()

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float<br> Interpolates a set of values to the parameter specified where yn are distributed evenly from [0...1]</p><h4><a name="Misc_Functions"></a> Misc Functions</h4><p> void<b> you would get test [4,5,6]</p><h4><a name="Operators"></a> Operators | ( | listed in decreasing | precedence | ) |

## ◆ perlin</b >()

This is Ken Perlin s original noise function<br></div><br> float<b> perlin</b > | ( | vector | v | ) |

## ◆ pnoise</b >()

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> float float float w<br> color<b> float t color noise<br> float<b> float t signed vector noise<br> float<b> pnoise</b > | ( | vector | v,
|  | vector | period
| ) |  |

## ◆ pow() [1/3]

<br> pow | ( |  | $a,
|  | 0. | 5
| ) |  | &

Referenced by SeExpr2::bias(), SeExpr2::defineBuiltins(), SeExpr2::gamma(), SeExpr2::gaussstep(), ExprGrapherView::mouseMoveEvent(), SeDeepWater< T >::powerLaw(), and SeDeepWater< T >::rescale().

## ◆ pow() [2/3]

Defined as float g pow | ( | x | ,
|  | 1/ | g
| ) |  |

## ◆ pow() [3/3]

Defined as pow | ( | x | ,
|  | log(b)/log(0.5) |
| ) |  |

## ◆ printf</b >()

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float<br> Interpolates a set of values to the parameter specified where yn are distributed evenly from [0...1]</p><h4><a name="Misc_Functions"></a> Misc Functions</h4><p> void<b> printf</b > | ( | string | format | ) |

## ◆ pvoronoi</b >()

<br> vector<b> pvoronoi</b > | ( | vector | v,
|  | float jitter &nbsp; | = `&nbsp;0.5`,
|  | float fbmScale &nbsp; | = `&nbsp;0`,
|  | int fbmOctaves &nbsp; | = `&nbsp;4`,
|  | float fbmLacunarity &nbsp; | = `&nbsp;2`,
|  | float fbmGain &nbsp; | = `&nbsp;0.5`
| ) |  |

## ◆ rand</b >()

gausstep is has a sharper transition near one and a softer transition near zero whereas smoothstep is has a medium softness near both one and zero<br></div><br><h4><a name="Noise_Functions"></a> Noise Functions</h4> float<b> rand</b > | ( |  | ) |

## ◆ remap</b >()

Defined as x<br><br> float<b> remap</b > | ( | float | x,
|  | float | source,
|  | float | range,
|  | float | falloff,
|  | int | interp
| ) |  |

## ◆ rgbtohsl</b >()

The default falloff and interp values result in no remapping<br></div><br> color<b> rgbtohsl</b > | ( | color | rgb | ) |

## ◆ snoise4</b >()

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> float float float w<br> color<b> float t color noise<br> float<b> snoise4</b > | ( | vector | v,
|  | float | t
| ) |  |

## ◆ turbulence</b >()

The<i> gain</i> controls how much each frequency is scaled relative to the previous frequency<br></div><br> float<b> turbulence</b > | ( | vector | v,
|  | int octaves &nbsp; | = `&nbsp;6`,
|  | float lacunarity &nbsp; | = `&nbsp;2`,
|  | float gain &nbsp; | = `&nbsp;0.5`
| ) |  |

## ◆ value()

For any rgb or hsl value | ( | except for negative s | values | ) |

Referenced by ColorSwatchEditable::add(), ColorSwatchEditable::change(), ColorSwatchControl::colorAdded(), ColorSwatchControl::colorChanged(), ExprColorWidget::ExprColorWidget(), SeExpr2::ExprCurveAssignSpec< T >::ExprCurveAssignSpec(), ExprColorSwatchWidget::internalSwatchChanged(), SeContext::lookupParameter(), SeExpr2::Context::lookupParameter(), ExprSlider::paintEvent(), SeExpr2::Expressions::setLoopVariable(), SeContext::setParameter(), SeExpr2::Context::setParameter(), ExprColorFrame::setValue(), ExprCSwatchFrame::setValue(), NumberControl::setValue(), VectorControl::setValue(), SeExpr2::Expressions::setVariable(), NumberControl::sliderChanged(), VectorControl::sliderChanged(), and ExprGrapherView::update().

## ◆ voronoi</b >()

This gives a more billowy appearance<br></div><br><br> float<b> voronoi</b > | ( | vector | v,
|  | int type &nbsp; | = `&nbsp;1`,
|  | float jitter &nbsp; | = `&nbsp;0.5`,
|  | float fbmScale &nbsp; | = `&nbsp;0`,
|  | int fbmOctaves &nbsp; | = `&nbsp;4`,
|  | float fbmLacunarity &nbsp; | = `&nbsp;2`,
|  | float fbmGain &nbsp; | = `&nbsp;0.5`
| ) |  |

## ◆ vturbulence</b >()

<br> vector<b> vturbulence</b > | ( | vector | v,
|  | int octaves &nbsp; | = `&nbsp;6`,
|  | float lacunarity &nbsp; | = `&nbsp;2`,
|  | float gain &nbsp; | = `&nbsp;0.5`
| ) |  |

## ◆ zero()

When fbmScale is zero | ( | the | default | ) |

## Variable Documentation

## ◆ $a

<br> $a = noise($P)

Definition at line 71 of file userdoc.txt.

## ◆ $b

<br> $b = noise($a * 1)

Definition at line 72 of file userdoc.txt.

## ◆ $P

<br> $P = $P * 10

Definition at line 79 of file userdoc.txt.

## ◆ __pad0__

__pad0__

Definition at line 524 of file userdoc.txt.

## ◆ __pad1__

__pad1__

Definition at line 528 of file userdoc.txt.

## ◆ a

Defined as a *alpha b *alpha< br ></div >< br > float< b > float float b< br > float< b > float a

Definition at line 174 of file userdoc.txt.

Referenced by SeExpr2::angle(), SeExpr2::boxstep(), SeExpr2::cross(), SeExpr2::dot(), SeExpr2::ExprNode::ExprNode(), SeExpr2::gaussstep(), SeExpr2::linearstep(), SeExpr2::norm(), SeExpr2::ortho(), SeExpr2::remap(), SeExpr2::ExprType::setLifetime(), SeExpr2::smoothstep(), and SeExpr2::ExprType::valuesCompatible().

## ◆ a1

Defined as float g float a1

Definition at line 162 of file userdoc.txt.

Referenced by SeExpr2::fit().

## ◆ a2

Defined as float g float float float a2

Definition at line 162 of file userdoc.txt.

Referenced by SeExpr2::fit().

## ◆ add

</b></td><td> add

Definition at line 504 of file userdoc.txt.

## ◆ amp

& amp

Definition at line 511 of file userdoc.txt.

## ◆ as

For<b></b><b></b><b></b><b></b> will work just fine with vectors<br><br> Arithmetic operators such as

Definition at line 443 of file userdoc.txt.

## ◆ At

At

Definition at line 136 of file userdoc.txt.

## ◆ at

the full shift and at

Definition at line 136 of file userdoc.txt.

## ◆ b

b

Definition at line 180 of file userdoc.txt.

Referenced by SeExpr2::angle(), SeExpr2::bias(), SeExpr2::cross(), SeExpr2::dot(), SeExpr2::ExprNode::ExprNode(), SeExpr2::gaussstep(), SeExpr2::linearstep(), SeExpr2::ortho(), SeExpr2::remap(), SeExpr2::ExprType::setLifetime(), SeExpr2::smoothstep(), VectorControl::updateControl(), and SeExpr2::ExprType::valuesCompatible().

## ◆ b1

Defined as float g float float b1

Definition at line 162 of file userdoc.txt.

Referenced by SeExpr2::fit().

## ◆ be

<b></b><br><b></b></td><td> vector constructor<br> vector component access n must be

Definition at line 484 of file userdoc.txt.

## ◆ choose

For<b></b><b> choose

Definition at line 443 of file userdoc.txt.

## ◆ Color

<!-- Copyright Disney Enterprises, Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License and the following modification to it: Section 6 Trademarks. deleted and replaced with: 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor and its affiliates, except as required for reproducing the content of the NOTICE file. You may obtain a copy of the License at http: --><h3> Shader XGen Paint3d Expressions</h3><ul><li><a href="#Variables"> Variables</a></li><li><a href="#Color_Masking_and_Remapping_Functions"> Color

Definition at line 21 of file userdoc.txt.

## ◆ context

If a vector is used in a scalar context

Definition at line 436 of file userdoc.txt.

Referenced by ExprBrowser::addUserExpressionPath(), SeExpr2::ContextUtils::DisableThreading(), ExprBrowser::getExpressionDirs(), SeContext::global(), SeExpr2::Context::global(), SeContext::hasContext(), SeExpr2::Context::hasContext(), SeExpr2::ContextUtils::IsThreading(), SeContext::setParent(), SeExpr2::Context::setParent(), ExprBrowser::setSearchPath(), and ExprShortEdit::setSearchPath().

## ◆ cycle

For<b></b><b></b><b> cycle

Definition at line 443 of file userdoc.txt.

## ◆ divide

</b></td><td> divide

Definition at line 500 of file userdoc.txt.

## ◆ equality

</b></td><td> equality =&nbsp

Definition at line 511 of file userdoc.txt.

## ◆ etc

For< b ></b >< b ></b >< b ></b >< b ></b > will work just fine with vectors< br >< br > Arithmetic operators such etc

Definition at line 443 of file userdoc.txt.

## ◆ example

For example

Definition at line 446 of file userdoc.txt.

## ◆ Examples

</b></td><td> apply The function on the right of the arrow is applied to the expression on the left<br> Examples

Definition at line 532 of file userdoc.txt.

## ◆ expression

For a multi line expression

Definition at line 551 of file userdoc.txt.

Referenced by ExprHighlighter::highlightBlock(), ExprEditor::setExpr(), and ExprShortEdit::setExpressionString().

## ◆ gaussian</b >

int<b> gaussian</b >

Initial value:
= 2<br>
</div>
<br>
color <b>hsi</b> ( color x, float h, float s, float i, float map=1 ) <br>
<div style="margin-left: 40px;">The hsi function shifts the hue by h
(in degrees) and scales the saturation and intensity by s and i
respectively.&nbsp

Definition at line 119 of file userdoc.txt.

## ◆ gt

& gt =&nbsp

Definition at line 101 of file userdoc.txt.

## ◆ happens

the full shift happens

Definition at line 136 of file userdoc.txt.

## ◆ hiRange

The result is computed int int hiRange

Definition at line 322 of file userdoc.txt.

Referenced by SeExpr2::cycle(), and SeExpr2::pick().

## ◆ Hue

<br> HSL is Hue

Definition at line 147 of file userdoc.txt.

## ◆ instance

For instance

Definition at line 78 of file userdoc.txt.

## ◆ interp0

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int interp0

Definition at line 459 of file userdoc.txt.

## ◆ interp1

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int interp1

Definition at line 459 of file userdoc.txt.

## ◆ Intuitively

Intuitively

Definition at line 183 of file userdoc.txt.

## ◆ linear

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are linear

Definition at line 456 of file userdoc.txt.

## ◆ linear</b >

int<b> linear</b >

Initial value:
= 0<br>
&nbsp

Definition at line 117 of file userdoc.txt.

## ◆ loRange

The result is computed int loRange

Definition at line 322 of file userdoc.txt.

Referenced by SeExpr2::cycle(), and SeExpr2::pick().

## ◆ lt

$u & lt

Definition at line 157 of file userdoc.txt.

## ◆ Masking

<!-- Copyright Disney Enterprises, Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License and the following modification to it: Section 6 Trademarks. deleted and replaced with: 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor and its affiliates, except as required for reproducing the content of the NOTICE file. You may obtain a copy of the License at http: --><h3> Shader XGen Paint3d Expressions</h3><ul><li><a href="#Variables"> Variables</a></li><li><a href="#Color_Masking_and_Remapping_Functions"> Masking

Definition at line 21 of file userdoc.txt.

## ◆ multiply

</b></td><td> multiply

Definition at line 500 of file userdoc.txt.

## ◆ nbsp

For a multi line each line may have its own comment< br >< br >< h4 >< a name="Custom_Plugins"></a > Custom Plugins</h4 > Custom fuctions may be written in C and loaded as one or more dynamic plugins & nbsp

Definition at line 101 of file userdoc.txt.

## ◆ none

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are none

Definition at line 456 of file userdoc.txt.

## ◆ pick

For<b> pick

Definition at line 443 of file userdoc.txt.

## ◆ point

At the mid point

Definition at line 136 of file userdoc.txt.

Referenced by CCurveScene::mouseMoveEvent(), and CurveScene::mouseMoveEvent().

## ◆ pos0

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float pos0

Definition at line 459 of file userdoc.txt.

## ◆ pos1

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float pos1

Definition at line 459 of file userdoc.txt.

Referenced by SeExpr2::cvoronoiFn(), SeExpr2::pvoronoiFn(), SeExpr2::voronoi_f1_3d(), SeExpr2::voronoi_f1f2_3d(), and SeExpr2::voronoiFn().

## ◆ pos_i

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters pos_i

Definition at line 459 of file userdoc.txt.

## ◆ Saturation

<br> HSL is Saturation

Definition at line 147 of file userdoc.txt.

## ◆ smooth

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are smooth

Definition at line 456 of file userdoc.txt.

## ◆ smooth</b >

int<b> smooth</b >

Initial value:
= 1<br>
&nbsp

Definition at line 118 of file userdoc.txt.

## ◆ source

When x is within<i> range</i> of source

Definition at line 111 of file userdoc.txt.

Referenced by SeExpr2::isWS(), and SeExpr2::remap().

## ◆ spline

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are spline

Definition at line 443 of file userdoc.txt.

## ◆ through

The remaining params are the same as for the fbm function<br> Voronoi types through

Definition at line 306 of file userdoc.txt.

## ◆ to

For c from to

Definition at line 101 of file userdoc.txt.

## ◆ used

The falloff shape is controlled by<i> interp</i> Numeric values or named constants may be used

Definition at line 116 of file userdoc.txt.

## ◆ val0

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float val0

Definition at line 459 of file userdoc.txt.

## ◆ val1

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float val1

Definition at line 459 of file userdoc.txt.

## ◆ val_i

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters val_i

Definition at line 456 of file userdoc.txt.

## ◆ y

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> float y

Definition at line 218 of file userdoc.txt.

Referenced by GenericCurveEditable< TVAL >::add(), CCurveScene::addPoint(), CurveScene::addPoint(), ExprCurve::addPoint(), ExprColorCurve::addPoint(), SeExpr2::atan2d(), SeExpr2::dist(), ExprSpecVectorNode::ExprSpecVectorNode(), SeExpr2::Curve< T >::getChannelValue(), SeExpr2::Curve< T >::getValue(), SeExpr2::hsltorgb(), SeExpr2::hslvalue(), SeExpr2::hypot(), main(), SeExpr2::max(), SeExpr2::min(), SeExpr2::mix(), ExprGrapherView::mouseMoveEvent(), SeExpr2::rgbtohsl(), and ExprGrapherView::update().

## ◆ y1

For applying the gamma function to a map adjusts the gamma of all three color channels< br >< br >< h4 >< a name="Curve_Functions"></a > Curve Functions</h4 >< p > Interpolation of parameter values to a set of control points is governed by the following functions</p >< p > color< b > and interp_i Interpolation codes are float float int float float int< br > Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float< br > Interpolates a set of values to the parameter specified where y1

Definition at line 464 of file userdoc.txt.

## ◆ y2

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float y2

Definition at line 464 of file userdoc.txt.

## ◆ y3

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float y3

Definition at line 464 of file userdoc.txt.

## ◆ y4

For applying the gamma function to a map adjusts the gamma of all three color channels<br><br><h4><a name="Curve_Functions"></a> Curve Functions</h4><p> Interpolation of parameter values to a set of control points is governed by the following functions</p><p> color<b> and interp_i Interpolation codes are float float int float float int<br> Interpolates a ramp defined by control points at param Control points are specified by triples of parameters and interp_i Interpolation codes are float float float float y4

Definition at line 464 of file userdoc.txt.

## ◆ z

This is the same as the prman cellnoise function<br></div><br> float<b> float y<br> float<b> float float z

Definition at line 218 of file userdoc.txt.

Referenced by SeExpr2::dist(), ExprGrapherWidget::ExprGrapherWidget(), ExprSpecVectorNode::ExprSpecVectorNode(), ExprGrapherWidget::scaleValueEdited(), ExprGrapherWidget::scaleValueManipulated(), and SeDeepWater< T >::toLog().

SeExpr2::map
SeExpr2::MapFuncX map
style
"margin-left: 40px style
Definition: userdoc.txt:70
nbsp
For c from the contrast is decreased & nbsp
Definition: userdoc.txt:101
hsi
hsi(20,&nbsp;1.2,&nbsp;1,&nbsp;$Cs &nbsp;-&gt;&nbsp;gamma(1.2))</td ></tr ></tbody ></table >< br >< h4 >< a name
x
</pre >< h3 > A simple variable reference</h3 > This is not a very interesting subclass of expression until we add some additional variables Variables on some applications may be very dynamic In this we only need x
Definition: tutorial.txt:108
b
Between a and b
Definition: userdoc.txt:180