TransferSubset
An animation that transfer the a subset of the from variable to the into variable. In this case, type information is always lost, even if the selection is the entirey of the from variable. Also, to make semantics clear, we required that the into variable be in line with its follower (that is, there cannot be any changes to the into variable since its last Set). This is easy to fix by simply calling Set: on the into variable right before this animation if you need to
TransferSubset is important for denoting ownership. It's also good for moving variables into auxiliary trees for temporary purposes. This is especially helpful when you want two animations on the same variable in parallel, so you use TransferSubset to split the variable into two auxiliary ones, perform animations on each half, and then transfer the contents back to the main variable.
from& | The sources of the animation. Note that from can be a variable tree |
tag_predicate(tag) | This specifies the subset of the from variable that should be transferred over to the target into variabl |
into& | The destination of the animation. Note that into CANNOT be a variable tree, it must be a single variable |
An animation the executes the transfer. The from iterators and followers are all the unselected portions, whereas the into iterators and followers are going to be iterator original content + the transferred content. For all variables, type information is elided.
func TransferSubset([subset] {[main] {from&, tag_predicate(tag)}}, into&)