Currently SQF only returns 2 object vectors: vectorDir and vectorUp. The problem is that in Arma objects can be skewed as well, so to fully represent the object orientation you need another vector: vectorRight.
Since that name is kinda awful, I suggest making a command that returns them all in one:
which returns a 3x3 matrix: [vectorX, vectorY, vectorZ]
Sample script to verify the command (run this on Altis):
_o = [18003.4,15311.4,34.8394] nearestObject "559030"; // wrong orientation: _y = vectorDir _o; _z = vectorUp _o; _x = _y vectorCrossProduct _z; // this vector however is wrong, due to object being skewed _wrongRotation = [_x, _y, _z]; // [[-0.771352,0.636146,0.00170559],[-0.636251,-0.771484,0.00153818],[0.00221079,0,0.99983]] _correctRotation = getObjectRotation _o; // [[-0.7714816332,0.6362524629,0.1010795683],[-0.636251,-0.771484,0.00153818],[0.00221079,0,0.99983]]
If possible, having a setter version that allows you to place simple and super simple objects with the added skew would be appreciated:
obj setObjectRotation rotationMatrix