From 86613fd388d7985abc814ee8ee52da54fd74779e Mon Sep 17 00:00:00 2001
From: Loren Shih <seraph@lindenlab.com>
Date: Fri, 18 Mar 2011 16:04:28 -0400
Subject: Variety of fixes for param ranges. Turned off normal/binormal effects
 for morphing. Fixed issue where updates were always being sent even if below
 the change threshold.

---
 indra/newview/character/avatar_lad.xml | 18 +++++-----
 indra/newview/llphysicsmotion.cpp      |  6 ++--
 indra/newview/llpolymesh.cpp           | 64 +++++++++++++++++++---------------
 3 files changed, 48 insertions(+), 40 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 0fc62ccaf1..727a9e7fc4 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -9180,7 +9180,7 @@ render_pass="bump">
      label_max="More"
      value_default="0"
      value_min="0"
-     value_max="100"
+     value_max="1"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
@@ -9196,9 +9196,9 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="3"
+     value_default=".1"
      value_min="0"
-     value_max="10"
+     value_max="1"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
@@ -9215,7 +9215,7 @@ render_pass="bump">
      label_min="Less"
      label_max="More"
      value_default="10"
-     value_min="0"
+     value_min="1"
      value_max="100"
      camera_elevation=".3"
      camera_distance=".8">
@@ -9268,9 +9268,9 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="10"
+     value_default=".1"
      value_min="0"
-     value_max="10"
+     value_max=".1"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
@@ -9306,7 +9306,7 @@ render_pass="bump">
      label_min="Less"
      label_max="More"
      value_default="10"
-     value_min="0"
+     value_min="1"
      value_max="100"
      camera_elevation=".3"
      camera_distance=".8">
@@ -9359,9 +9359,9 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="10"
+     value_default=".1"
      value_min="0"
-     value_max="10"
+     value_max=".1"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp
index eb128e043c..c9a75784e1 100644
--- a/indra/newview/llphysicsmotion.cpp
+++ b/indra/newview/llphysicsmotion.cpp
@@ -309,7 +309,7 @@ LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter
 								   "",
 								   "mChest",
 								   character,
-								   LLVector3(0,0,1),
+								   LLVector3(0,0,-1),
 								   controllers_belly_bounce);
 	if (!belly_bounce_motion->initialize())
 		return STATUS_FAILURE;
@@ -337,7 +337,7 @@ F32 LLPhysicsMotion::toLocal(const LLVector3 &world)
 	
 	LLVector3 dir_world = mMotionDirectionVec * rotation_world;
 	dir_world.normalize();
-	return world * dir_world * mMotionDirectionVec.length(); // dot product
+	return world * dir_world;
 }
 
 F32 LLPhysicsMotion::calculateVelocity_local(const F32 time_delta)
@@ -625,7 +625,7 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)
 	  }
 	*/
 
-	return TRUE;
+	return update_visuals;
 }
 
 // Range of new_value_local is assumed to be [0 , 1] normalized.
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
index 08813e6a98..4118401a4c 100644
--- a/indra/newview/llpolymesh.cpp
+++ b/indra/newview/llpolymesh.cpp
@@ -605,54 +605,62 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 
 				if (!strcmp(morphName, "Big_Belly_Torso"))
 				{
-					LLPolyMorphData* belly_data = new LLPolyMorphData(*morph_data);
-					belly_data->mName = std::string("Big_Belly_Torso_Gravity");
-					for (U32 v=0; v < belly_data->mNumIndices; v++)
+					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
+					cloned_morph_data->mName = std::string("Big_Belly_Torso_Gravity");
+					for (U32 v=0; v < morph_data->mNumIndices; v++)
 					{
-						belly_data->mCoords[v][0] = 0;
-						belly_data->mCoords[v][1] = 0;
-						belly_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mCoords[v][0] = 0;
+						cloned_morph_data->mCoords[v][1] = 0;
+						cloned_morph_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mNormals[v] = LLVector3(0,0,0);
+						cloned_morph_data->mBinormals[v] = LLVector3(0,0,0);
 					}
-					mMorphData.insert(belly_data);
+					mMorphData.insert(cloned_morph_data);
 				}
 
 				if (!strcmp(morphName, "Big_Belly_Legs"))
 				{
-					LLPolyMorphData* belly_data = new LLPolyMorphData(*morph_data);
-					belly_data->mName = std::string("Big_Belly_Legs_Gravity");
-					for (U32 v=0; v < belly_data->mNumIndices; v++)
+					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
+					cloned_morph_data->mName = std::string("Big_Belly_Legs_Gravity");
+					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
-						belly_data->mCoords[v][0] = 0;
-						belly_data->mCoords[v][1] = 0;
-						belly_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mCoords[v][0] = 0;
+						cloned_morph_data->mCoords[v][1] = 0;
+						cloned_morph_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mNormals[v] = LLVector3(0,0,0);
+						cloned_morph_data->mBinormals[v] = LLVector3(0,0,0);
 					}
-					mMorphData.insert(belly_data);
+					mMorphData.insert(cloned_morph_data);
 				}
 
 				if (!strcmp(morphName, "skirt_belly"))
 				{
-					LLPolyMorphData* belly_data = new LLPolyMorphData(*morph_data);
-					belly_data->mName = std::string("skirt_belly_gravity");
-					for (U32 v=0; v < belly_data->mNumIndices; v++)
+					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
+					cloned_morph_data->mName = std::string("skirt_belly_gravity");
+					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
-						belly_data->mCoords[v][0] = 0;
-						belly_data->mCoords[v][1] = 0;
-						belly_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mCoords[v][0] = 0;
+						cloned_morph_data->mCoords[v][1] = 0;
+						cloned_morph_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mNormals[v] = LLVector3(0,0,0);
+						cloned_morph_data->mBinormals[v] = LLVector3(0,0,0);
 					}
-					mMorphData.insert(belly_data);
+					mMorphData.insert(cloned_morph_data);
 				}
 
 				if (!strcmp(morphName, "Small_Butt"))
 				{
-					LLPolyMorphData* butt_data = new LLPolyMorphData(*morph_data);
-					butt_data->mName = std::string("Butt_Gravity");
-					for (U32 v=0; v < butt_data->mNumIndices; v++)
+					LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
+					cloned_morph_data->mName = std::string("Butt_Gravity");
+					for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
 					{
-						butt_data->mCoords[v][0] = 0;
-						butt_data->mCoords[v][1] = 0;
-						butt_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mCoords[v][0] = 0;
+						cloned_morph_data->mCoords[v][1] = 0;
+						cloned_morph_data->mCoords[v][2] = 0.01F;
+						cloned_morph_data->mNormals[v] = LLVector3(0,0,0);
+						cloned_morph_data->mBinormals[v] = LLVector3(0,0,0);
 					}
-					mMorphData.insert(butt_data);
+					mMorphData.insert(cloned_morph_data);
 				}
 			}
 
-- 
cgit v1.2.3