mirror of
https://github.com/opensim/opensim.git
synced 2026-07-31 13:55:35 +08:00
Only translate linked prim specified offset pos by the link prim rotation, not any specified avatar rotation as well.
Don't translate root prim position by avatar rotation.
This commit is contained in:
@@ -2277,16 +2277,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
offset = part.SitTargetPosition;
|
||||
sitOrientation = part.SitTargetOrientation;
|
||||
|
||||
// m_log.DebugFormat("Old sit orient {0}", sitOrientation);
|
||||
if (part.IsRoot)
|
||||
sitOrientation = sitOrientation;
|
||||
else
|
||||
if (!part.IsRoot)
|
||||
{
|
||||
// m_log.DebugFormat("Old sit orient {0}", sitOrientation);
|
||||
sitOrientation = part.RotationOffset * sitOrientation;
|
||||
// m_log.DebugFormat("New sit orient {0}", sitOrientation);
|
||||
|
||||
// m_log.DebugFormat("New sit orient {0}", sitOrientation);
|
||||
// m_log.DebugFormat("Old sit offset {0}", offset);
|
||||
offset = offset * sitOrientation;
|
||||
offset = offset * part.RotationOffset;
|
||||
// m_log.DebugFormat("New sit offset {0}", offset);
|
||||
}
|
||||
|
||||
canSit = true;
|
||||
}
|
||||
@@ -2604,19 +2603,22 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
//Quaternion result = (sitTargetOrient * vq) * nq;
|
||||
|
||||
Vector3 newPos = sitTargetPos + SIT_TARGET_ADJUSTMENT;
|
||||
Quaternion newRot;
|
||||
|
||||
if (part.IsRoot)
|
||||
Rotation = sitTargetOrient;
|
||||
{
|
||||
newRot = sitTargetOrient;
|
||||
}
|
||||
else
|
||||
Rotation = part.RotationOffset * sitTargetOrient;
|
||||
|
||||
// m_log.DebugFormat("Old offset2 {0}", newPos);
|
||||
newPos = newPos * Rotation;
|
||||
// m_log.DebugFormat("New offset2 {0}", newPos);
|
||||
{
|
||||
newPos = newPos * part.RotationOffset;
|
||||
newRot = part.RotationOffset * sitTargetOrient;
|
||||
}
|
||||
|
||||
newPos += part.OffsetPosition;
|
||||
|
||||
m_pos = newPos;
|
||||
Rotation = newRot;
|
||||
ParentPosition = part.AbsolutePosition;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user