aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsActor.cs7
-rw-r--r--OpenSim/Region/Physics/Manager/PhysicsScene.cs15
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs6
3 files changed, 26 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
index 880c3ea..1c36e55 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs
@@ -142,7 +142,12 @@ namespace OpenSim.Region.Physics.Manager
142 142
143 public abstract PrimitiveBaseShape Shape { set; } 143 public abstract PrimitiveBaseShape Shape { set; }
144 144
145 public abstract uint LocalID { set; } 145 uint m_baseLocalID;
146 public virtual uint LocalID
147 {
148 set { m_baseLocalID = value; }
149 get { return m_baseLocalID; }
150 }
146 151
147 public abstract bool Grabbed { set; } 152 public abstract bool Grabbed { set; }
148 153
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index 217d307..54c50f8 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -66,6 +66,13 @@ namespace OpenSim.Region.Physics.Manager
66 66
67 public abstract PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying); 67 public abstract PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying);
68 68
69 public virtual PhysicsActor AddAvatar(uint localID, string avName, Vector3 position, Vector3 size, bool isFlying)
70 {
71 PhysicsActor ret = AddAvatar(avName, position, size, isFlying);
72 if (ret != null) ret.LocalID = localID;
73 return ret;
74 }
75
69 public abstract void RemoveAvatar(PhysicsActor actor); 76 public abstract void RemoveAvatar(PhysicsActor actor);
70 77
71 public abstract void RemovePrim(PhysicsActor prim); 78 public abstract void RemovePrim(PhysicsActor prim);
@@ -75,6 +82,14 @@ namespace OpenSim.Region.Physics.Manager
75 public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position, 82 public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, Vector3 position,
76 Vector3 size, Quaternion rotation, bool isPhysical); 83 Vector3 size, Quaternion rotation, bool isPhysical);
77 84
85 public virtual PhysicsActor AddPrimShape(uint localID, string primName, PrimitiveBaseShape pbs, Vector3 position,
86 Vector3 size, Quaternion rotation, bool isPhysical)
87 {
88 PhysicsActor ret = AddPrimShape(primName, pbs, position, size, rotation, isPhysical);
89 if (ret != null) ret.LocalID = localID;
90 return ret;
91 }
92
78 public virtual float TimeDilation 93 public virtual float TimeDilation
79 { 94 {
80 get { return 1.0f; } 95 get { return 1.0f; }
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index f89b824..99b2d84 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -303,7 +303,11 @@ namespace OpenSim.Region.Physics.Meshing
303 if (meshOsd is OSDMap) 303 if (meshOsd is OSDMap)
304 { 304 {
305 OSDMap map = (OSDMap)meshOsd; 305 OSDMap map = (OSDMap)meshOsd;
306 OSDMap physicsParms = (OSDMap)map["physics_shape"]; 306 OSDMap physicsParms = (OSDMap)map["physics_shape"]; // old asset format
307
308 if (physicsParms.Count == 0)
309 physicsParms = (OSDMap)map["physics_mesh"]; // new asset format
310
307 int physOffset = physicsParms["offset"].AsInteger() + (int)start; 311 int physOffset = physicsParms["offset"].AsInteger() + (int)start;
308 int physSize = physicsParms["size"].AsInteger(); 312 int physSize = physicsParms["size"].AsInteger();
309 313