aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2009-02-08 18:05:12 +0000
committerTeravus Ovares2009-02-08 18:05:12 +0000
commitd85fce99f4b524598997a73caff6542a5709787a (patch)
treecfd05658959038b9399480a12ede68e362778c9e
parent* Some minor cleanup (diff)
downloadopensim-SC_OLD-d85fce99f4b524598997a73caff6542a5709787a.zip
opensim-SC_OLD-d85fce99f4b524598997a73caff6542a5709787a.tar.gz
opensim-SC_OLD-d85fce99f4b524598997a73caff6542a5709787a.tar.bz2
opensim-SC_OLD-d85fce99f4b524598997a73caff6542a5709787a.tar.xz
* Once again, fixing linked prim collisions by putting AbsolutePosition = AbsolutePosition; back in the linking routine. Why was it removed? It's critical to the physics scene.
* Fixes mantis #3108
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 57d9ce4..ba2b55e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1018,11 +1018,26 @@ namespace OpenSim.Region.Framework.Scenes
1018 // justincc: I don't believe this hack is needed any longer, especially since the physics 1018 // justincc: I don't believe this hack is needed any longer, especially since the physics
1019 // parts of set AbsolutePosition were already commented out. By changing HasGroupChanged to false 1019 // parts of set AbsolutePosition were already commented out. By changing HasGroupChanged to false
1020 // this method was preventing proper reload of scene objects. 1020 // this method was preventing proper reload of scene objects.
1021
1021 // dahlia: I had to uncomment it, without it meshing was failing on some prims and objects 1022 // dahlia: I had to uncomment it, without it meshing was failing on some prims and objects
1022 // at region startup 1023 // at region startup
1024
1025 // teravus: After this was removed from the linking algorithm, Linked prims no longer collided
1026 // properly when non-physical if they havn't been moved. This breaks ALL builds.
1027 // see: http://opensimulator.org/mantis/view.php?id=3108
1028
1029 // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the
1030 // position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and
1031 // unmoved prims! As soon as you move a Prim/group, it will collide properly because Absolute
1032 // Position has been set!
1033
1023 public void ResetChildPrimPhysicsPositions() 1034 public void ResetChildPrimPhysicsPositions()
1024 { 1035 {
1025 AbsolutePosition = AbsolutePosition; // could someone in the know please explain how this works? 1036 AbsolutePosition = AbsolutePosition; // could someone in the know please explain how this works?
1037
1038 // teravus: AbsolutePosition is NOT a normal property!
1039 // the code in the getter of AbsolutePosition is significantly different then the code in the setter!
1040
1026 } 1041 }
1027 1042
1028 public UUID GetPartsFullID(uint localID) 1043 public UUID GetPartsFullID(uint localID)
@@ -2059,7 +2074,14 @@ namespace OpenSim.Region.Framework.Scenes
2059 // Can't do this yet since backup still makes use of the root part without any synchronization 2074 // Can't do this yet since backup still makes use of the root part without any synchronization
2060// objectGroup.m_rootPart = null; 2075// objectGroup.m_rootPart = null;
2061 2076
2062 AttachToBackup(); 2077 AttachToBackup();
2078
2079
2080 // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the
2081 // position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and
2082 // unmoved prims!
2083 ResetChildPrimPhysicsPositions();
2084
2063 HasGroupChanged = true; 2085 HasGroupChanged = true;
2064 ScheduleGroupForFullUpdate(); 2086 ScheduleGroupForFullUpdate();
2065 } 2087 }