OK, more info …
Take a look at:
I've uploaded the blend file for it here.
Also, there is a bit of js which is configured to know which bones
can be moved in what directions.
As you see, the idea is that you can adjust the dimensions of the plate
and the positions of the holes, but the holes must stay inside the plate.
A plate edge can be adjusted with the sliders, and when it gets to within a
set distance of the holes, my code detects the fact using get_bone_tsr() and
prevents further movement.
But that doesn't work properly when you adjust the holes positions because
the bones are not in the same place as the vertex groups they are parented
to, because the vertices are being influenced by more than 1 bone, so a (eg) a
1 unit movement of the bone doesn't result in a 1 unit movement of the vertex
group it controls.
That's why I tried parenting a mesh to the vertex group instead, so I could then
detect the position using m_transform.get_translation() instead; unfortunately, as
you say, that's not supported by b4w so that doesn't work either.
(To see this go wrong, make the length or width bigger with the slider, then adjust
the holes 'outwards' too. They will go outside the plate.)
Can you think of a way to do this? It's basically just collision detection, so I hope
I'm missing something obvious?