public void DetachToGround(Vector3 forcedPos, Quaternion forcedRotation)
{
IScenePresence avatar = m_scene.GetScenePresence(m_rootPart.AttachedAvatar);
if (avatar == null)
return;
RootPart.FromUserInventoryItemID = UUID.Zero;
if (forcedPos == Vector3.Zero)
AbsolutePosition = avatar.AbsolutePosition;
else
AbsolutePosition = forcedPos;
if (forcedRotation != Quaternion.Identity)
UpdateGroupRotationR(forcedRotation);
m_rootPart.AttachedAvatar = UUID.Zero;
//Anakin Lohner bug #3839
foreach (SceneObjectPart p in m_partsList)
{
p.AttachedAvatar = UUID.Zero;
}
m_rootPart.SetParentLocalId(0);
SetAttachmentPoint(0);
RebuildPhysicalRepresentation(false, null);
HasGroupChanged = true;
m_ValidgrpOOB = false;
RootPart.Rezzed = DateTime.UtcNow;
RootPart.RemFlag(PrimFlags.TemporaryOnRez);
m_rootPart.ScheduleUpdate(PrimUpdateFlags.ForcedFullUpdate);
}