History

Merge branch 'master' of https://github.com/highfidelity/hifi into rig

Howard Stearns committed 11 years ago

Commit 4e7d1912 parents 59fe2a1 0b1a3617 files · +1 −90Browse files

Showing the changes to interface/src/avatar/SkeletonModel.cpp (1 of 7 files). Show all

Unified · Split

interface/src/avatar/SkeletonModel.cpp+0−68
@@ -22,12 +22,6 @@ · 21 unmodified lines
2222 #include "Util.h"
2323 #include "InterfaceLogging.h"
2424
25−enum StandingFootState {
26− LEFT_FOOT,
27− RIGHT_FOOT,
28− NO_FOOT
29−};
30−
3125 SkeletonModel::SkeletonModel(Avatar* owningAvatar, QObject* parent, RigPointer rig) :
3226 Model(rig, parent),
3327 _triangleFanID(DependencyManager::get<GeometryCache>()->allocateID()),
@@ -36,9 +30,6 @@ SkeletonModel::SkeletonModel(Avatar* owningAvatar, QObject* parent, RigPointer r · 2 unmodified lines
3630 _boundingCapsuleRadius(0.0f),
3731 _boundingCapsuleHeight(0.0f),
3832 _defaultEyeModelPosition(glm::vec3(0.0f, 0.0f, 0.0f)),
39− _standingFoot(NO_FOOT),
40− _standingOffset(0.0f),
41− _clampedFootPosition(0.0f),
4233 _headClipDistance(DEFAULT_NEAR_CLIP)
4334 {
4435 assert(_rig);
@@ -534,65 +525,6 @@ glm::vec3 SkeletonModel::getDefaultEyeModelPosition() const { · 489 unmodified lines
534525 return _owningAvatar->getScale() * _defaultEyeModelPosition;
535526 }
536527
537−/// \return offset of hips after foot animation
538−void SkeletonModel::updateStandingFoot() {
539− if (_geometry == NULL) {
540− return;
541− }
542− glm::vec3 offset(0.0f);
543− int leftFootIndex = _geometry->getFBXGeometry().leftToeJointIndex;
544− int rightFootIndex = _geometry->getFBXGeometry().rightToeJointIndex;
545−
546− if (leftFootIndex != -1 && rightFootIndex != -1) {
547− glm::vec3 leftPosition, rightPosition;
548− getJointPosition(leftFootIndex, leftPosition);
549− getJointPosition(rightFootIndex, rightPosition);
550−
551− int lowestFoot = (leftPosition.y < rightPosition.y) ? LEFT_FOOT : RIGHT_FOOT;
552− const float MIN_STEP_HEIGHT_THRESHOLD = 0.05f;
553− bool oneFoot = fabsf(leftPosition.y - rightPosition.y) > MIN_STEP_HEIGHT_THRESHOLD;
554− int currentFoot = oneFoot ? lowestFoot : _standingFoot;
555−
556− if (_standingFoot == NO_FOOT) {
557− currentFoot = lowestFoot;
558− }
559− if (currentFoot != _standingFoot) {
560− if (_standingFoot == NO_FOOT) {
561− // pick the lowest foot
562− glm::vec3 lowestPosition = (currentFoot == LEFT_FOOT) ? leftPosition : rightPosition;
563− // we ignore zero length positions which can happen for a few frames until skeleton is fully loaded
564− if (glm::length(lowestPosition) > 0.0f) {
565− _standingFoot = currentFoot;
566− _clampedFootPosition = lowestPosition;
567− }
568− } else {
569− // swap feet
570− _standingFoot = currentFoot;
571− glm::vec3 nextPosition = leftPosition;
572− glm::vec3 prevPosition = rightPosition;
573− if (_standingFoot == RIGHT_FOOT) {
574− nextPosition = rightPosition;
575− prevPosition = leftPosition;
576− }
577− glm::vec3 oldOffset = _clampedFootPosition - prevPosition;
578− _clampedFootPosition = oldOffset + nextPosition;
579− offset = _clampedFootPosition - nextPosition;
580− }
581− } else {
582− glm::vec3 nextPosition = (_standingFoot == LEFT_FOOT) ? leftPosition : rightPosition;
583− offset = _clampedFootPosition - nextPosition;
584− }
585−
586− // clamp the offset to not exceed some max distance
587− const float MAX_STEP_OFFSET = 1.0f;
588− float stepDistance = glm::length(offset);
589− if (stepDistance > MAX_STEP_OFFSET) {
590− offset *= (MAX_STEP_OFFSET / stepDistance);
591− }
592− }
593− _standingOffset = offset;
594−}
595−
596528 float DENSITY_OF_WATER = 1000.0f; // kg/m^3
597529 float MIN_JOINT_MASS = 1.0f;
598530 float VERY_BIG_MASS = 1.0e6f;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t