Commit graph

378 commits

Author SHA1 Message Date
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
92159a7ed5 Shape::get/setCenter() instead of get/setPosition() 2014-06-16 08:43:27 -07:00
Andrew Meadows
7530f8ec1e add way to enable Model for collisions 2014-06-15 17:57:42 -07:00
Andrew Meadows
718b98f70a Only build shapes for models that need them 2014-06-12 18:15:44 -07:00
Andrew Meadows
5be470bcbc add PhysicalEntity class
Model and RagDoll derive from PhysicalEntity
Shape gets back pointer to its Entity (shape sharing not possible)
CollisionInfo gets backpointers the shapes involved
2014-06-12 13:13:00 -07:00
Andrew Meadows
e0ebc61b25 merge upstream/master into andrew/ragdoll 2014-06-10 15:26:16 -07:00
Andrew Meadows
3c51ce76fc Add simulationID to Model Shape and CollisionInfo 2014-06-10 15:24:17 -07:00
Andrew Meadows
e8b6338de9 Fix IK for hydra hands. 2014-06-09 15:40:29 -07:00
Andrew Meadows
8e536ebd9a Use NULL Shape* for non-colliding joints in Models 2014-06-09 09:35:27 -07:00
Andrew Meadows
0addf3bae4 cleaup: remove some unused collision code
remove CollisionInfo::_type
remove unused Avatar collision response stuff
comment out some code that works but will probably be replaced
2014-06-06 14:36:05 -07:00
Andrew Meadows
1b2cd2e144 adding RagDoll scaffold 2014-06-05 11:07:35 -07:00
Andrew Meadows
7807388b08 merge upstream/master into andrew/inertia
Conflicts:
	interface/src/renderer/Model.cpp
2014-06-04 14:28:23 -07:00
Andrew Meadows
e1cb88471f add a comment 2014-06-04 14:19:45 -07:00
Andrew Meadows
f19b562e88 add JointState::setRotation(rotModelFrame) 2014-06-04 14:17:39 -07:00
Andrew Meadows
212ac13802 setRotation -> setJointRotationFromBindFrame 2014-06-04 14:10:28 -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
b1b7f6bdc4 remove last world-frame transfoms from JointState 2014-06-04 12:03:01 -07:00
Andrew Meadows
d46a90d763 remove JointState::_combinedRotation
instead use JointState::_rotationInModelFrame
2014-06-04 11:56:20 -07:00
Andrew Meadows
19f0f453a5 remove JointState::setRotation()
instead use JointState::setRotationInModelFrame()
2014-06-04 11:52:07 -07:00
Andrzej Kapolka
f6395435cf Merge branch 'master' of https://github.com/highfidelity/hifi 2014-06-04 11:51:11 -07:00
Andrzej Kapolka
74afcf5626 Allow floating point start/end frames and negative play speeds. 2014-06-04 11:47:53 -07:00
Andrew Meadows
5d8e3d447a remove JointState::getRota/PositionInWorldFrame()
instead: use getRotat/PositionInModelFrame() and do math
2014-06-04 11:36:00 -07:00
Andrew Meadows
729c01ddbf remove more getHybridTransform() calls 2014-06-04 11:25:38 -07:00
Andrew Meadows
30d936c15b getJointPosition -> getJointPositionInWorldFrame 2014-06-04 10:52:10 -07:00
Andrew Meadows
aea517af46 fix for partial hand restore after hydra inactive 2014-06-04 10:19:27 -07:00
Andrew Meadows
a1afcfd42c remove JointState::applyRotationDelta()
(use JointState::applyRotationDeltaInModelFrame()) instead)
2014-06-03 15:57:16 -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
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
Andrew Meadows
4eb4334ed8 replace Model::setJointRotation() with JointState::setRotation() 2014-05-30 09:57:32 -07:00
Andrew Meadows
557d7d428b minor rename and formatting 2014-05-30 08:28:15 -07:00
Andrew Meadows
e21dbd8726 rename updateWorldTransforms to computeTransforms 2014-05-30 08:20:11 -07:00
AndrewMeadows
5b74829318 Merge pull request #2955 from ey6es/cascade
Basic cascaded shadow maps for increased shadow draw distance.
2014-05-29 18:57:44 -07:00
Atlante45
17e3bd6110 CR comments 2014-05-29 18:24:21 -07:00
Andrzej Kapolka
67921c474e Merge branch 'master' of https://github.com/highfidelity/hifi into cascade 2014-05-29 17:09:09 -07:00
Andrzej Kapolka
12beef7fec Apply the new shadow distances to the models, too. 2014-05-29 17:08:36 -07:00
Andrew Meadows
6efa851104 minor cleanup + use 'fraction' instead of 'percent' 2014-05-29 15:44:27 -07:00
Andrzej Kapolka
391902f79b Cascaded shadow maps for models. 2014-05-29 15:30:40 -07:00
Atlante45
0eb56000ef Merge branch 'master' of https://github.com/highfidelity/hifi into click_drag_attach 2014-05-29 15:02:21 -07:00
Andrew Meadows
603333f634 add JointState::restoreRotation() 2014-05-29 14:11:17 -07:00
Andrew Meadows
2e99d316ac remove JointState::_translation
(use corresponding data in FBXJoint instead)
2014-05-29 12:52:05 -07:00
Andrzej Kapolka
09231f01f3 Retain "simple" shadows, supply cascaded as option. 2014-05-29 12:48:41 -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
Atlante45
37613f086b Merge branch 'master' of https://github.com/highfidelity/hifi into click_drag_attach
Conflicts:
	interface/src/renderer/Model.cpp
