Object3D orientation axis in threejs

I am porting our opengl es based game to threejs (instead of pure webgl) and most of our movement are based on the object axis (look, right and up vectors). I see the documentation and
I can see that we can get the up vector, but not the lookAt and the right, but I can set the lookAt vector though (but no getter), How do I do this?

(1) How do I get the orientation vectors of a 3D object specialy the look and the right?
(2) aside from getting it, how do I set it as well, see for example if I move an object 3 units forward, then I need the look vector, If I move the object 3 units to the side, then i need the right vector.
I can see in the documentation only getter for up and setter for look and no access to right vector.
(3) I also need this vectors to do rotations in object based on its orientation, things like Yaw, pitch and roll.

I know I can manipulate or get this thru the matrix, but i was thinking with a robust library like threejs i thought there was an easy way maybe i am missing out something from the documentation?

:point_right: Object3D.getWorldDirection

Then apply 90 degrees rotation to the direction vector, around the .up vector, to get the left and right vectors.

Should solve all points at once :slight_smile:

Ok so I assume the World direction (target) is the look vector right?
my confusion is how the documentation is written, it says “Returns a vector representing the direction of object’s positive z-axis in world space.”
look or direction vector should not always points to positive z-axis, say if I rotate an object 90 degress on Y axis, it should now be pointing (or directed/looking at) to the positive X axis now.

also with that said, How do i do that in threejs? how do I rotate the target/direction look vector so that object look/direction now points to a new value? I assume its the lookAt() method?
so i assume to get the right vector is I cross product the Up and direction vector.

this is what i find weird and confusing on how threejs is named and convention, we have getters but no setters (or named differently), etc. =)