llRezObjectWithParams relative positioning error
tracked
SungAli Resident
Using llRezObjectWithParams with REZ_POS and the Relative parameter set TRUE results in the Rezzee being placed relative to the rezzer in the region reference frame rather than in the the rezzer's local reference frame.
Log In
Maestro Linden
tracked
I think the expected behavior is reasonable here - if both REZ_POS and REZ_ROT have the
relative
parameters enabled, it's reasonable and useful to have the rezzed object appear at the same transform in the rezzer's frame of reference, independent of the rezzer's orientation.Nexii Malthus
Maestro Linden is it? I think it is rather surprising behaviour in that it goes against the most common pattern.
The Popgun in the Library is an example of this, where llGetPos() & llGetRot() are both passed in to achieve relative.
Also when one thinks of relative one thinks of linksets, which assume orientation of the root.
For relative to be relative position but not relative rotated is a misnomer -- if LL want to keep this behaviour we should rename the flag on the wiki to
relative_position
to clarify this to readers.Maestro Linden
Nexii Malthus: To be clear, when I said 'expected behavior' I mean what SungAli describes as their expectation in this issue - that the rezzer's rotation _should_ be considered in the calculation when rezzing with
relative=TRUE
. In other words, that [REZ_POS, pos, TRUE, TRUE]
should have the same result as [REZ_POS, llGetPos() + pos*llGetRot(), FALSE, TRUE]
instead of matching [REZ_POS, llGetPos() + pos, FALSE, TRUE]
Nexii Malthus
Maestro Linden ah gotcha, my misunderstanding
Lucia Nightfire
I can repro this on 2025-02-07.13191265457, 2024-12-17.12379604629 and 2024-06-25.9663125755.
With a rez_pos of <2,0,0> and REZ_POS,rez_pos,TRUE,TRUE and the rezzer rotated on the z axis away from zero_vector, it is rezzing at rezzer's pos + rez_pos instead of rezzer's pos + (rez_pos * rezzer's rot).
Rezzer rot is not referenced with local rezzing.