I am not of a fan of this as its dangerous. You should not be giving an instance back that subsequent calls can overwrite the values of said instance unknowingly to the poor developer.

Instead, the vectors should be immutable and we should add checking in all the methods to throw runtime errors if you attempt to manipulate an immutable vector. Same likely applies to quaternions if they are ever used in a similar manner.

After making them immutable, remove all 3 methods and make these public static final so that they are globally accessible direct memory access.