From bbb5f832a2abcd79e9989d3bb39e5fd3b0890c47 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Wed, 15 Jul 2015 15:11:16 -0700 Subject: [PATCH 1/4] Empty Rig. --- libraries/animation/src/Rig.cpp | 9 +++++++++ libraries/animation/src/Rig.h | 14 ++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 libraries/animation/src/Rig.cpp create mode 100644 libraries/animation/src/Rig.h diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp new file mode 100644 index 0000000000..b6cda25966 --- /dev/null +++ b/libraries/animation/src/Rig.cpp @@ -0,0 +1,9 @@ +// +// Rig.cpp +// hifi +// +// Created by Howard Stearns on 7/15/15. +// +// + +#include "Rig.h" diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h new file mode 100644 index 0000000000..3ccea315b8 --- /dev/null +++ b/libraries/animation/src/Rig.h @@ -0,0 +1,14 @@ +// +// Rig.h +// hifi +// +// Created by Howard Stearns on 7/15/15. +// +// + +#ifndef __hifi__Rig__ +#define __hifi__Rig__ + +#include + +#endif /* defined(__hifi__Rig__) */ From 5312993e56ea34ebfc555f8ebccd9f6d1537acf4 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Wed, 15 Jul 2015 15:30:34 -0700 Subject: [PATCH 2/4] Hmm, last was missing some emptiness. --- libraries/animation/src/Rig.cpp | 7 +++++-- libraries/animation/src/Rig.h | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index b6cda25966..c8e86319cb 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -1,9 +1,12 @@ // // Rig.cpp -// hifi +// libraries/script-engine/src/ // -// Created by Howard Stearns on 7/15/15. +// Created by Howard Stearns, Seth Alves, Anthony Thibault, Andrew Meadows on 7/15/15. +// Copyright (c) 2015 High Fidelity, Inc. All rights reserved. // +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #include "Rig.h" diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index 3ccea315b8..df4fe31d84 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -1,14 +1,23 @@ // // Rig.h -// hifi +// libraries/script-engine/src/ // -// Created by Howard Stearns on 7/15/15. +// Produces animation data and hip placement for the current timestamp. // +// Created by Howard Stearns, Seth Alves, Anthony Thibault, Andrew Meadows on 7/15/15. +// Copyright (c) 2015 High Fidelity, Inc. All rights reserved. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef __hifi__Rig__ #define __hifi__Rig__ -#include +#include + +class AnimationObject : public QObject { + +}; #endif /* defined(__hifi__Rig__) */ From 6ca458b62469038f2c1b8b769611e5de0876b395 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Wed, 15 Jul 2015 15:59:24 -0700 Subject: [PATCH 3/4] Instantiated in MyAvatar --- interface/src/avatar/MyAvatar.h | 2 ++ libraries/animation/src/Rig.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a2566118f2..0d94d327a9 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -14,6 +14,7 @@ #include #include +#include #include "Avatar.h" @@ -285,6 +286,7 @@ private: QString _bodyModelName; QString _fullAvatarModelName; + Rig _rig; // used for rendering when in first person view or when in an HMD. SkeletonModel _firstPersonSkeletonModel; bool _prevShouldDrawHead; diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index df4fe31d84..3e9307385b 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -16,7 +16,7 @@ #include -class AnimationObject : public QObject { +class Rig : public QObject { }; From b87ed7dc189c3add5bb149f11164900ba44f871a Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Wed, 15 Jul 2015 17:05:57 -0700 Subject: [PATCH 4/4] Remove dead code. --- interface/src/avatar/Hand.cpp | 53 ----------------------------------- interface/src/avatar/Hand.h | 7 ----- interface/src/avatar/Head.h | 1 - 3 files changed, 61 deletions(-) diff --git a/interface/src/avatar/Hand.cpp b/interface/src/avatar/Hand.cpp index 7b2968973c..aee032aa93 100644 --- a/interface/src/avatar/Hand.cpp +++ b/interface/src/avatar/Hand.cpp @@ -14,7 +14,6 @@ #include #include -#include #include "AvatarManager.h" #include "Hand.h" @@ -43,58 +42,6 @@ void Hand::simulate(float deltaTime, bool isMine) { } } -// We create a static CollisionList that is recycled for each collision test. -const float MAX_COLLISIONS_PER_AVATAR = 32; -static CollisionList handCollisions(MAX_COLLISIONS_PER_AVATAR); - -void Hand::collideAgainstAvatar(Avatar* avatar, bool isMyHand) { - if (!avatar || avatar == _owningAvatar) { - // don't collide hands against ourself (that is done elsewhere) - return; - } - - const SkeletonModel& skeletonModel = _owningAvatar->getSkeletonModel(); - int jointIndices[2]; - jointIndices[0] = skeletonModel.getLeftHandJointIndex(); - jointIndices[1] = skeletonModel.getRightHandJointIndex(); - - for (size_t i = 0; i < 2; i++) { - int jointIndex = jointIndices[i]; - if (jointIndex < 0) { - continue; - } - - handCollisions.clear(); - QVector shapes; - skeletonModel.getHandShapes(jointIndex, shapes); - - if (avatar->findCollisions(shapes, handCollisions)) { - glm::vec3 totalPenetration(0.0f); - glm::vec3 averageContactPoint; - for (int j = 0; j < handCollisions.size(); ++j) { - CollisionInfo* collision = handCollisions.getCollision(j); - totalPenetration += collision->_penetration; - averageContactPoint += collision->_contactPoint; - } - if (isMyHand) { - // our hand against other avatar - // TODO: resolve this penetration when we don't think the other avatar will yield - //palm.addToPenetration(averagePenetration); - } else { - // someone else's hand against MyAvatar - // TODO: submit collision info to MyAvatar which should lean accordingly - averageContactPoint /= (float)handCollisions.size(); - avatar->applyCollision(averageContactPoint, totalPenetration); - - CollisionInfo collision; - collision._penetration = totalPenetration; - collision._contactPoint = averageContactPoint; - emit avatar->collisionWithAvatar(avatar->getSessionUUID(), _owningAvatar->getSessionUUID(), collision); - } - } - } -} - void Hand::resolvePenetrations() { for (size_t i = 0; i < getNumPalms(); ++i) { PalmData& palm = getPalms()[i]; diff --git a/interface/src/avatar/Hand.h b/interface/src/avatar/Hand.h index f6991c5a55..5e070d53e0 100644 --- a/interface/src/avatar/Hand.h +++ b/interface/src/avatar/Hand.h @@ -30,11 +30,6 @@ class Avatar; -class ProgramObject; - -const float HAND_PADDLE_OFFSET = 0.1f; -const float HAND_PADDLE_THICKNESS = 0.01f; -const float HAND_PADDLE_RADIUS = 0.15f; class Hand : public HandData { public: @@ -43,8 +38,6 @@ public: void simulate(float deltaTime, bool isMine); void render(RenderArgs* renderArgs, bool isMine); - void collideAgainstAvatar(Avatar* avatar, bool isMyHand); - void resolvePenetrations(); private: diff --git a/interface/src/avatar/Head.h b/interface/src/avatar/Head.h index 3f839d53bc..2baa16f90c 100644 --- a/interface/src/avatar/Head.h +++ b/interface/src/avatar/Head.h @@ -26,7 +26,6 @@ const float EYE_EAR_GAP = 0.08f; class Avatar; -class ProgramObject; class Head : public HeadData { public: