From c754a7c0000d6f1defd58d7e8b4587d46ee1defe Mon Sep 17 00:00:00 2001
From: Loren Shih <seraph@lindenlab.com>
Date: Fri, 18 Mar 2011 10:16:03 -0400
Subject: Enabling for belly vertical motion.

---
 indra/newview/character/avatar_lad.xml | 80 ++++++++++++++++++++++++----------
 indra/newview/llphysicsmotion.cpp      |  4 +-
 indra/newview/llpolymesh.cpp           | 31 +++++++++++--
 3 files changed, 85 insertions(+), 30 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index c4117da893..6dbda4fd16 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -3795,10 +3795,10 @@
     </param>
 
     <param
-     id="1091"
+     id="1092"
      group="0"
-     name="Belly_Gravity"
-     label="Belly Gravity"
+     name="Big_Belly_Torso_Gravity"
+     label="Big Belly Torso Gravity"
      wearable="shape"
      edit_group="driven"
      label_min="Up"
@@ -4405,6 +4405,18 @@
       <param_morph />
     </param>
 
+    <param
+     id="1093"
+     group="1"
+     name="Big_Belly_Legs_Gravity"
+     wearable="shape"
+     edit_group="driven"
+     value_min="-2"
+     value_max="2">
+      <param_morph />
+    </param>
+
+
     <param
      id="151"
      group="1"
@@ -5173,6 +5185,19 @@
       <param_morph />
     </param>
 
+    <param
+     id="1094"
+     group="1"
+     name="skirt_belly_gravity"
+     wearable="skirt"
+     edit_group="driven"
+     cross_wearable="true"
+     label="big belly skirt gravity"
+     value_min="0"
+     value_max="1">
+      <param_morph />
+    </param>
+
     <param
      id="850"
      group="1"
@@ -9407,27 +9432,6 @@ render_pass="bump">
 	</param_driver>
     </param>
 
-   <param
-     id="1092"
-     group="0"
-     name="Belly_Gravity_Driver"
-     label="Belly Gravity"
-     wearable="shape"
-     edit_group="shape_torso"
-     edit_group_order="14"
-     label_min="Less"
-     label_max="More"
-     value_default="0"
-     value_min="-2"
-     value_max="2"
-     camera_elevation=".3"
-     camera_distance=".8">
-      <param_driver>
-        <driven
-         id="1090" />
-	</param_driver>
-    </param>
-
     <param
      id="828"
      group="0"
@@ -10151,6 +10155,34 @@ render_pass="bump">
       </param_driver>
     </param>
 
+    <param
+     id="1091"
+     group="0"
+     wearable="shape"
+     edit_group="shape_torso"
+     edit_group_order="14"
+     name="Belly_Gravity"
+     label="Belly Gravity"
+     label_min="Small"
+     label_max="Big"
+     value_min="0"
+     value_max="1"
+     value_default="0"
+     camera_distance="1.4"
+     camera_angle="30"
+     camera_elevation=".2">
+      <param_driver>
+        <driven
+         id="1092" />
+
+        <driven
+         id="1093" />
+
+        <driven
+         id="1094" />
+      </param_driver>
+    </param>
+
     <param
      id="637"
      group="0"
diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp
index 9043894009..5de1f7e145 100644
--- a/indra/newview/llphysicsmotion.cpp
+++ b/indra/newview/llphysicsmotion.cpp
@@ -263,10 +263,10 @@ LLMotion::LLMotionInitStatus LLPhysicsMotionController::onInitialize(LLCharacter
 	controllers_belly_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
 
 	LLPhysicsMotion *belly_bounce_motion = new LLPhysicsMotion("Big_Belly_Torso",
-								  "Belly Size",
+								  "Belly_Gravity",
 								  "mChest",
 								  character,
-								   LLVector3(-0.005f,0,0),
+								   LLVector3(0,0,.25f),
 								  controllers_belly_bounce);
 	if (!belly_bounce_motion->initialize())
 		return STATUS_FAILURE;
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
index 4541fa71d5..08813e6a98 100644
--- a/indra/newview/llpolymesh.cpp
+++ b/indra/newview/llpolymesh.cpp
@@ -606,10 +606,35 @@ 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("Belly_Gravity");
+					belly_data->mName = std::string("Big_Belly_Torso_Gravity");
+					for (U32 v=0; v < belly_data->mNumIndices; v++)
+					{
+						belly_data->mCoords[v][0] = 0;
+						belly_data->mCoords[v][1] = 0;
+						belly_data->mCoords[v][2] = 0.01F;
+					}
+					mMorphData.insert(belly_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++)
+					{
+						belly_data->mCoords[v][0] = 0;
+						belly_data->mCoords[v][1] = 0;
+						belly_data->mCoords[v][2] = 0.01F;
+					}
+					mMorphData.insert(belly_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++)
 					{
-						// llinfos << "Coord: " << v << "\t" << belly_data->mCoords[v] << llendl;
 						belly_data->mCoords[v][0] = 0;
 						belly_data->mCoords[v][1] = 0;
 						belly_data->mCoords[v][2] = 0.01F;
@@ -619,12 +644,10 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
 
 				if (!strcmp(morphName, "Small_Butt"))
 				{
-					llinfos << "Reading small butt" << llendl;
 					LLPolyMorphData* butt_data = new LLPolyMorphData(*morph_data);
 					butt_data->mName = std::string("Butt_Gravity");
 					for (U32 v=0; v < butt_data->mNumIndices; v++)
 					{
-						// llinfos << "Coord: " << v << "\t" << butt_data->mCoords[v] << llendl;
 						butt_data->mCoords[v][0] = 0;
 						butt_data->mCoords[v][1] = 0;
 						butt_data->mCoords[v][2] = 0.01F;
-- 
cgit v1.2.3