From bbe5681d05d486d86f53d2adf3fa40b136c29df9 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 20 Jul 2017 20:51:06 +0100 Subject: SL-751 - added test script move_in_circle_using_llSetRegionPos.lsl --- .../lsl/move_in_circle_using_llSetRegionPos.lsl | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl (limited to 'scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl') diff --git a/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl new file mode 100644 index 0000000000..5303b6f4f5 --- /dev/null +++ b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl @@ -0,0 +1,98 @@ +integer listenHandle; +integer verbose; +integer num_steps = 50; +float circle_time = 5.0; +integer circle_step; +vector circle_pos; +vector circle_center; +float circle_radius; + +start_circle(vector center, float radius) +{ + vector currentPosition = llGetPos(); + circle_center = center; + circle_radius = radius; + circle_step = 0; + llSetTimerEvent(circle_time/num_steps); +} + +stop_circle() +{ + llSetTimerEvent(0); + llSetRegionPos(circle_center); +} + +next_circle() +{ + float rad = (circle_step * TWO_PI)/num_steps; + float x = circle_center.x + llCos(rad)*circle_radius; + float y = circle_center.y + llSin(rad)*circle_radius; + float z = circle_center.z; + llSetRegionPos(); + circle_step = (circle_step+1)%num_steps; +} + +circle_path(vector center, float radius) +{ + integer i; + integer num_steps = 50; + float circle_time = 5.0; // seconds + for (i=0; i); + llSleep(circle_time/num_steps); + } +} + +default +{ + state_entry() + { + llSay(0, "Hello, Avatar!"); + listenHandle = llListen(-2001,"","",""); + verbose = 0; + } + + listen(integer channel, string name, key id, string message) + { + llOwnerSay("got message " + name + " " + (string) id + " " + message); + list words = llParseString2List(message,[" "],[]); + string command = llList2String(words,0); + string option = llList2String(words,1); + if (command=="anim") + { + if (option=="start") + { + start_circle(llGetPos(), 3.0); + } + else if (option=="stop") + { + stop_circle(); + } + } + if (command=="verbose") + { + if (option=="on") + { + verbose = 1; + } + else if (option=="off") + { + verbose = 0; + } + } + } + + timer() + { + next_circle(); + } +} + +// Local Variables: +// shadow-file-name: "$SW_HOME/axon/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl" +// End: -- cgit v1.2.3 From 30880e062afa0671b166f161ae7c109bfd37d38f Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 21 Jul 2017 20:01:40 +0100 Subject: SL-751, SL-691 - test lsl scripts update, better syncing between skeleton and drawable --- .../lsl/move_in_circle_using_llSetRegionPos.lsl | 39 +++++++++++----------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl') diff --git a/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl index 5303b6f4f5..fa12ab0588 100644 --- a/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl +++ b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl @@ -1,6 +1,6 @@ integer listenHandle; integer verbose; -integer num_steps = 50; +integer num_steps = 12; float circle_time = 5.0; integer circle_step; vector circle_pos; @@ -14,12 +14,21 @@ start_circle(vector center, float radius) circle_radius = radius; circle_step = 0; llSetTimerEvent(circle_time/num_steps); + llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 1.0); } stop_circle() { llSetTimerEvent(0); - llSetRegionPos(circle_center); + llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 0.0); + integer i; + for (i=0; i<10; i++) + { + vector new_pos = circle_center; + new_pos.x += llFrand(0.01); + llSetRegionPos(new_pos); + llSleep(0.1); + } } next_circle() @@ -32,34 +41,19 @@ next_circle() circle_step = (circle_step+1)%num_steps; } -circle_path(vector center, float radius) -{ - integer i; - integer num_steps = 50; - float circle_time = 5.0; // seconds - for (i=0; i); - llSleep(circle_time/num_steps); - } -} - default { state_entry() { - llSay(0, "Hello, Avatar!"); + //llSay(0, "Hello, Avatar!"); listenHandle = llListen(-2001,"","",""); verbose = 0; + circle_center = llGetPos(); } listen(integer channel, string name, key id, string message) { - llOwnerSay("got message " + name + " " + (string) id + " " + message); + //llOwnerSay("got message " + name + " " + (string) id + " " + message); list words = llParseString2List(message,[" "],[]); string command = llList2String(words,0); string option = llList2String(words,1); @@ -85,6 +79,11 @@ default verbose = 0; } } + if (command=="step") + { + llSetTimerEvent(0); + next_circle(); + } } timer() -- cgit v1.2.3 From 22c8efc2ce8cac2056b73c504b95a9413fff8818 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 26 Jul 2017 18:56:18 +0100 Subject: SL-731, SL-751 - added debug option DebugAnimatedObjects, updated LSL test script --- scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl') diff --git a/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl index fa12ab0588..cc5b899b67 100644 --- a/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl +++ b/scripts/testing/lsl/move_in_circle_using_llSetRegionPos.lsl @@ -21,14 +21,7 @@ stop_circle() { llSetTimerEvent(0); llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 0.0); - integer i; - for (i=0; i<10; i++) - { - vector new_pos = circle_center; - new_pos.x += llFrand(0.01); - llSetRegionPos(new_pos); - llSleep(0.1); - } + llSetRegionPos(circle_center); } next_circle() -- cgit v1.2.3