Sure, But those vectors are not correlated. Don't you see? Forward and backward vectors are computed
completely independent from each other. And therefore it is absolutely possible that forward and backward vectors are finding different matches! (It's not only "possibly", it is even somewhat *likely*.)
See - you have to objects in two consecutive frames. Let's assume MVTools (should) try to match these two objects:
MAnalyse finds a match during backward search:
but a
different match (or
no match at all) during the forward search:
Take the backward search, and for simplicity lets talk about the block SAD:
The backward match causes a certain SAD:
Now, the task is to "Flow" the future object backwards by a fraction of the backward-vector's length:
Obviously, the mask you (would) get from MMask is not correlated with the Flow-compensation.
Now, the obvious idea is to compensate the mask.
But this does not work.
Again:
the forward vector is not correlated to the backward vector, and very well might have a completely different direction.
Problem? Ah! Problem!
One would need to be able to use a given vector in
inverse direction. But there is no means to do that.
"Within" the plugin, it's a different story. There, it is sufficient to know --
while doing the flow-compensation -- that the currently-used vector has a certain metric "attached". This suffices to produce a result with an according weighting. That's okay.
But from the script level, it is not possible to align a fractionally flow-compensated object with the MMask that is created at the vector's end position.