diff options
author | MW | 2007-08-21 16:46:10 +0000 |
---|---|---|
committer | MW | 2007-08-21 16:46:10 +0000 |
commit | 16f75978ceded5c8191a27ad583f024eda5d2de5 (patch) | |
tree | 38c8f73abf31cb07bda5e08e8cac43a1b45dc407 | |
parent | A bit more work on prim building related code. Think most of the building too... (diff) | |
download | opensim-SC-16f75978ceded5c8191a27ad583f024eda5d2de5.zip opensim-SC-16f75978ceded5c8191a27ad583f024eda5d2de5.tar.gz opensim-SC-16f75978ceded5c8191a27ad583f024eda5d2de5.tar.bz2 opensim-SC-16f75978ceded5c8191a27ad583f024eda5d2de5.tar.xz |
Think linking prims should now work correctly (if its not then please someone let me know) and the rotations are kept. [Now just need to fix the editing (rotation and position) of individual prims of a group]
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 1b7ff23..03ad8c5 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -443,7 +443,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
443 | axPos = parentRot.Inverse() * axPos; | 443 | axPos = parentRot.Inverse() * axPos; |
444 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 444 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
445 | Quaternion oldRot = new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, linkPart.RotationOffset.Z); | 445 | Quaternion oldRot = new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, linkPart.RotationOffset.Z); |
446 | Quaternion newRot = parentRot * oldRot; | 446 | Quaternion newRot = parentRot.Inverse() * oldRot; |
447 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 447 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
448 | linkPart.ParentID = this.m_rootPart.LocalID; | 448 | linkPart.ParentID = this.m_rootPart.LocalID; |
449 | this.m_parts.Add(linkPart.UUID, linkPart); | 449 | this.m_parts.Add(linkPart.UUID, linkPart); |
@@ -464,6 +464,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
464 | this.ScheduleGroupForFullUpdate(); | 464 | this.ScheduleGroupForFullUpdate(); |
465 | } | 465 | } |
466 | 466 | ||
467 | |||
467 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) | 468 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) |
468 | { | 469 | { |
469 | part.SetParent(this); | 470 | part.SetParent(this); |