SL-117, SL-315 - resetSkeleton() tweaks, additional validation of skeleton file
parent
bda6285f1c
commit
b5f4eab65b
|
|
@ -1852,8 +1852,8 @@ void LLVOAvatar::resetSkeleton()
|
|||
}
|
||||
|
||||
// Save mPelvis state
|
||||
LLVector3 pelvis_pos = getJoint("mPelvis")->getPosition();
|
||||
LLQuaternion pelvis_rot = getJoint("mPelvis")->getRotation();
|
||||
//LLVector3 pelvis_pos = getJoint("mPelvis")->getPosition();
|
||||
//LLQuaternion pelvis_rot = getJoint("mPelvis")->getRotation();
|
||||
|
||||
// Clear all attachment pos overrides
|
||||
clearAttachmentPosOverrides();
|
||||
|
|
@ -1908,11 +1908,14 @@ void LLVOAvatar::resetSkeleton()
|
|||
rebuildAttachmentPosOverrides();
|
||||
|
||||
// Restore mPelvis state
|
||||
getJoint("mPelvis")->setRotation(pelvis_rot);
|
||||
getJoint("mPelvis")->setPosition(pelvis_pos);
|
||||
//getJoint("mPelvis")->setRotation(pelvis_rot);
|
||||
//getJoint("mPelvis")->setPosition(pelvis_pos);
|
||||
|
||||
// Restart animations
|
||||
resetAnimations();
|
||||
// Restart animations BENTO - not needed? Removing this fixes a
|
||||
// problem seen if avatar is sitting and animated relative to sit
|
||||
// point.
|
||||
|
||||
//resetAnimations();
|
||||
|
||||
LL_DEBUGS("Avatar") << avString() << " reset ends" << LL_ENDL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ def validate_child_order(tree, ogtree, fix=False):
|
|||
# - corresponding right and left joints should be mirror symmetric.
|
||||
# - childless elements should be in short form (<bone /> instead of <bone></bone>)
|
||||
# - digits of precision should be consistent (again, except for old joints)
|
||||
# - new bones should have pos, pivot the same
|
||||
def validate_skel_tree(tree, ogtree, reftree, fix=False):
|
||||
print "validate_skel_tree"
|
||||
(num_bones,num_cvs) = (0,0)
|
||||
|
|
@ -205,6 +206,10 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False):
|
|||
enforce_precision_rules(element)
|
||||
for field in ["pos","pivot"]:
|
||||
enforce_symmetry(tree, element, field, fix)
|
||||
if element.get("support")=="extended":
|
||||
if element.get("pos") != element.get("pivot"):
|
||||
print "extended joint",element.get("name"),"has mismatched pos, pivot"
|
||||
|
||||
|
||||
if element.tag == "linden_skeleton":
|
||||
num_bones = int(element.get("num_bones"))
|
||||
|
|
|
|||
Loading…
Reference in New Issue