diff options
author | UbitUmarov | 2012-04-16 19:44:02 +0100 |
---|---|---|
committer | UbitUmarov | 2012-04-16 19:44:02 +0100 |
commit | 6480b72eda967d6166cb8a64c5bca20c7841358c (patch) | |
tree | 0be0758a12851ad26f7b2ddd55eb24314470055a | |
parent | chODE: if character velocity > 50m/s apply breaks. In free fall this will giv... (diff) | |
download | opensim-SC-6480b72eda967d6166cb8a64c5bca20c7841358c.zip opensim-SC-6480b72eda967d6166cb8a64c5bca20c7841358c.tar.gz opensim-SC-6480b72eda967d6166cb8a64c5bca20c7841358c.tar.bz2 opensim-SC-6480b72eda967d6166cb8a64c5bca20c7841358c.tar.xz |
ubitODE: - fix remove characters from default raycasts filters as older code (or camera is very odd) - Slow down avatar if velocity is higher than 50m/s as in chODE
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODERayCastRequestManager.cs | 16 |
2 files changed, 16 insertions, 8 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs index b9bb06e..3185aad 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | |||
@@ -990,6 +990,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
990 | // end add Kitto Flora | 990 | // end add Kitto Flora |
991 | } | 991 | } |
992 | 992 | ||
993 | if (vel.X * vel.X + vel.Y * vel.Y + vel.Z * vel.Z > 2500.0f) // 50m/s apply breaks | ||
994 | { | ||
995 | float breakfactor = 0.16f * m_mass; // will give aprox 60m/s terminal velocity at free fall | ||
996 | vec.X -= breakfactor * vel.X; | ||
997 | vec.Y -= breakfactor * vel.Y; | ||
998 | vec.Z -= breakfactor * vel.Z; | ||
999 | } | ||
1000 | |||
993 | if (vec.IsFinite()) | 1001 | if (vec.IsFinite()) |
994 | { | 1002 | { |
995 | if (vec.X != 0 || vec.Y !=0 || vec.Z !=0) | 1003 | if (vec.X != 0 || vec.Y !=0 || vec.Z !=0) |
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODERayCastRequestManager.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODERayCastRequestManager.cs index e66580d..5122ebf 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODERayCastRequestManager.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODERayCastRequestManager.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
94 | req.length = length; | 94 | req.length = length; |
95 | req.Normal = direction; | 95 | req.Normal = direction; |
96 | req.Origin = position; | 96 | req.Origin = position; |
97 | req.filter = RayFilterFlags.AllButLand; | 97 | req.filter = RayFilterFlags.AllPrims; |
98 | 98 | ||
99 | m_PendingRequests.Enqueue(req); | 99 | m_PendingRequests.Enqueue(req); |
100 | } | 100 | } |
@@ -115,7 +115,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
115 | req.Normal = direction; | 115 | req.Normal = direction; |
116 | req.Origin = position; | 116 | req.Origin = position; |
117 | req.Count = DefaultMaxCount; | 117 | req.Count = DefaultMaxCount; |
118 | req.filter = RayFilterFlags.AllButLand; | 118 | req.filter = RayFilterFlags.AllPrims; |
119 | 119 | ||
120 | m_PendingRequests.Enqueue(req); | 120 | m_PendingRequests.Enqueue(req); |
121 | } | 121 | } |
@@ -129,7 +129,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
129 | req.length = length; | 129 | req.length = length; |
130 | req.Normal = direction; | 130 | req.Normal = direction; |
131 | req.Origin = position; | 131 | req.Origin = position; |
132 | req.filter = RayFilterFlags.AllButLand; | 132 | req.filter = RayFilterFlags.AllPrims; |
133 | 133 | ||
134 | m_PendingRequests.Enqueue(req); | 134 | m_PendingRequests.Enqueue(req); |
135 | } | 135 | } |
@@ -143,7 +143,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
143 | req.Normal = direction; | 143 | req.Normal = direction; |
144 | req.Origin = position; | 144 | req.Origin = position; |
145 | req.Count = DefaultMaxCount; | 145 | req.Count = DefaultMaxCount; |
146 | req.filter = RayFilterFlags.AllButLand; | 146 | req.filter = RayFilterFlags.AllPrims; |
147 | 147 | ||
148 | m_PendingRequests.Enqueue(req); | 148 | m_PendingRequests.Enqueue(req); |
149 | } | 149 | } |
@@ -165,7 +165,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
165 | req.Normal = direction; | 165 | req.Normal = direction; |
166 | req.Origin = position; | 166 | req.Origin = position; |
167 | req.Count = count; | 167 | req.Count = count; |
168 | req.filter = RayFilterFlags.AllButLand; | 168 | req.filter = RayFilterFlags.AllPrims; |
169 | 169 | ||
170 | m_PendingRequests.Enqueue(req); | 170 | m_PendingRequests.Enqueue(req); |
171 | } | 171 | } |
@@ -194,7 +194,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
194 | req.Normal = direction; | 194 | req.Normal = direction; |
195 | req.Origin = position; | 195 | req.Origin = position; |
196 | req.Count = count; | 196 | req.Count = count; |
197 | req.filter = RayFilterFlags.AllButLand; | 197 | req.filter = RayFilterFlags.AllPrims; |
198 | 198 | ||
199 | m_PendingRequests.Enqueue(req); | 199 | m_PendingRequests.Enqueue(req); |
200 | } | 200 | } |
@@ -208,7 +208,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
208 | req.Normal = direction; | 208 | req.Normal = direction; |
209 | req.Origin = position; | 209 | req.Origin = position; |
210 | req.Count = count; | 210 | req.Count = count; |
211 | req.filter = RayFilterFlags.AllButLand; | 211 | req.filter = RayFilterFlags.AllPrims; |
212 | 212 | ||
213 | m_PendingRequests.Enqueue(req); | 213 | m_PendingRequests.Enqueue(req); |
214 | } | 214 | } |
@@ -222,7 +222,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
222 | req.Normal = direction; | 222 | req.Normal = direction; |
223 | req.Origin = position; | 223 | req.Origin = position; |
224 | req.Count = count; | 224 | req.Count = count; |
225 | req.filter = RayFilterFlags.AllButLand; | 225 | req.filter = RayFilterFlags.AllPrims; |
226 | 226 | ||
227 | m_PendingRequests.Enqueue(req); | 227 | m_PendingRequests.Enqueue(req); |
228 | } | 228 | } |