Vertex Map Math Tool is a generalized tool that operates on multiple vertex maps. You can use it to do things like scaling values, composing maps in different ways and converting map types. Examples of things you do with this tool include: generating a weight map from a U or V coordinate; making a weight map from the magnitude of a morph map. You can also create a map with the max, min, sum or difference of two maps, or clear one map's entries based on the values in another map.

The math tool makes a formula for the destination --assuming 'Amount' is 100%, like:

`dest = ((sourceA *scaleA) + offsetA) Operation ((sourceB *scaleB) + offsetB)`

with Operation being '+", "-", etc.

The attributes for the Vertex Map Math Tool are as follows:

**Destination**: The name of the destination vertex map. The map will be created if needed

**Amount**: The amount (%) of the computed value that will go into the dest, blended like alpha

**Combine**: Specifies the math operation used to combine the terms (SourceA, SourceB)

Then for each source (#):

map# - the vmap index

scale# - a multiplier to apply to the offset vmap value: src# = scale# * (val# + offset#)

offset# - an amount to add to the vmap value

mode# - the way to deal with multi-dimensional vmap values. if src# is morf and dest is uv:

"Direct" - copy direct component to component, so morf.x->uv.u, morf.y->uv.v

"Component" - pick a single component (index#) so morf.index#->uv.u, morf.index#->uv.v

"Magnitude" - The 'vector length' of the source vmap value

"Maximum","Minimum" - The max. or min. of the components of the source vector

index# - the component of the source map that will be used

This tool can be used to make weight maps of morph magnitude, go between weights and UVs, invert vmaps, etc. The destination map can also be a/the source. If no map is specified, the value is 0, but the offset and scale are applied, so a constant value term is available.