fix rez position being for root or center for a single object case

avinationmerge
UbitUmarov 2014-11-19 18:20:30 +00:00
parent 7bcb68d7c4
commit bb5ab05482
1 changed files with 22 additions and 0 deletions

View File

@ -2491,6 +2491,28 @@ namespace OpenSim.Region.Framework.Scenes
sourcePart.Inventory.RemoveInventoryItem(item.ItemID); sourcePart.Inventory.RemoveInventoryItem(item.ItemID);
} }
SceneObjectGroup sog;
// position adjust
if (totalPrims > 1) // nothing to do on a single prim
{
if (objlist.Count == 1)
{
// current object position is root position
if(!atRoot)
{
sog = objlist[0];
Quaternion orot;
if (rot == null)
orot = sog.RootPart.GetWorldRotation();
else
orot = rot.Value;
Vector3 off = sog.GetGeometricCenter();
off *= orot;
pos -= off;
}
}
}
for (int i = 0; i < objlist.Count; i++) for (int i = 0; i < objlist.Count; i++)
{ {
SceneObjectGroup group = objlist[i]; SceneObjectGroup group = objlist[i];