Commit graph

264 commits

Author SHA1 Message Date
Atlante45
6d567e67a9 Merge branch 'master' of https://github.com/highfidelity/hifi into record_feature 2014-08-18 15:41:19 -07:00
Atlante45
1d30b52ec2 Merge branch 'master' of https://github.com/highfidelity/hifi into record_feature 2014-08-18 14:23:40 -07:00
Andrew Meadows
c2f4648ad7 Merge branch 'ragdoll' of ssh://github.com/AndrewMeadows/hifi into ragdoll 2014-08-18 12:55:10 -07:00
Andrew Meadows
7e7978de1a compute and store Ragdoll::_accumulatedMovement 2014-08-18 12:53:04 -07:00
Andrew Meadows
77047b0130 no NULL check on delete SkeletonModel::_ragdoll 2014-08-18 11:25:51 -07:00
Atlante45
9e5b68fa9d Merge branch 'master' of https://github.com/highfidelity/hifi into record_feature 2014-08-14 15:38:03 -07:00
Andrew Meadows
60d411ead5 cleanup Ragdoll API (less "ragdoll" qualifiers) 2014-08-14 14:41:51 -07:00
Andrew Meadows
46c91052c9 split SkeletonModel and Ragdoll classes apart 2014-08-14 14:29:03 -07:00
Atlante45
2981132395 Merge branch 'master' of https://github.com/highfidelity/hifi into record_feature 2014-08-14 11:39:44 -07:00
Andrew Meadows
ca4a23e532 use "visible joint positions" for MyAvatar only 2014-08-14 09:21:15 -07:00
Atlante45
73a3a13c59 More recording work 2014-08-12 18:15:48 -07:00
Andrew Meadows
2286eae64a head connects to neck during ragdoll simulation 2014-08-08 10:53:38 -07:00
Andrew Meadows
05318acc7f don't make shapes for joints with zero radius 2014-08-08 08:37:28 -07:00
Andrew Meadows
9a55252587 remove extraneous roots from Model::_jointStates 2014-08-07 17:02:28 -07:00
Andrew Meadows
94da63006c VerletPoint::_mass is now private
We set the mass of other avatars artificially high
so they are less movable.
2014-08-07 14:35:32 -07:00
Andrew Meadows
87350ad2d0 ragdoll simulation now in model-relative frame
(same rotation as world-frame, but translated to MyAvatar origin)
2014-08-07 11:45:06 -07:00
Andrew Meadows
3305f5edf9 merge upstream/master into andrew/ragdoll 2014-08-01 11:13:18 -07:00
Andrew Meadows
34628aef3b separate muscle constraints from joint constraints 2014-07-29 16:47:54 -07:00
Atlante45
fb670275c2 Don't recompute unchaged transform 2014-07-28 16:42:16 -07:00
Andrew Meadows
b8b1df5799 MuscleConstraints for ragdoll; velocity for verlet points 2014-07-25 15:24:44 -07:00
Andrew Meadows
2ddca4fbf9 split independent classes out of Ragdoll files 2014-07-24 09:50:16 -07:00
Andrew Meadows
1d124ebc61 fix comments 2014-07-24 08:49:41 -07:00
Andrew Meadows
559188cace parent-relative linear slaving of verlet shapes 2014-07-23 17:00:17 -07:00
Andrew Meadows
783cde7376 minor tweak to rate at which ragdoll shapes follow joints 2014-07-17 10:51:17 -07:00
Andrew Meadows
3ad4a2e170 more stability when fingers follow ragdoll 2014-07-16 09:32:46 -07:00
Andrew Meadows
0667cb6e5f add constraints between child joints of same parent 2014-07-16 08:54:28 -07:00
Andrew Meadows
b8fb5e0298 namechange FromBindFrame ==> InBindFrame 2014-07-14 15:33:05 -07:00
Andrew Meadows
00544aa975 add JointState::_positionInParentFrame 2014-07-14 15:18:34 -07:00
Andrew Meadows
7e4efa6c73 Skeleton gets custom update for visible transforms 2014-07-10 16:21:12 -07:00
Andrew Meadows
8fa7bf4fa0 rename: ParentFrame --> ConstrainedFrame 2014-07-09 16:43:46 -07:00
Andrew Meadows
6e5d77f0fc merge upstream/master into andrew/ragdoll
Conflicts:
	interface/src/avatar/SkeletonModel.cpp
