### 7.7.3 functions.inc - Pre defined functions

`eval_pigment(Pigm, Vect)`, This macro evaluates the color of a pigment at a specific point. Some pigments require more information than simply a point, slope pattern based pigments for example, and will not work with this macro. However, most pigments will work fine.
Parameters:

- `Vect` = The point at which to evaluate the pigment.
- `Pigm` = The pigment to evaluate.

`f_snoise3d(x, y, z)`. Just like f_noise3d(), but returns values in the range [-1, 1].

`f_sine_wave(val, amplitude, frequency)`. Turns a ramping waveform into a sine waveform.

`f_scallop_wave(val, amplitude, frequency)`. Turns a ramping waveform into a "scallop_wave" waveform.

#### 7.7.3.1 Pattern functions

Predefined pattern functions, useful for building custom function patterns or performing "displacement mapping" on isosurfaces. Many of them aren't really useful for these purposes, they are simply included for completeness.

Some are not implemented at all because they require special parameters that must be specified in the definition, or information that isn't available to pattern functions. For this reason, you probably would want to define your own versions of these functions.

All of these functions take three parameters, the XYZ coordinates of the point to evaluate the pattern at.

`f_agate(x, y, z)`
`f_boxed(x, y, z)`
`f_bozo(x, y, z)`
`f_brick(x, y, z)`
`f_bumps(x, y, z)`
`f_checker(x, y, z)`
`f_crackle(x, y, z)`
  This pattern has many more options in POV 3.5 than in previous versions, this function uses the defaults.
`f_cylindrical(x, y, z)`
`f_dents(x, y, z)`
`f_gradientX(x, y, z)`
`f_gradientY(x, y, z)`
`f_gradientZ(x, y, z)`
`f_granite(x, y, z)`
`f_hexagon(x, y, z)`
`f_leopard(x, y, z)`
`f_mandel(x, y, z)`
  Only the basic mandel pattern is implemented, its variants and the other fractal patterns are not implemented.
`f_marble(x, y, z)`
`f_onion(x, y, z)`
`f_planar(x, y, z)`
`f_radial(x, y, z)`
`f_ripples(x, y, z)`
`f_spherical(x, y, z)`
`f_spiral1(x, y, z)`
`f_spiral2(x, y, z)`
`f_spotted(x, y, z)`
`f_waves(x, y, z)`
`f_wood(x, y, z)`
`f_wrinkles(x, y, z)`