aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-11-10 01:28:37 +0000
committerMelanie Thielker2008-11-10 01:28:37 +0000
commitce37b80c685d089c89311671f526936d39ae965a (patch)
tree3907bc2872fc263e4866e67dd91b91ca03abd741
parent* Fixed asset bug. (diff)
downloadopensim-SC_OLD-ce37b80c685d089c89311671f526936d39ae965a.zip
opensim-SC_OLD-ce37b80c685d089c89311671f526936d39ae965a.tar.gz
opensim-SC_OLD-ce37b80c685d089c89311671f526936d39ae965a.tar.bz2
opensim-SC_OLD-ce37b80c685d089c89311671f526936d39ae965a.tar.xz
Thank you, idb, for a patch that fixes avatar height calculation
Our feet will now be above ground
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs21
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODECharacter.cs7
2 files changed, 11 insertions, 17 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 74a9f92..f2ceb20 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -267,22 +267,15 @@ namespace OpenSim.Framework
267 { 267 {
268 Primitive.TextureEntry textureEnt = new Primitive.TextureEntry(texture, 0, texture.Length); 268 Primitive.TextureEntry textureEnt = new Primitive.TextureEntry(texture, 0, texture.Length);
269 m_texture = textureEnt; 269 m_texture = textureEnt;
270
271// m_log.DebugFormat("[APPEARANCE]: Setting an avatar appearance with {0} faces", m_texture.FaceTextures.Length);
272// for (int i = 0; i < m_texture.FaceTextures.Length; i++)
273// {
274// Primitive.TextureEntryFace face = m_texture.FaceTextures[i];
275// String textureIdString = (face != null ? face.TextureID.ToString() : "none");
276// m_log.DebugFormat("[APPEARANCE]: Texture {0} is {1}", i, textureIdString);
277// }
278
279 m_visualparams = visualParam.ToArray(); 270 m_visualparams = visualParam.ToArray();
271 m_avatarHeight = 1.23077f // Shortest possible avatar height
272 + 0.516945f * (float)m_visualparams[25] / 255.0f // Body height
273 + 0.072514f * (float)m_visualparams[120] / 255.0f // Head size
274 + 0.3836f * (float)m_visualparams[125] / 255.0f // Leg length
275 + 0.08f * (float)m_visualparams[77] / 255.0f // Shoe heel height
276 + 0.07f * (float)m_visualparams[78] / 255.0f // Shoe platform height
277 + 0.076f * (float)m_visualparams[148] / 255.0f; // Neck length
280 278
281 // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters.
282 // (float)m_visualParams[25] = Height
283 // (float)m_visualParams[125] = LegLength
284 m_avatarHeight = (1.50856f + (((float) m_visualparams[25]/255.0f)*(2.525506f - 1.50856f)))
285 + (((float) m_visualparams[125]/255.0f)/1.5f);
286 } 279 }
287 280
288 public virtual void SetWearable(int wearableId, AvatarWearable wearable) 281 public virtual void SetWearable(int wearableId, AvatarWearable wearable)
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
index 2cb7e43..e947dc7 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Physics.OdePlugin
55 } 55 }
56 public class OdeCharacter : PhysicsActor 56 public class OdeCharacter : PhysicsActor
57 { 57 {
58 //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 58 private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
59 59
60 private PhysicsVector _position; 60 private PhysicsVector _position;
61 private d.Vector3 _zeroPosition; 61 private d.Vector3 _zeroPosition;
@@ -145,7 +145,8 @@ namespace OpenSim.Region.Physics.OdePlugin
145 { 145 {
146 m_colliderarr[i] = false; 146 m_colliderarr[i] = false;
147 } 147 }
148 CAPSULE_LENGTH = (size.Z - ((size.Z * height_fudge_factor))); 148 CAPSULE_LENGTH = (size.Z * 1.15f) - CAPSULE_RADIUS * 2.0f;
149 //m_log.Info("[SIZE]: " + CAPSULE_LENGTH.ToString());
149 150
150 lock (_parent_scene.OdeLock) 151 lock (_parent_scene.OdeLock)
151 { 152 {
@@ -395,7 +396,7 @@ namespace OpenSim.Region.Physics.OdePlugin
395 // float capsuleradius = CAPSULE_RADIUS; 396 // float capsuleradius = CAPSULE_RADIUS;
396 //capsuleradius = 0.2f; 397 //capsuleradius = 0.2f;
397 398
398 CAPSULE_LENGTH = (SetSize.Z - ((SetSize.Z * heightFudgeFactor))); // subtract 43% of the size 399 CAPSULE_LENGTH = (SetSize.Z * 1.15f) - CAPSULE_RADIUS * 2.0f;
399 //m_log.Info("[SIZE]: " + CAPSULE_LENGTH.ToString()); 400 //m_log.Info("[SIZE]: " + CAPSULE_LENGTH.ToString());
400 d.BodyDestroy(Body); 401 d.BodyDestroy(Body);
401 402