mirror of
https://github.com/overte-org/overte.git
synced 2025-07-16 22:17:03 +02:00
reverted the scale optimization in animspline.cpp
This commit is contained in:
parent
0fcaa695ba
commit
7119bc5972
1 changed files with 4 additions and 4 deletions
|
@ -131,7 +131,7 @@ const AnimPoseVec& AnimSplineIK::evaluate(const AnimVariantMap& animVars, const
|
||||||
baseParentAbsPose = _skeleton->getAbsolutePose(baseParentIndex, _poses);
|
baseParentAbsPose = _skeleton->getAbsolutePose(baseParentIndex, _poses);
|
||||||
}
|
}
|
||||||
_poses[_baseJointIndex] = baseParentAbsPose.inverse() * baseTargetAbsolutePose;
|
_poses[_baseJointIndex] = baseParentAbsPose.inverse() * baseTargetAbsolutePose;
|
||||||
_poses[_baseJointIndex].scale() = 1.0f;
|
_poses[_baseJointIndex].scale() = glm::vec3(1.0f);
|
||||||
|
|
||||||
// initialize the middle joint target
|
// initialize the middle joint target
|
||||||
IKTarget midTarget;
|
IKTarget midTarget;
|
||||||
|
@ -290,7 +290,7 @@ void AnimSplineIK::setSkeletonInternal(AnimSkeleton::ConstPointer skeleton) {
|
||||||
void AnimSplineIK::solveTargetWithSpline(const AnimContext& context, int base, const IKTarget& target, const AnimPoseVec& absolutePoses, bool debug, AnimChain& chainInfoOut) const {
|
void AnimSplineIK::solveTargetWithSpline(const AnimContext& context, int base, const IKTarget& target, const AnimPoseVec& absolutePoses, bool debug, AnimChain& chainInfoOut) const {
|
||||||
|
|
||||||
// build spline from tip to base
|
// build spline from tip to base
|
||||||
AnimPose tipPose = AnimPose(1.0f, target.getRotation(), target.getTranslation());
|
AnimPose tipPose = AnimPose(glm::vec3(1.0f), target.getRotation(), target.getTranslation());
|
||||||
AnimPose basePose = absolutePoses[base];
|
AnimPose basePose = absolutePoses[base];
|
||||||
|
|
||||||
CubicHermiteSplineFunctorWithArcLength spline;
|
CubicHermiteSplineFunctorWithArcLength spline;
|
||||||
|
@ -338,7 +338,7 @@ void AnimSplineIK::solveTargetWithSpline(const AnimContext& context, int base, c
|
||||||
glm::mat3 m(u, v, glm::cross(u, v));
|
glm::mat3 m(u, v, glm::cross(u, v));
|
||||||
glm::quat rot = glm::normalize(glm::quat_cast(m));
|
glm::quat rot = glm::normalize(glm::quat_cast(m));
|
||||||
|
|
||||||
AnimPose desiredAbsPose = AnimPose(1.0f, rot, trans) * splineJointInfo.offsetPose;
|
AnimPose desiredAbsPose = AnimPose(glm::vec3(1.0f), rot, trans) * splineJointInfo.offsetPose;
|
||||||
|
|
||||||
// apply flex coefficent
|
// apply flex coefficent
|
||||||
AnimPose flexedAbsPose;
|
AnimPose flexedAbsPose;
|
||||||
|
@ -457,7 +457,7 @@ void AnimSplineIK::computeAndCacheSplineJointInfosForIKTarget(const AnimContext&
|
||||||
glm::mat3 m(u, v, glm::cross(u, v));
|
glm::mat3 m(u, v, glm::cross(u, v));
|
||||||
glm::quat rot = glm::normalize(glm::quat_cast(m));
|
glm::quat rot = glm::normalize(glm::quat_cast(m));
|
||||||
|
|
||||||
AnimPose pose(1.0f, rot, spline(t));
|
AnimPose pose(glm::vec3(1.0f), rot, spline(t));
|
||||||
AnimPose offsetPose = pose.inverse() * defaultPose;
|
AnimPose offsetPose = pose.inverse() * defaultPose;
|
||||||
|
|
||||||
SplineJointInfo splineJointInfo = { index, ratio, offsetPose };
|
SplineJointInfo splineJointInfo = { index, ratio, offsetPose };
|
||||||
|
|
Loading…
Reference in a new issue