Box3D: Fix applyAffine when applied to a subset of boxes of a Persp3D
If a transform is applied to some but not all 3dboxes of a perspective, the Persp3D is split, with a new Persp3D created for the transformed 3dboxes. In the current code, the new Pesp3D isn't a copy of the existing one, causing weird behaviour (random translation and moved vanishing points).
This commit fixes ObjectSet::applyAffine to actually copy the matrix (tmat) of the Box3D's Persp3D.
Also fix a similar problem in vp_knot_moved_handler (shift-drag a vanishing point to split the perspective).
Fixes #2874 (closed) #3079 (closed)
Edited by Henry Wong