SOG bug fix in UI object changes

avinationmerge
UbitUmarov 2012-04-24 21:48:12 +01:00
parent f0ba6c84e4
commit 816a44d6da
1 changed files with 20 additions and 11 deletions

View File

@ -3686,15 +3686,24 @@ namespace OpenSim.Region.Framework.Scenes
if (togroup) if (togroup)
{ {
// related to group // related to group
if ((change & ObjectChangeType.Position) != 0) if ((change & (ObjectChangeType.Rotation | ObjectChangeType.Position)) != 0)
{ {
group.AbsolutePosition = data.position; if ((change & ObjectChangeType.Rotation) != 0)
updateType = updatetype.groupterse; {
} group.RootPart.UpdateRotation(data.rotation);
if ((change & ObjectChangeType.Rotation) != 0) updateType = updatetype.none;
{ }
group.RootPart.UpdateRotation(data.rotation); if ((change & ObjectChangeType.Position) != 0)
updateType = updatetype.none; {
group.AbsolutePosition = data.position;
updateType = updatetype.groupterse;
}
else
// ugly rotation update of all parts
{
group.AbsolutePosition = AbsolutePosition;
}
} }
if ((change & ObjectChangeType.Scale) != 0) if ((change & ObjectChangeType.Scale) != 0)
{ {
@ -3719,10 +3728,10 @@ namespace OpenSim.Region.Framework.Scenes
if (part == group.RootPart) if (part == group.RootPart)
{ {
if ((change & ObjectChangeType.Position) != 0)
group.UpdateRootPosition(data.position);
if ((change & ObjectChangeType.Rotation) != 0) if ((change & ObjectChangeType.Rotation) != 0)
group.UpdateRootRotation(data.rotation); group.UpdateRootRotation(data.rotation);
if ((change & ObjectChangeType.Position) != 0)
group.UpdateRootPosition(data.position);
if ((change & ObjectChangeType.Scale) != 0) if ((change & ObjectChangeType.Scale) != 0)
part.Resize(data.scale); part.Resize(data.scale);
} }