interpolation/Linear/Vectors
< Interpolation | Linear
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: vector pLin( list v, float t, integer Loop );
Linearly interpolates between two vector points in a list of vectors that define a path.
Returns a vector
• list | v | |||
• float | t | – | Ranges between [0, 1] | |
• integer | Loop | – | Whether the list is a curved line or loops into a closed shape. |
Specification
vector pLin(list v, float t, integer Loop) {
integer l = llGetListLength(v); t *= l-1;
integer f = llFloor(t); t -= f;
return llList2Vector(v,pIndex(f,l,Loop))*(1-t) + llList2Vector(v,pIndex(f+1,l,Loop))*t;
}
integer pIndex( integer Index, integer Length, integer Loop) {
if(Loop) return Index % Length;
if(Index < 0) return 0;
if(Index > --Length) return Length;
return Index;
}
// Released into public domain. By Nexii Malthus.
Examples