2014-05-29 10:28:09 -07:00
Andrew Meadows
4cf5628783 move applyRotationDelta() from Model to JointState 2014-05-29 10:00:55 -07:00
Andrew Meadows
29e093e2e0 fix float literals to agree with coding standard 2014-05-29 09:20:01 -07:00
Andrew Meadows
86d6fd45de safe copy of JointState data 2014-05-29 08:19:43 -07:00
Andrew Meadows
ec25982a58 add JointState::updateWorldTransform() 2014-05-28 17:51:17 -07:00
Andrew Meadows
b15b0fd96c cleaner initialization of JointState 2014-05-28 17:31:07 -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
Atlante45
8cd101ac57 Added getJointCombinedRotation to Models 2014-05-28 15:57:38 -07:00
Andrzej Kapolka
c3f6cab199 Working on cascading shadow maps. 2014-05-28 15:20:09 -07:00
Andrew Meadows
e74da5f2a0 merge upstream/master into andrew/inertia 2014-05-28 14:55:08 -07:00
Andrew Meadows
13f11e1056 Remove "fromBind" arg in Model::setJointRotation
It was always set 'true'.
2014-05-28 14:53:32 -07:00
Andrzej Kapolka
4cbc550820 Fix arguments to applyRotationDelta. 2014-05-28 12:03:57 -07:00
Andrew Meadows
ae3b792a35 move face/head code from Model into SkeletonModel 2014-05-27 15:28:41 -07:00
Andrew Meadows
6efa417742 move hand/arm stuff from Model to SkeletonModel 2014-05-27 15:06:50 -07:00
Andrew Meadows
afc7660d74 merge upstream/master into andrew/inertia 2014-05-27 14:57:44 -07:00
Andrew Meadows
07544c7b43 removal of unused getNeckRotation() 2014-05-27 12:52:44 -07:00
Andrzej Kapolka
edaa251e5f Provide option to disable avatar shadowing. 2014-05-27 11:43:34 -07:00
Andrzej Kapolka
70ab33b65b Some tricks to avoid shadow artifacts: render back faces to shadow buffer,
use polygon offset.
2014-05-27 10:54:18 -07:00
Clément Brisset
6bb933996f Merge pull request #2920 from ZappoMan/aacube
Add RayPick support for models
2014-05-24 17:03:59 -07:00
ZappoMan
9d9600aad5 fix max dimension 2014-05-23 22:08:31 -07:00
Andrzej Kapolka
ac2137c3b6 Fixed a couple copy and paste errors. 2014-05-23 16:56:10 -07:00
Andrzej Kapolka
0baf757c0d Basic support for shadows on models. 2014-05-23 16:35:51 -07:00
ZappoMan
ee523ff373 Merge branch 'master' of https://github.com/worklist/hifi into aacube 2014-05-23 11:17:59 -07:00
ZappoMan
39ed7f7b65 renaming of AABox to AACube, introduction of actual AABox 2014-05-23 10:45:04 -07:00
Andrzej Kapolka
4d6e8a2c9e Or rather, replaceMatchingPriorities. 2014-05-23 09:42:36 -07:00
Andrzej Kapolka
a32dfdb7bb We should let people "start" even if the animation is already playing (to
start again from the beginning).  Fixed an issue with competing priorities.
2014-05-22 17:05:28 -07:00
Andrzej Kapolka
8458477b9f Fixed a compile warning, provide means to start/stop animations. 2014-05-22 16:15:34 -07:00
Andrzej Kapolka
083543419d More priority bits. 2014-05-22 15:00:36 -07:00
Andrzej Kapolka
8717977437 Merge branch 'master' of https://github.com/highfidelity/hifi into animenu 2014-05-22 14:42:23 -07:00
Andrzej Kapolka
d4af39a9f5 Working on handling animation priorities to prevent Hydra move/restore from
interfering with scripted animations.
2014-05-22 14:41:46 -07:00
Andrew Meadows
b0c3655076 Fix for bad bounding shape for multi-root models. 2014-05-22 11:40:36 -07:00
Andrzej Kapolka
2eee9a32ac Removed debugging line. 2014-05-21 15:39:12 -07:00
Andrzej Kapolka
de7c05cb2d More animation controls. 2014-05-21 15:30:50 -07:00
Andrzej Kapolka
0e15c82e49 Allow setting masked joints for each animation. 2014-05-21 11:58:20 -07:00
Andrzej Kapolka
ef9407b1a6 Merge branch 'master' of https://github.com/highfidelity/hifi into animenu 2014-05-21 10:58:44 -07:00
Andrzej Kapolka
0dfd787034 Added some basic method to allow scripts to run/stop animations on the avatar. 2014-05-21 10:44:51 -07:00
Andrzej Kapolka
1022f1bec4 Added a priority setting so that we can control the order in which animations
are applied.
2014-05-21 09:40:49 -07:00
Andrzej Kapolka
f709ea61b5 Need to initialize this to false. 2014-05-20 17:55:48 -07:00
Andrzej Kapolka
7124b4a196 Mask joints from animation when explicitly set. 2014-05-20 17:10:53 -07:00
Andrzej Kapolka
d3e5e3ccf1 A couple explanatory comments. 2014-05-20 15:41:11 -07:00
Andrzej Kapolka
49a0645677 Animation bits. 2014-05-20 15:23:15 -07:00
ZappoMan
1278470a91 properly handle FSTs that have translations and rotations 2014-05-20 13:31:08 -07:00
Andrzej Kapolka
62e7a31602 More work on animation configuration. 2014-05-19 18:09:33 -07:00
Andrew Meadows
49a7f8c910 formatting some lines that are too long 2014-05-15 12:42:38 -07:00
Andrew Meadows
e98f5c7486 merge upstream/master into andrew/inertia
Conflicts:
	interface/src/renderer/Model.cpp
