Skip to content

llGetGeometricCenter

vector llGetGeometricCenter()

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

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

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.

  • 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.
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;
}