2014-07-02 09:41:13 -07:00
Andrew Meadows
49d54dd6f0 Add Model::inverseKinematics() for stable hand IK
(removed constraint enforcement which was causing problems,
will add that back later)
2014-07-02 09:33:51 -07:00
Andrew Meadows
57c17eb972 remove unecessary clearRagdollConstraintsAndPoints() 2014-06-30 09:18:31 -07:00
Andrew Meadows
f33728b615 guarantee that ragdoll is clear before initialized 2014-06-30 09:13:42 -07:00
Andrew Meadows
0d18f2fbab fix for avatar models with multiple roots 2014-06-26 09:12:44 -07:00
Andrew Meadows
c12c869cdf add "visible" transforms to JointState
also stubbery for using them in Model and SkeletonModel
2014-06-25 18:06:56 -07:00
Andrew Meadows
1b24a111fe JointState::_rotationInParentFrame is now private 2014-06-25 09:56:18 -07:00
Andrew Meadows
b5aca45ab6 smaller timescale for slaving shapes to skeleton 2014-06-23 12:59:38 -07:00
Andrew Meadows
9713e3d513 remove some unused var warnings in Release build 2014-06-23 12:30:53 -07:00
Andrew Meadows
8ad2a679c4 move code to SkeletonModel::stepRagdollForward() 2014-06-23 11:16:18 -07:00
Andrew Meadows
8b24e9cd67 Update SkeletonModel::_boundingShape position 2014-06-23 09:39:14 -07:00
Andrew Meadows
b2ea8c0bf9 Compute more correct masses for ragdoll parts
also pin root ragdoll shape at the local-frame origin
for stability
2014-06-23 08:37:11 -07:00
Andrew Meadows
c17b8fdb60 collisions update shapes
VerletShapes keep pointers to VerletPoints (rather than to glm::vec3's)
VerletShapes compute lagrangian coefficients
VerletShapes send their movement accumulations to their VerletPoints
2014-06-20 16:31:39 -07:00
Andrew Meadows
4a0ce7a9ae support disabling collisions btw adjacent joints 2014-06-19 17:39:50 -07:00
Andrew Meadows
fbafcb6fd8 Fix distance constraint lengths 2014-06-19 11:46:09 -07:00
Andrew Meadows
2453e9c36a build ragdoll constraints again 2014-06-19 10:31:55 -07:00
Andrew Meadows
5e74ee8c05 VerletPoint has position, lastPosition, and mass 2014-06-19 09:54:32 -07:00
Andrew Meadows
10ee307752 merge upstream/master into andrew/ragdoll 2014-06-19 08:35:29 -07:00
David Rowe
afab5f1cbf Fix startup crash where Hydra controllers are not properly plugged in
Crash occurs if the left controller is plugged in but right one isn't.
2014-06-18 20:52:17 -07:00
Andrew Meadows
d4b5550cda Skeleton now creates VerletShape 2014-06-18 17:22:39 -07:00
Andrew Meadows
9e839f0980 Shape::getCenter() -> Shape::getTranslation() 2014-06-18 08:55:48 -07:00
Andrew Meadows
b9d4545aef merge upstream/master into andrew/ragdoll
Conflicts:
	libraries/shared/src/Shape.h
	libraries/shared/src/ShapeCollider.h
2014-06-17 17:03:16 -07:00
Andrew Meadows
ecbf5043d7 code out of Model into base and derived classes
PhysicalEntity (base class) gets some shape management stuff
SkeletonModel (derived class) gets some boundary shape and
joint-shape stuff
2014-06-17 16:22:18 -07:00
Andrew Meadows
118717d96a Shapes moved from Model into PhysicalEntity 2014-06-16 14:51:58 -07:00
Andrew Meadows
d7a28e1441 enable shape collisions for MyAvatar skeleton
also some stubbery for main simulation loop
2014-06-15 18:07:47 -07:00
Andrew Meadows
158c7de76e Ragdoll not an Entity. SkeletonModel is a Ragdoll 2014-06-13 12:27:58 -07:00
Andrew Meadows
5bd37acdb8 Changed RagDoll to Ragdoll 2014-06-13 11:55:39 -07:00
Andrew Meadows
718b98f70a Only build shapes for models that need them 2014-06-12 18:15:44 -07:00
Andrew Meadows
e0ebc61b25 merge upstream/master into andrew/ragdoll 2014-06-10 15:26:16 -07:00
Andrew Meadows
c9ba71aa01 fix for broken neck on some body models 2014-06-10 09:38:38 -07:00
Andrew Meadows
589b2e8fb7 recover some code for one less magic vec3 2014-06-09 16:12:54 -07:00
Andrew Meadows
e8b6338de9 Fix IK for hydra hands. 2014-06-09 15:40:29 -07:00
Andrew Meadows
5a76a9b4b1 RagDoll keeps a pointer to list of shapes 2014-06-09 11:04:20 -07:00
Andrew Meadows
8e536ebd9a Use NULL Shape* for non-colliding joints in Models 2014-06-09 09:35:27 -07:00
Andrew Meadows
131a2c27b8 move RagDoll to libraries/shared 2014-06-06 15:51:50 -07:00
Andrew Meadows
551029c2f5 slave SkeletonModel's collision shapes to RagDoll 2014-06-06 08:51:22 -07:00
Andrew Meadows
1b2cd2e144 adding RagDoll scaffold 2014-06-05 11:07:35 -07:00
Andrew Meadows
212ac13802 setRotation -> setJointRotationFromBindFrame 2014-06-04 14:10:28 -07:00
Andrew Meadows
323fa70cf3 remove last of "InModelFrame" qualifiers 2014-06-04 14:03:29 -07:00
Andrew Meadows
ccfd620c84 setJointPositionInModelFrame -> setJointPosition 2014-06-04 13:56:37 -07:00
Andrew Meadows
3af4b1b333 getJointPositionInModelFrame -> getJointPosition 2014-06-04 13:51:43 -07:00
Andrew Meadows
971268d4f2 setRotationInModelFrame -> setRotation 2014-06-04 13:46:08 -07:00
Andrew Meadows
b3cabb8156 applyRotationDeltaInModelFrame -> applyRotationDelta 2014-06-04 13:43:15 -07:00
Andrew Meadows
d8f5e10947 getPositionInModelFrame -> getPosition 2014-06-04 13:36:54 -07:00
Andrew Meadows
4a3fbfcdee getRotationInModelFrame -> getRotation 2014-06-04 13:34:58 -07:00
Andrew Meadows
4ae58153e0 computeTransformInModelFrame -> computeTransform 2014-06-04 13:31:31 -07:00
Andrew Meadows
d32e14ca04 renames of JointState data members 2014-06-04 13:27:28 -07:00
Andrew Meadows
19f0f453a5 remove JointState::setRotation()
instead use JointState::setRotationInModelFrame()
2014-06-04 11:52:07 -07:00
Andrew Meadows
30d936c15b getJointPosition -> getJointPositionInWorldFrame 2014-06-04 10:52:10 -07:00
Andrew Meadows
14e782e439 remove some JointState::getHybridTransform() calls 2014-06-04 10:42:04 -07:00
Andrew Meadows
7f46e9d514 remove JointState::getJointRotation()
(use getRotationModelFrame() instead)
2014-06-03 15:42:38 -07:00
Andrew Meadows
e7f32c211b remove world-frame hand/palm set methods 2014-06-03 14:48:57 -07:00
Andrew Meadows
05af993262 Add more model-frame methods 2014-06-03 14:24:04 -07:00
Andrew Meadows
03bf1fe69d Add joint manipulations in model-frame 2014-06-03 14:04:09 -07:00
Andrew Meadows
f99489c157 rolling back previous change for IK instability 2014-06-03 10:40:30 -07:00
Andrew Meadows
d7be5faa9d unravel rotation code by giving proper names
The goal is: eliminate dependency on JointState::_combinedRotation
(which is joint-to-world) and store joint-to-model transforms instead
2014-06-02 14:43:25 -07:00
Andrew Meadows
9b3773fa3b remove 'fromBind' argument to getJointRotation() 2014-06-02 14:20:13 -07:00
Andrew Meadows
a62a270004 merge andrew/inertia into andrew/ragdoll
Conflicts:
	interface/src/avatar/Avatar.cpp
	interface/src/renderer/Model.h
2014-06-02 11:56:27 -07:00
Andrew Meadows
9e60b758df Made JointState transforms private.
Also changed some function names to be more descriptive.
Using "Hybrid" to describe frame with world-rotation + model-local-origin.
2014-06-02 11:34:59 -07:00
Andrew Meadows
8e7daed2b3 Merge upsrtream/master into andrew/inertia
Conflicts:
	interface/src/renderer/Model.cpp
2014-06-02 11:32:23 -07:00
Andrzej Kapolka
164192fb50 If the skeleton doesn't have eye joints (as with the Fuse models), make up
some positions based on the head and neck joints.
2014-05-30 11:03:46 -07:00
Andrew Meadows
4eb4334ed8 replace Model::setJointRotation() with JointState::setRotation() 2014-05-30 09:57:32 -07:00
Andrew Meadows
6efa851104 minor cleanup + use 'fraction' instead of 'percent' 2014-05-29 15:44:27 -07:00
Andrew Meadows
2e99d316ac remove JointState::_translation
(use corresponding data in FBXJoint instead)
2014-05-29 12:52:05 -07:00
Andrew Meadows
a898fcbf75 move details of getJointRotation() into JointState
also: remove unused getLeft/RightHandRotation() methods
2014-05-29 11:43:25 -07:00
Andrew Meadows
4cf5628783 move applyRotationDelta() from Model to JointState 2014-05-29 10:00:55 -07:00
Andrew Meadows
9f2a4ae626 Make JointState a proper class
JointState gets a pointer to its corresponding FBXJoint
2014-05-28 16:49:39 -07:00
Andrew Meadows
13f11e1056 Remove "fromBind" arg in Model::setJointRotation
It was always set 'true'.
2014-05-28 14:53:32 -07:00
Andrew Meadows
9f72d6ca3f fix bug -- negate logic around invalid joint index 2014-05-27 15:53:20 -07:00
Andrew Meadows
ae3b792a35 move face/head code from Model into SkeletonModel 2014-05-27 15:28:41 -07:00