2014-05-15 12:33:09 -07:00
Andrew Meadows
4640587445 more correct model bounding capsule 2014-05-15 12:28:55 -07:00
ZappoMan
18de6dddec Merge branch 'master' of https://github.com/worklist/hifi into modelserver 2014-05-14 12:21:44 -07:00
Andrew Meadows
aad9d0441e merge upstream/master to andrew/bispinor
Conflicts:
	interface/src/avatar/Hand.cpp
	interface/src/avatar/SkeletonModel.cpp
	libraries/avatars/src/HandData.cpp
	libraries/avatars/src/HandData.h
2014-05-14 09:38:31 -07:00
Andrew Meadows
d2d9ca8788 optimization: only compute baseTransform once 2014-05-14 09:04:59 -07:00
ZappoMan
02bb816d5a Merge branch 'master' of https://github.com/worklist/hifi into modelserver 2014-05-13 09:44:49 -07:00
Andrzej Kapolka
363f545f7c After uploading, refresh the uploaded files so that they are immediately
redownloaded.
2014-05-09 17:50:08 -07:00
ZappoMan
106c8bffd8 first cut at animations in models 2014-05-09 16:08:06 -07:00
Philip Rosedale
c6b4b7c250 Merge pull request #2811 from AndrewMeadows/inertia
prevent avatar from getting trapped in voxel collisions
2014-05-07 16:54:28 -07:00
Andrew Meadows
9fc1c765d3 overhaul of CollisionInfo
store Cube info for sphereAACube collisions
2014-05-07 11:40:00 -07:00
Andrzej Kapolka
d0537e7ead Specular map support. 2014-05-06 17:32:10 -07:00
Andrzej Kapolka
2a32700a30 Merge branch 'master' of https://github.com/highfidelity/hifi 2014-05-05 17:03:31 -07:00
Andrzej Kapolka
f37460e39a Basic attachment rendering. 2014-05-05 15:46:09 -07:00
Andrew Meadows
5ffd307926 Merge upstream/master into andrew/inertia
Conflicts:
	interface/src/avatar/MyAvatar.h
