// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Allocate keyframe time by segment length // Not compiled or tested in-world // Setup: Put in a spare owned prim. Set POINTS and positive SPEED. Owner touch prints calculations only. // Stop / restore: Disable/remove. No prim motion or appearance is changed. // Notes: Each segment is linear with instantaneous corner direction changes; smooth turning requires additional planning. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Motion planning only. list POINTS=[<0.0,0.0,0.0>,<3.0,0.0,0.0>,<3.0,4.0,0.0>]; float SPEED=2.0; default { touch_start(integer detectedCount) { if(llDetectedKey(0)!=llGetOwner())return; if(SPEED<=0.0||llGetListLength(POINTS)<2) { llOwnerSay("Positive speed and two points required."); return; } float time; llOwnerSay("Frame0 time0"); integer i; for(i=1;i