// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Find the active keyframe interval // Not compiled or tested in-world // Setup: Put in a spare owned prim. Set increasing TIMES and QUERY. Owner touch prints calculations only. // Stop / restore: Disable/remove. No prim motion or appearance is changed. // Notes: Clamps before the first and after the last frame. Real keyframed motion has additional object and parcel constraints. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Motion planning only. list TIMES=[0.0,1.0,3.5,5.0]; float QUERY=2.0; default { touch_start(integer detectedCount) { if(llDetectedKey(0)!=llGetOwner())return; integer n=llGetListLength(TIMES); if(n<2) { llOwnerSay("Need two timestamps."); return; } integer i; for(i=1;i "+(string)i+" local t="+(string)((QUERY-start)/(end-start))); return; } } llOwnerSay("At last frame."); } }