2014-05-05 13:54:25 -07:00
Andrzej Kapolka
3a4dfb92f6 Let's try using the neck parent rotation, rather than the neck, to fix
separate heads.
2014-05-02 19:37:42 -07:00
ZappoMan
8443bb0afc fix a scale to fit bug, and add features to place models with hands 2014-05-02 13:19:33 -07:00
Andrzej Kapolka
3ebe1df6de Merge branch 'master' of https://github.com/highfidelity/hifi
Conflicts:
	interface/src/avatar/MyAvatar.h
2014-05-01 21:00:32 -07:00
Andrzej Kapolka
322e12b9de Allow users to clear the head URL and have no separate head model. 2014-05-01 17:55:16 -07:00
ZappoMan
f7da070d77 more work, cleanup names, remove translation use snap to center 2014-05-01 11:29:17 -07:00
ZappoMan
293963c546 implement snap to center in model 2014-05-01 09:02:41 -07:00
ZappoMan
bb6444f5a9 more hacking got it working 2014-05-01 07:30:56 -07:00
ZappoMan
85484affa9 hacking 2014-04-30 17:55:54 -07:00
Andrew Meadows
34aaf98b53 cleanup around how boundary shape is computed 2014-04-29 15:16:50 -07:00
Andrzej Kapolka
2bac802407 One more unused variable. 2014-04-23 12:30:39 -07:00
Andrzej Kapolka
c8c3cf3664 Remove unused propagate option for applyRotationDelta. 2014-04-23 12:29:01 -07:00
Andrzej Kapolka
09bb51261a Got that backwards. 2014-04-23 11:55:16 -07:00
Andrzej Kapolka
523498ee5b Revert to using weight that doesn't depend on number of free joints. 2014-04-23 11:52:22 -07:00
Andrzej Kapolka
511fc8367f More work on IK. 2014-04-23 11:34:34 -07:00
Andrzej Kapolka
f7bc1ae62c Working on integrating rotation into IK. 2014-04-23 10:47:24 -07:00
Andrzej Kapolka
c471a55f1f Merge branch 'master' of https://github.com/highfidelity/hifi 2014-04-23 09:40:51 -07:00
Andrzej Kapolka
e2558bdac0 Experimenting with tweaking the Euler angles so that z, rather than y, is in
[-pi/2, pi/2].
2014-04-18 17:16:20 -07:00
Stephen Birarda
0a7ea17d43 fix a geometry race condition crash 2014-04-18 15:10:15 -07:00
Andrzej Kapolka
743034c986 Need to transfer parent rotation to child. 2014-04-18 15:09:37 -07:00
Andrzej Kapolka
6add0dfb42 Tweaked Hydra "IK" to propagate delta rotations up the hierarchy while
preserving joint constraints.
2014-04-18 15:04:42 -07:00
Andrew Meadows
26487aad06 more correct bounding shapes for Models 2014-04-18 11:19:21 -07:00
Andrew Meadows
cfdbdad2d8 improved method for disabling bad joint shapes 2014-04-17 16:22:35 -07:00
Andrew Meadows
3072161a30 improved collision shapes of models 2014-04-17 15:18:46 -07:00
Andrzej Kapolka
a12dd916fa More plane intersection bits. 2014-04-10 11:24:45 -07:00
Andrzej Kapolka
f61c746b4a Merge branch 'master' of https://github.com/highfidelity/hifi 2014-04-10 09:45:23 -07:00
Andrzej Kapolka
9f58264cb6 Working on plane collisions, pushing back camera from intersecting avatars. 2014-04-09 18:07:56 -07:00
Andrew Meadows
22d2f84cff merge upstream/master into andrew/scripting 2014-04-09 15:38:56 -07:00
Andrew Meadows
e480064e66 rename more shapeShape() to be collideShapes() 2014-04-09 13:07:54 -07:00
Stephen Birarda
684c6b5372 run regex header replacement on all cpp files 2014-04-09 09:35:42 -07:00
Andrzej Kapolka
15e9d45dc3 Switched from storing Euler angles to using quaternions along with a
quaternion editor.  Also, use a default step of 0.01 for floats/doubles.
2014-04-07 15:41:42 -07:00
Andrzej Kapolka
a2b94aa433 Working on render modes. 2014-04-04 14:22:01 -07:00
Andrzej Kapolka
a0c7e4d3cc Working on model rendering modes. 2014-04-04 11:45:03 -07:00
Andrew Meadows
933cade6b0 Re-add fullUpdate hint to Model::simulate() 2014-04-02 16:34:33 -07:00
Andrew Meadows
97ba5250a5 Only simulate() Avatar Models when necessary
Also: rebuild collision shapes when Model scale changes
2014-04-02 12:01:18 -07:00
Andrew Meadows
b65855a384 merge upstream/master into avatar-interaction 2014-04-01 12:53:47 -07:00