diff options
Merge branch 'master' into bigmerge
Conflicts:
OpenSim/Framework/Watchdog.cs
Diffstat (limited to 'OpenSim/Region/Physics/Manager')
-rw-r--r-- | OpenSim/Region/Physics/Manager/PhysicsActor.cs | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 96dcfb6..362f997 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -66,42 +66,29 @@ namespace OpenSim.Region.Physics.Manager | |||
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | /// <summary> | ||
70 | /// Used to pass collision information to OnCollisionUpdate listeners. | ||
71 | /// </summary> | ||
69 | public class CollisionEventUpdate : EventArgs | 72 | public class CollisionEventUpdate : EventArgs |
70 | { | 73 | { |
71 | // Raising the event on the object, so don't need to provide location.. further up the tree knows that info. | 74 | /// <summary> |
75 | /// Number of collision events in this update. | ||
76 | /// </summary> | ||
77 | public int Count { get { return m_objCollisionList.Count; } } | ||
72 | 78 | ||
73 | public int m_colliderType; | 79 | public Dictionary<uint, ContactPoint> m_objCollisionList; |
74 | public int m_GenericStartEnd; | ||
75 | //public uint m_LocalID; | ||
76 | public Dictionary<uint, ContactPoint> m_objCollisionList = new Dictionary<uint, ContactPoint>(); | ||
77 | 80 | ||
78 | public CollisionEventUpdate(uint localID, int colliderType, int GenericStartEnd, Dictionary<uint, ContactPoint> objCollisionList) | 81 | public CollisionEventUpdate(Dictionary<uint, ContactPoint> objCollisionList) |
79 | { | 82 | { |
80 | m_colliderType = colliderType; | ||
81 | m_GenericStartEnd = GenericStartEnd; | ||
82 | m_objCollisionList = objCollisionList; | 83 | m_objCollisionList = objCollisionList; |
83 | } | 84 | } |
84 | 85 | ||
85 | public CollisionEventUpdate() | 86 | public CollisionEventUpdate() |
86 | { | 87 | { |
87 | m_colliderType = (int) ActorTypes.Unknown; | ||
88 | m_GenericStartEnd = 1; | ||
89 | m_objCollisionList = new Dictionary<uint, ContactPoint>(); | 88 | m_objCollisionList = new Dictionary<uint, ContactPoint>(); |
90 | } | 89 | } |
91 | 90 | ||
92 | public int collidertype | 91 | public void AddCollider(uint localID, ContactPoint contact) |
93 | { | ||
94 | get { return m_colliderType; } | ||
95 | set { m_colliderType = value; } | ||
96 | } | ||
97 | |||
98 | public int GenericStartEnd | ||
99 | { | ||
100 | get { return m_GenericStartEnd; } | ||
101 | set { m_GenericStartEnd = value; } | ||
102 | } | ||
103 | |||
104 | public void addCollider(uint localID, ContactPoint contact) | ||
105 | { | 92 | { |
106 | if (!m_objCollisionList.ContainsKey(localID)) | 93 | if (!m_objCollisionList.ContainsKey(localID)) |
107 | { | 94 | { |
@@ -113,6 +100,14 @@ namespace OpenSim.Region.Physics.Manager | |||
113 | m_objCollisionList[localID] = contact; | 100 | m_objCollisionList[localID] = contact; |
114 | } | 101 | } |
115 | } | 102 | } |
103 | |||
104 | /// <summary> | ||
105 | /// Clear added collision events. | ||
106 | /// </summary> | ||
107 | public void Clear() | ||
108 | { | ||
109 | m_objCollisionList.Clear(); | ||
110 | } | ||
116 | } | 111 | } |
117 | 112 | ||
118 | public abstract class PhysicsActor | 113 | public abstract class PhysicsActor |
@@ -127,7 +122,13 @@ namespace OpenSim.Region.Physics.Manager | |||
127 | public event VelocityUpdate OnVelocityUpdate; | 122 | public event VelocityUpdate OnVelocityUpdate; |
128 | public event OrientationUpdate OnOrientationUpdate; | 123 | public event OrientationUpdate OnOrientationUpdate; |
129 | public event RequestTerseUpdate OnRequestTerseUpdate; | 124 | public event RequestTerseUpdate OnRequestTerseUpdate; |
125 | |||
126 | /// <summary> | ||
127 | /// Subscribers to this event must synchronously handle the dictionary of collisions received, since the event | ||
128 | /// object is reused in subsequent physics frames. | ||
129 | /// </summary> | ||
130 | public event CollisionUpdate OnCollisionUpdate; | 130 | public event CollisionUpdate OnCollisionUpdate; |
131 | |||
131 | public event OutOfBounds OnOutOfBounds; | 132 | public event OutOfBounds OnOutOfBounds; |
132 | #pragma warning restore 67 | 133 | #pragma warning restore 67 |
133 | 134 | ||