Crate anl [−] [src]
Modules
cellular_gen  
curve  
hsv  
mapping  
noise_gen  
random_gen  
utility  
vector_types 
Structs
ImplicitAutoCorrect 
The AutoCorrect module is a tool to help tame the wild beasts that are fractals. When a function is set as a source to AutoCorrect, the calculate() method is called. This method will sample the input function a number of times across a region of the domain, and attempt to calculate a set of "correction parameters" to remap the function's output to a different range. Multifractals especially are notorious for outputting values in odd ranges, and this function provides a dropin method for correcting them. Due to the necessity of sampling the function a number of times, there is some processing overhead when calculate() is called. 
ImplicitBasisFunction 
The BasisFunction function encapsulates basic noise generators. The function is customizable; you can choose what type of noise to generate and what interpolation style to use. The types of basis and interpolation functions are enumerated as 
ImplicitBias 
Bias has the effect of applying the following function to the output of its source:

ImplicitBlend 
Blend has the effect of blending the value from 
ImplicitBrightContrast 
The BrightContrast function provides a method for adjusting the brightness and contrast of the image. Contrast is adjusted relative to a specified threshold. Values greater than the threshold are adjust upward (brighter), while values below the threshold are adjusted downward (darker). (Note: The brightness and contrast correction provided by this function are additive, meaning that all values are brightened or darkened across the applicable range, unlike the 
ImplicitCache  
ImplicitCellular 
The Cellular function provides an interface to a 
ImplicitClamp 
Clamp is useful for ensuring that the output of a function does not go beyond a specified range. And values beyond the given range will be clipped. 
ImplicitCombiner 
Combiner is useful for mathematically combining several functions together using arithmetic operators. The function will accept up to 20 sources, and generates a combination of the sources depending on the type parameter, which can be one of 
ImplicitConstant 
Constant is simply that: a constant value. Note: This may be going away, as the increasing use of ScalarParameters (parameters that can either be a constant or a noise source) is making it irrelevant. Even in the case of something like a combiner, which still takes pointers to modules rather than a scalar parameter, it is just as easy to use a 
ImplicitCos 
Takes the cos() of the input function. 
ImplicitCurve  
ImplicitExtractRgbaChannel 
ExtractRGBAChannel accepts an 'RgbaParameter' and extracts one of the channels. The accepted values for channel are listed in the 
ImplicitFloor  
ImplicitFractal 
Fractals are a special type of combiner that combine up to 20 noise sources using fractal methods pioneered by Perlin, Musgrave, and friends. They come in various types (specifiable through 
ImplicitFunctionGradient  
ImplicitGain 
Gain is similar in effect to 
ImplicitGradient 
Gradient has the effect of allowing you to specify a line segment in Ndimensional space by setting endpoints. The endpoints are set via 
ImplicitMagnitude  
ImplicitModifier  
ImplicitNormalizeCoords  
ImplicitPow  
ImplicitRgbaDotProduct  
ImplicitRotateDomain 
RotateDomain applies a domain rotation to the input function. That is, it actually modifies the coordinates that the input function will be called by. If the RotateDomain is called by the input coordinate (x,y), it will call its source with the input coordinate (nx,ny) where (nx,ny) is a transformation of the original input; specifically, a rotation around an axis. This function has slightly different behavior depending on if the 2D version is called or if some higher version is called. 2D version rotates the input around the Z axis by the given angular amount, and the axis sources set by 
ImplicitSawTooth  
ImplicitScaleDomain 
ScaleDomain applies a domain scaling to the coordinates input to the function. 
ImplicitScaleOffset 
ScaleOffset applies a scaling and translation factor to the output of its source function, as 
ImplicitSelect 
Select is used to choose between one function or another based on the output value of a third 
ImplicitSin 
Takes the sin() of the input source. 
ImplicitSphere 
Generates a hyper sphere as a distance field. Values between the center and the radius are interpolated between 0 and 1, while values beyond radius are 0. The individual axis components of the center point, as well as the radius, are specifiable as either constants or as noise functions, making this an extremely flexible sphere indeed. Following are images taken as crosssections of the sphere in the 2D plane, the one on the left with all constants for the components, the one in the center with constants for center and a fractal function for radius, and the one on the right with a fractal for the x component, and a constant radius. 
ImplicitTiers  
ImplicitTranslateDomain 
TranslateDomain is used to translate the input coordinates of a function. Each axis is specifiable as a constant or noise source. This application of domain transformation is commonly called turbulence and is useful in generating many types of effects. 
ImplicitTriangle  
RgbaBlend  
RgbaBlendOps  
RgbaColorOps  
RgbaComposeChannels  
RgbaConstant  
RgbaCurve  
RgbaHsvToRgba  
RgbaImplicitGreyscale  
RgbaNormalize  
RgbaRgbaToHsv  
RgbaRotateColor  
RgbaSelect 
Enums
BasisType 
Basis function types. 
BlendOps  
ColorOperation  
CombinerType  
CompositeChannelsMode  
ExtractChannel  
FractalType  
FunctionGradientAxis  
InterpType 
Aside from being able to assignt he type of noise generated, the user can also assign the type of interpolation used. This parameter only applies to the variants of 
RgbaParameter  
ScalarParameter 
Many functions have "parameters" that affect their functionality, aside from any "source" function they might have. An example is the ImplicitSelect function. This function has a control source, a low source, a high source, a threshold parameter, and a falloff parameter. The threshold parameter is used to select between the output of lowSource and highSource, depending on if the value of controlSource is above or below threshold. All five of these inputs are instances of what ANL calls a "scalar parameter". A scalar parameter can be set to either a constant (doubleprecision) value, or to another function. Most will default to some sane doubleprecision value (ie, 0), but if desired they can be overridden with any constant or any implicit functional output. In this way, complex behaviors can be obtained through a relatively simple interface. 
Traits
ImplicitModule 
Implicit modules output doubleprecision float values. Implicit functions are derived from ImplicitModule trait. Noise values are obtained by calling one of the get() methods provided, with the appropriate number of coordinates. Note that the performance of the system as a hold is affected by the dimensionality of the function called, so a 6D function will take significantly longer than a 2D function. Typical applications will probably stick with 2D or 3D versions; the higher orders are provided for the purpose of seamless mapping. 
RgbaModule 
Type Definitions
Rgba 