Guest User

Untitled

a guest
Feb 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. twist(integer center, float sign)
  2. {
  3. rotation rot;
  4. vector pos;
  5. vector offset;
  6.  
  7. llSetLinkPrimitiveParamsFast(axisfinder, [PRIM_POS_LOCAL, ZERO_VECTOR, PRIM_ROT_LOCAL, ZERO_ROTATION]);
  8. rotation axis = (rotation)llList2String(axes, center);
  9. llSetLinkPrimitiveParamsFast(axisfinder, [PRIM_ROT_LOCAL, axis]);
  10. params = llGetLinkPrimitiveParams(axisfinder, [PRIM_POS_LOCAL, PRIM_ROT_LOCAL]);
  11. vector axispos = (vector)llList2String(params, 0);
  12. rotation axisrot = (rotation)llList2String(params, 1);
  13. axispos.z = 0.761;
  14. axispos *= axisrot;
  15. llSetLinkPrimitiveParamsFast(axisfinder, [PRIM_POS_LOCAL, axispos]);
  16. params = llGetLinkPrimitiveParams(axisfinder, [PRIM_POS_LOCAL, PRIM_ROT_LOCAL]);
  17. axispos = (vector)llList2String(params, 0);
  18. axisrot = (rotation)llList2String(params, 1);
  19.  
  20. integer centerlink = llList2Integer(centerlinks, center);
  21. params = llGetLinkPrimitiveParams(centerlink, [PRIM_POS_LOCAL, PRIM_ROT_LOCAL]);
  22. vector centerpos = (vector)llList2String(params, 0);
  23. rotation centerrot = (rotation)llList2String(params, 1);
  24.  
  25. rotation arc = llEuler2Rot(<0.0, 0.0, sign*72.0>*DEG_TO_RAD);
  26.  
  27. rotation twisted = axisrot*arc;
  28.  
  29. offset = centerpos - axispos;
  30. pos = axispos + offset*twisted;
  31. rot = centerrot*twisted;
  32. llSetLinkPrimitiveParamsFast(centerlink, [PRIM_POS_LOCAL, pos, PRIM_ROT_LOCAL, rot]);
  33.  
  34. integer i;
  35. for(i = 0; i < 10; i++)
  36. {
  37. integer piece = llList2Integer(pieces, i);
  38. params = llGetLinkPrimitiveParams(piece, [PRIM_POS_LOCAL, PRIM_ROT_LOCAL]);
  39. offset = (vector)llList2String(params, 0) - axispos;
  40. rotation piecerot = (rotation)llList2String(params, 1);
  41. pos = axispos + offset*twisted;
  42. rot = piecerot*twisted;
  43. llSetLinkPrimitiveParamsFast(piece, [PRIM_POS_LOCAL, pos, PRIM_ROT_LOCAL, rot]);
  44. }
  45.  
  46. bigstring = "newlink: " + (string)newlink + "\ncenterlink: " + (string)centerlink;
  47. llSetText(bigstring, <1, 1, 1>, 1.0);
  48.  
  49. }
Add Comment
Please, Sign In to add comment