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.
master
Loren Shih 2011-03-18 16:04:28 -04:00
parent d55f816fb1
commit 86613fd388
3 changed files with 48 additions and 40 deletions

View File

@ -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 />

View File

@ -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.

View File

@ -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);
}
}