How to scale a rotated object via a worldspace vector?

I’ve been searching online for an answer but haven’t been able to figure my issue out… I want to scale a rotated object using a world vector. The problem is the object thinks it is a local vector and doesn’t scale correctly.

what I tried to do is:

                localVector.copy(vector);
                localVector.applyQuaternion(instance.quaternion.inverse());
                instance.scale.set(instance.scale.x * localVector.x,instance.scale.y * localVector.y,instance.scale.z * localVector.z);

But it doesn’t work… the scaling isn’t accurate. What am I doing wrong?
I’m using r71 because I can’t update to a new version since it breaks my code (I’ve tried updating).

Have you tried to convert your vector from world to local space via Object3D.worldToLocal()? If the method is not available in R71, you should be able to implement it by yourself:

Yes, I have tried that.
I think the problem I am having is that scaling a rotated object doesn’t skew or morph the geometry. For example, if a box is scaled on one axis while at a 45 degree angle, you’d expect to get a box without 45 degree angles. But what actually happens is that it doesn’t matter what the local scale vector is, the object remains square.
I don’t want to alter the geometry though, since I have multiple instances of the object that rely on the unmodified form.
One way that seemed to give the closest option would be to place the rotated object into another non-rotated object and scale the parent… But then removing it from the parent reverts the effect… So I’d have to re-engineer my code to incorporate a parent object permanently (and I’m not even sure if it is entirely accurate)…
If I could do it without using a parent, and without altering geometry, it would be the ideal way for me. So if anyone knows if that is possible, let me know.

Oh wait, I’ve missed that you want to convert a scale vector. The above method only works for positions. Related issue:

Hm, does that mean to suggest that I can modify the matrix of the object to get the results I’m looking for without adding an object to a parent? In other words, does working with the matrix allow scaling that skews the object geometry (example: a box skewed so that it does not have 45 degree angles anymore) without modifying the underlying geometry values?