Reply
Honored Resident
Roadmap Writer
Posts: 48
0 Kudos

Aligning tiles

[ Edited ]

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.

aligned tiles

Thanks in advance for any mathematical + script help.

Roadmap Writer.

Dora Gustafson
Posts: 1,735
Registered: ‎10-05-2009

Re: Aligning tiles

[ Edited ]

Reply to Roadmap Writer - view message

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

so:

float tileSide = 0.5;
vector newTilePosition = llGetPos()+tileSide*llDetectedTouchNormal( integer index );
rotation newTileRotation = llGetRot();

 

Honored Resident
Roadmap Writer
Posts: 48
0 Kudos

Re: Aligning tiles

[ Edited ]

Reply to Dora Gustafson - view message

Apparently I thought way too difficult.

Thanks for the solution, Dora, it works exactly as i was looking for!

Plane of tiles