07-27-2012 02:09 AM - edited 07-27-2012 03:05 AM
I need some help with the so nasty orientation/rotation math of LSL :-)
The context is that i like to rez tiles aligning to a "master"-tile. The problem however is that i dont get it done.
The master tile has a scale of <0.5, 0.5, 0.1>. When I touch one of the low-height-sides, I can detect the normal vector of that side with llDetectedTouchNormal(0). At the moment of the touch, i like to have a new tile rezzed of the same scale, but perfectly aligned (glued, without linking) to the touched side of the master tile.
As long as I dont use any rotation around the x- or y-axis i manage to get it done. Like to have it more full proof with the math so that rezzing a new tile in every position and rotation will be aligned making a plane from out the master tile.
Thanks in advance for any mathematical + script help.
07-27-2012 03:14 AM - edited 07-27-2012 03:15 AM
The new tile obviously has the same rotation as the original.
It is 0.5 m away from the original in the direction given by llDetectedTouchNormal
float tileSide = 0.5; vector newTilePosition = llGetPos()+tileSide*llDetectedTouchNormal( integer index ); rotation newTileRotation = llGetRot();
07-27-2012 03:27 AM - edited 07-27-2012 04:06 AM
Apparently I thought way too difficult.
Thanks for the solution, Dora, it works exactly as i was looking for!