Andrzej Kapolka
e29a4e7683
Merge pull request #3312 from AndrewMeadows/ragdoll
...
use dispatchTable for shape-vs-shape collision queries
2014-08-25 15:43:48 -07:00
Andrew Meadows
3ebd8c1969
use dispatchTable for shape-vs-shape collisions
2014-08-21 16:40:25 -07:00
Andrew Meadows
7e4c72445e
JS scripts set joint animation priorities
2014-08-20 17:14:59 -07:00
Andrew Meadows
a01d3781d9
simplified SkeletonModel::maybeUpdateLeanRotation()
2014-08-20 12:48:52 -07:00
Andrew Meadows
f511fe2657
Ragdoll cannot assume skeleton's rootIndex is 0
...
some Models have extra "joints" not part of the normal skeleton
2014-08-19 11:31:50 -07:00
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