From Second Life Wiki
Jump to navigation Jump to search


Function: vector llGetGeometricCenter( );

Returns the vector that is the geometric center of the object relative to the root prim.


The "geometric center" is different from the "center" in viewer's build tools and also different from what llRezObject considers to be the "center" of a linkset.

All Issues ~ Search JIRA for related Bugs


    touch_start(integer total_number)
        llOwnerSay("Geometric center of the object relative to the root prim: " + (string)llGetGeometricCenter());


  • The "geometric center" is the average of all linked prim centers. Mathematically, it's the root-relative positions of all linked prims in the linkset added together and divided by the number of prims in the linkset.

See Also


•  llGetCenterOfMass

Deep Notes

vector GetGeometricCenter(){
    vector center = ZERO_VECTOR;
    integer p = llGetNumberOfPrims();
    //since we skip the root prim, we can ignore the single prim case.
    //If we weren't skipping the root, this would be more complicated.
    integer i = 1;
    while(i < p)
        center += llList2Vector(llGetLinkPrimitiveParams(++i, [PRIM_POS_LOCAL]), 0);
    return center / p;

All Issues

~ Search JIRA for related Issues
   Provide better llGetGeometricCenter function.


function vector llGetGeometricCenter();


With each added prim
away shifts our origin
to encompass all.