// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Compose a child pose with a parent pose // Not compiled or tested in-world // Setup: Use a spare owned prim. Set parent position/Euler and child offset/Euler. Touch for private calculations. // Stop / restore: Disable/remove. No camera or object settings are changed. // Notes: Assumes no scale transform; LSL linksets use local child transforms relative to the root. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Transform planning only. vector PARENT_POS=<10.0,20.0,3.0>; vector PARENT_EULER=<0.0,0.0,40.0>; vector CHILD_POS=<2.0,1.0,0.0>; vector CHILD_EULER=<15.0,0.0,20.0>; default { touch_start(integer detectedCount) { if(llDetectedKey(0)!=llGetOwner())return; rotation parent=llEuler2Rot(PARENT_EULER*DEG_TO_RAD); rotation local=llEuler2Rot(CHILD_EULER*DEG_TO_RAD); llOwnerSay("World position="+(string)(PARENT_POS+CHILD_POS*parent)+" world rotation="+(string)(local*parent)); } }