diff options
Diffstat (limited to 'OpenSim/Region/Physics')
4 files changed, 27 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 92b6929..c1ad555 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -80,6 +80,11 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
80 | return act; | 80 | return act; |
81 | } | 81 | } |
82 | 82 | ||
83 | public override void RemovePrim(PhysicsActor prim) | ||
84 | { | ||
85 | |||
86 | } | ||
87 | |||
83 | public override void RemoveAvatar(PhysicsActor actor) | 88 | public override void RemoveAvatar(PhysicsActor actor) |
84 | { | 89 | { |
85 | BasicActor act = (BasicActor)actor; | 90 | BasicActor act = (BasicActor)actor; |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs index 0e75b04..11789a2 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs | |||
@@ -44,6 +44,8 @@ namespace OpenSim.Physics.Manager | |||
44 | 44 | ||
45 | public abstract void RemoveAvatar(PhysicsActor actor); | 45 | public abstract void RemoveAvatar(PhysicsActor actor); |
46 | 46 | ||
47 | public abstract void RemovePrim(PhysicsActor prim); | ||
48 | |||
47 | public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation); | 49 | public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation); |
48 | 50 | ||
49 | public abstract void Simulate(float timeStep); | 51 | public abstract void Simulate(float timeStep); |
@@ -74,6 +76,11 @@ namespace OpenSim.Physics.Manager | |||
74 | 76 | ||
75 | } | 77 | } |
76 | 78 | ||
79 | public override void RemovePrim(PhysicsActor prim) | ||
80 | { | ||
81 | |||
82 | } | ||
83 | |||
77 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) | 84 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) |
78 | { | 85 | { |
79 | MainLog.Instance.Verbose("NullPhysicsScene : AddPrim({0},{1})", position, size); | 86 | MainLog.Instance.Verbose("NullPhysicsScene : AddPrim({0},{1})", position, size); |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index f168340..420693b 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -143,7 +143,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
143 | 143 | ||
144 | public override void RemoveAvatar(PhysicsActor actor) | 144 | public override void RemoveAvatar(PhysicsActor actor) |
145 | { | 145 | { |
146 | |||
147 | } | ||
146 | 148 | ||
149 | public override void RemovePrim(PhysicsActor prim) | ||
150 | { | ||
151 | if (prim is OdePrim) | ||
152 | { | ||
153 | d.GeomDestroy(((OdePrim)prim).prim_geom); | ||
154 | this._prims.Remove((OdePrim)prim); | ||
155 | } | ||
147 | } | 156 | } |
148 | 157 | ||
149 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) | 158 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size, Quaternion rotation) |
@@ -397,7 +406,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
397 | private PhysicsVector _size; | 406 | private PhysicsVector _size; |
398 | private PhysicsVector _acceleration; | 407 | private PhysicsVector _acceleration; |
399 | private Quaternion _orientation; | 408 | private Quaternion _orientation; |
400 | IntPtr prim_geom; | 409 | public IntPtr prim_geom; |
401 | 410 | ||
402 | public OdePrim(OdeScene parent_scene, PhysicsVector pos, PhysicsVector size, Quaternion rotation) | 411 | public OdePrim(OdeScene parent_scene, PhysicsVector pos, PhysicsVector size, Quaternion rotation) |
403 | { | 412 | { |
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index f86eedf..ab7d5bc 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -98,6 +98,11 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
98 | return act; | 98 | return act; |
99 | } | 99 | } |
100 | 100 | ||
101 | public override void RemovePrim(PhysicsActor prim) | ||
102 | { | ||
103 | |||
104 | } | ||
105 | |||
101 | public override void RemoveAvatar(PhysicsActor actor) | 106 | public override void RemoveAvatar(PhysicsActor actor) |
102 | { | 107 | { |
103 | 108 | ||