Commit graph

1570 commits

Author SHA1 Message Date
Andrew Meadows
f5352333f0 entities use radians per second for angular velocity 2015-03-06 16:42:06 -08:00
Andrew Meadows
373be95297 entity cubes are in meters 2015-03-06 15:32:03 -08:00
Virendra Singh
84e05e361e Accuracy improved to 0.01 2015-03-06 22:07:35 +05:30
Virendra Singh
42867bf98d code revamp 2015-03-06 11:10:38 +05:30
Seth Alves
ac0c4e8512 cap max speed at MAX_WALKING_SPEED 2015-03-04 19:57:06 -08:00
Seth Alves
a8b688d540 move _velocity into base class. walking on a cube works 2015-03-04 15:26:02 -08:00
Seth Alves
b4998e9c53 falling onto an object works 2015-03-04 08:48:48 -08:00
Virendra Singh
4366525da4 Removed unused variables 2015-03-04 08:51:44 +05:30
Virendra Singh
1facbbb844 Removed MSVC specific for each blocks 2015-03-04 08:21:39 +05:30
Seth Alves
8eec66c066 merge upstream, avatar can now fall onto a cube 2015-03-03 18:37:16 -08:00
Seth Alves
7e4b597ca3 keep physics specific code in PhysicsEngine 2015-03-03 15:45:10 -08:00
Seth Alves
5d4ef8d5b8 initial flailing 2015-03-03 14:30:26 -08:00
Virendra Singh
4627d2e7b5 Parallel axis theorem correction 2015-03-04 03:52:59 +05:30
Virendra Singh
7a129235c2 Mass properties unit tests 2015-03-04 01:12:20 +05:30
Virendra Singh
3d558dae64 MassProperties of a 3D mesh 2015-03-03 01:51:35 +05:30
Philip Rosedale
c2e559342a Merge pull request #4341 from AndrewMeadows/bispinor
load non-moving dynamic objects as "inactive" in physics engine
2015-02-26 09:21:49 -08:00
Andrew Meadows
5776df1012 load dynamic obj as inactive when not moving 2015-02-25 12:07:19 -08:00
Stephen Birarda
6b08b2993a fix for bullet system include to silence warnings 2015-02-19 13:03:16 -08:00
Stephen Birarda
70a89680f5 fix bullet include to match previous format 2015-02-19 12:04:41 -08:00
Stephen Birarda
6f055ca0d7 add an external project to handle bullet 2015-02-19 12:01:40 -08:00
Stephen Birarda
b2e587dbbd remove use of include_dependency_includes and use cmake 2015-02-18 14:12:05 -08:00
Stephen Birarda
e99012efbb updates to build guides to remove soxr 2015-02-17 10:33:12 -08:00
Stephen Birarda
8c998a65ee use the glm find_package and check externals 2015-02-13 12:50:32 -08:00
Stephen Birarda
d7ce10dedb use external project glm for physics library 2015-02-13 10:33:35 -08:00
Andrew Meadows
f4a4c9786c don't create shape for SHAPE_TYPE_NONE 2015-02-11 08:43:55 -08:00
Andrew Meadows
3239c259f9 remove commented out cruft 2015-02-11 08:43:19 -08:00
Andrew Meadows
e6a6946027 merge upstream/master into andrew/thermonuclear 2015-02-09 12:44:52 -08:00
Andrew Meadows
0ef5d42a5b unit tests support new ShapeInfo API 2015-02-08 15:13:21 -08:00
Andrew Meadows
12a7021bb5 ShapeInfo computs own DoubleHashKey, gets new API 2015-02-08 15:12:44 -08:00
Andrew Meadows
b4da2ddd52 fix physics crash on disconnect from domainserver 2015-02-05 09:13:32 -08:00
Andrew Meadows
28a3c3f469 separate new shape types from legacy 2015-02-03 08:34:06 -08:00
Andrew Meadows
58bb137c4d bulletRotationStep --> computeBulletRotationStep 2015-01-27 17:37:12 -08:00
Andrew Meadows
23bd3f90d9 Bullet-style rotation integration for kinematics
and for dead reckoning after wire-transfer
2015-01-27 17:27:15 -08:00
Andrew Meadows
d1cf6559c5 merge upstream/master into andrew/isentropic
Conflicts:
	libraries/physics/src/ObjectMotionState.cpp
2015-01-27 16:24:11 -08:00
Andrew Meadows
d5c0c200de optimization for when physics engine doesn't step 2015-01-27 15:54:32 -08:00
Andrew Meadows
aebdd3b335 fix bad extrapolation of rapidly spinning objects 2015-01-27 15:53:37 -08:00
ZappoMan
23892ab1e7 fixed comments 2015-01-27 11:38:14 -08:00
ZappoMan
94e04e2d7d removed extra whitespace 2015-01-27 11:34:46 -08:00
ZappoMan
b1586d4f90 move debug into ifdef 2015-01-27 11:29:17 -08:00
ZappoMan
45dbff67f8 more hacking 2015-01-27 11:15:33 -08:00
ZappoMan
83d1cc911a hacking 2015-01-26 19:38:24 -08:00
ZappoMan
81185cfe56 removed some debugging 2015-01-26 12:46:22 -08:00
ZappoMan
08fbcbaf40 tweaks for debugging 2015-01-26 12:38:02 -08:00
ZappoMan
a1ec44b8e0 add developer menu item to disable sending physics updates 2015-01-26 12:05:57 -08:00
ZappoMan
73b9c06ec0 added some debugging 2015-01-26 11:13:30 -08:00
ZappoMan
f85774c687 adding some debugging 2015-01-26 09:45:33 -08:00
ZappoMan
9cc61e90f7 Merge branch 'master' of https://github.com/highfidelity/hifi into fixGlitches
Conflicts:
	libraries/entities/src/EntityItem.cpp
2015-01-23 15:01:35 -08:00
Andrew Meadows
1ad5f9c7db merge upstream/master into andrew/isentropic
Conflicts:
	libraries/physics/src/ObjectMotionState.cpp
2015-01-23 14:04:26 -08:00
ZappoMan
c01d2d657c added comment 2015-01-23 13:55:12 -08:00
Andrew Meadows
b34189115d Merge branch andrew/isentropic 2015-01-23 13:21:45 -08:00
Andrew Meadows
f2bcdfa2b4 update _lastSimulated for kinematic motion 2015-01-23 13:10:41 -08:00
Andrew Meadows
eefd32b42b remove KinematicController classes 2015-01-23 11:04:02 -08:00
Andrew Meadows
d173afaa70 add support for non-physical kinematic movement 2015-01-23 11:01:46 -08:00
Andrew Meadows
355759d3d4 Merge pull request #4152 from ZappoMan/fixGlitches
Fix glitches in bullets and multiple viewers
2015-01-22 13:49:00 -08:00
ZappoMan
d34764bd55 fix whitespace diff 2015-01-22 13:33:59 -08:00
ZappoMan
6a9a6968f2 debugging stutter 2015-01-22 13:32:57 -08:00
ZappoMan
c6ad1462e6 debugging stutter 2015-01-22 13:31:59 -08:00
ZappoMan
838a549abe debugging stutter 2015-01-22 13:31:09 -08:00
ZappoMan
14c7dc8eb9 debugging stutter 2015-01-22 13:13:18 -08:00
Andrew Meadows
3997b916c1 remove ground collision hack for physics testing 2015-01-22 09:17:51 -08:00
Andrew Meadows
77c4362991 fix typo 2015-01-21 18:14:24 -08:00
Andrew Meadows
b2e79a0157 don't process results when no simulation 2015-01-21 18:06:19 -08:00
Andrew Meadows
2751fab2c3 don't send collision events for inactive pairs
also throttle collision events to 30/sec
2015-01-21 18:02:13 -08:00
Andrew Meadows
1c38b08e8f remane emitEntityCollision... to entityCollision... 2015-01-21 14:07:23 -08:00
Andrew Meadows
6840daa0b5 removing tabs from formatting 2015-01-21 11:55:28 -08:00
Andrew Meadows
e49c76656f merge upstream/master into andrew/isentropic
Conflicts:
	libraries/physics/src/PhysicsEngine.cpp
2015-01-21 11:35:36 -08:00
Andrew Meadows
86583f3f3f physics collisions emit script collision events 2015-01-21 11:27:32 -08:00
Andrew Meadows
790d07d346 track known contacts and generate collision events 2015-01-20 14:18:10 -08:00
Andrew Meadows
5da38834e2 introduce notion of NumSteps vs NumSubsteps 2015-01-20 11:16:40 -08:00
Andrew Meadows
0154c613d0 change FrameCount to NumSubsteps for more accuracy 2015-01-20 11:02:48 -08:00
Andrew Meadows
549e3fac5f store backpointer to MotionState in btRigidBody 2015-01-20 10:45:58 -08:00
Andrew Meadows
e4f29412d5 cheaper failure adding entity to physics engine 2015-01-19 18:11:14 -08:00
Andrew Meadows
171fead347 remove log about failure to add to physics engine 2015-01-19 15:55:53 -08:00
Andrew Meadows
840acecbe6 merge upstream/master into andrew/bispinor
Conflicts:
	libraries/physics/src/EntityMotionState.cpp
2015-01-16 15:22:06 -08:00
Andrew Meadows
d5efc375d9 Merge pull request #4128 from ZappoMan/master
fix double targets and freezing bullets
2015-01-16 14:37:22 -08:00
Andrew Meadows
d5119b3532 merge upstream/master into andrew/bispinor
Conflicts:
	libraries/entities/src/EntityItem.cpp
	libraries/physics/src/EntityMotionState.h
	libraries/physics/src/ObjectMotionState.cpp
	libraries/physics/src/PhysicsEngine.cpp
	libraries/physics/src/PhysicsEngine.h
2015-01-16 14:36:27 -08:00
ZappoMan
9a60896a40 fix double targets and freezing bullets 2015-01-16 14:24:50 -08:00
Andrew Meadows
7c9419aa4e fix non-bullet build 2015-01-16 10:34:52 -08:00
Andrew Meadows
2427fa68cd remove unnecessary Bullet #include 2015-01-16 10:06:39 -08:00
Andrew Meadows
3fed38793e merge andrew/origin/inertia to andrew/local/inertia 2015-01-15 17:55:51 -08:00
Andrew Meadows
4c1cd991f4 remove pessimistic send of object updates
we have not yet seen the headache of packetloss and unreliable messages
2015-01-15 17:53:37 -08:00
Andrew Meadows
250fd98fee support for simple kinematic motion 2015-01-15 17:51:01 -08:00
Andrew Meadows
51cc9d6d9a alt method for repressing unused var warnings 2015-01-15 10:46:09 -08:00
Andrew Meadows
9eb4d66327 remove warnings 2015-01-15 10:36:17 -08:00
Andrew Meadows
ff171a5782 Bullet is now required dependency 2015-01-15 10:27:43 -08:00
Andrew Meadows
03b8badd81 EntityItem stores density rather than mass. 2015-01-14 15:00:57 -08:00
Andrew Meadows
dcca5d532a fix for glitchy physics updates
The main problem was: ObjectMotionState::_sentPosition and friends
were not being updated when the EntityServer update arrives.
2015-01-13 14:00:37 -08:00
Andrew Meadows
4946ec18b6 remove some TODO comments 2015-01-09 09:28:01 -08:00
Andrew Meadows
1d371a9627 merge upstream/master into andrew/inertia 2015-01-08 10:24:05 -08:00
Andrew Meadows
c37c1515ba EntitySimulation is lockable
also DeleteEntityOperator just removes the entities
and EntityTree does the actual delete
(after properly locking its _simulation)
2015-01-08 10:22:25 -08:00
Andrew Meadows
d2bd95703a use degrees/sec for EntityItem angular velocity 2015-01-07 14:04:22 -08:00
Andrew Meadows
0a8437a578 increasing default restitution to 0.5 2015-01-05 17:31:23 -08:00
Andrew Meadows
e2884c56f5 only predict remote transform for moving objects 2015-01-05 15:16:03 -08:00
Andrew Meadows
75a8faec86 purge support for voxels from PhysicsEngine 2015-01-05 15:02:18 -08:00
Andrew Meadows
244a8503ef include damping in remote extrapolation model 2015-01-05 14:48:16 -08:00
Andrew Meadows
3b7770f405 change meaning of damping to agree with bullet
0 = no damping
1 = 100% damping

The new formula is: velocity *= (1 - damping)^dt
2015-01-05 11:23:01 -08:00
Andrew Meadows
30200ef7eb add damping to ObjectMotionState 2015-01-05 09:17:46 -08:00
Andrew Meadows
6f72d4ad81 easier to read Bullet to GLM conversions and back 2014-12-30 13:15:57 -08:00
Andrew Meadows
5e2246625b fix layout to abide by the coding standard 2014-12-30 12:09:22 -08:00
Andrew Meadows
e43d7b7369 fix indentation in ctor init 2014-12-30 12:05:28 -08:00
Andrew Meadows
ce14c823a1 add comment about stubbed ObjectMotionState
for when Bullet lib is not found
2014-12-29 16:41:27 -08:00
Andrew Meadows
a97b8b0ea9 fix memory leak of EntityMotionState's 2014-12-29 16:33:41 -08:00
Andrew Meadows
8cb8092310 remove unused code
I forget what I was using UUIDHashKey for
2014-12-29 10:55:47 -08:00
Andrew Meadows
b078850c6a remove personal TODO list from code file 2014-12-29 10:46:56 -08:00
Andrew Meadows
9b7e50858a merge upstream/master into andrew/inertia
Conflicts:
	libraries/avatars/CMakeLists.txt
	libraries/entities/CMakeLists.txt
2014-12-29 09:15:49 -08:00
Andrew Meadows
25b00977be fix cmake config for bullet after c++-11 changes 2014-12-18 17:34:39 -08:00
Stephen Birarda
114e3bb2ff rename cmake macro to represent actual purpose 2014-12-18 16:51:20 -08:00
Andrew Meadows
c6afa0f7e1 remove test hack for higher than normal ground 2014-12-17 14:17:30 -08:00
Andrew Meadows
6ea766b48d merge andrew/thermonuclear into andrew/inertia
Conflicts:
	interface/src/Application.cpp
	libraries/entities/src/EntityItem.cpp
	libraries/entities/src/EntityTypes.cpp
2014-12-17 13:21:00 -08:00
Andrew Meadows
905d7f50eb comments on TODO list 2014-12-17 12:39:48 -08:00
Andrew Meadows
8de309a7a9 more correct _created and _lastEdited 2014-12-17 12:38:26 -08:00
Andrew Meadows
31486a81c1 updated TODO notes 2014-12-15 14:41:04 -08:00
Andrew Meadows
b3731e9530 hack for "reliable" packet send when objects stop moving 2014-12-15 14:36:27 -08:00
Andrew Meadows
fd8e3f6169 add moved entities to lists for sorting
and also for outgoing packet updates
2014-12-12 13:28:12 -08:00
Andrew Meadows
ad7641c7e0 repairs to build when Bullet not found 2014-12-11 16:05:45 -08:00
Andrew Meadows
c3f8f8ab98 init PhysicsEngine with an EntityEditPacketSender 2014-12-11 13:29:29 -08:00
Andrew Meadows
4977bfb708 ObjectMotionState puts self on outgoing queue 2014-12-11 12:40:43 -08:00
Andrew Meadows
572ceb75a4 clarification of what outgoing flags are about 2014-12-11 12:07:53 -08:00
Andrew Meadows
cc0e82b97f incoming changes is now QSet<ObjectMotionState*> 2014-12-11 10:56:22 -08:00
Andrew Meadows
11f1ad1d7f move worldOffset into ObjectMotionState
add more methods for getting/clearing incoming/outgoing flags
2014-12-11 10:52:34 -08:00
Andrew Meadows
d9f183458a _entityMotionStates is Qset of EntityMotionState* 2014-12-11 08:43:01 -08:00
Andrew Meadows
f9ba4d355c implement EntitySimulation API in PhysicsEngine 2014-12-10 17:01:20 -08:00
Andrew Meadows
ab75150175 moved position/velocity send history to base class 2014-12-10 17:00:23 -08:00
Andrew Meadows
b0cc3a8509 add logic for when to update moving entity 2014-12-08 17:18:07 -08:00
Andrew Meadows
d6c97be78e using an infinite plane for the ground 2014-12-03 20:17:42 -08:00
Andrew Meadows
85e7c6166b support for spherical entities 2014-12-03 12:10:26 -08:00
Andrew Meadows
3c67400e13 namechange CustomMotionState to ObjectMotionState 2014-12-03 11:12:04 -08:00
Andrew Meadows
8d49b694cc ShapeManager doesn't support tiny and giant shapes 2014-12-03 10:08:26 -08:00
Andrew Meadows
64cdef42fe simplified API of PositionHashKey 2014-12-03 07:23:14 -08:00
Andrew Meadows
29d0d10103 track entities added to PhysicsEngine
also fix for RigidBody's not going dynamic
and a fix for changed entities staying on changed list
2014-12-02 17:47:48 -08:00
Andrew Meadows
9f11121df2 oops, forgot to add entities to Bullet simulation 2014-12-02 15:44:07 -08:00
Andrew Meadows
c9ea6885c1 PhysicsEngine is now an EntitySimulation 2014-12-02 15:29:41 -08:00
Andrew Meadows
919214b7cb split ShapeInfo into shared and physics parts 2014-12-02 10:44:40 -08:00
Andrew Meadows
e6a9081184 Moving ShapeInfo to shared lib 2014-12-01 16:47:55 -08:00
Andrew Meadows
8aba2a06e0 Splitting Bullet stuff out of ShapeInfo 2014-12-01 16:47:33 -08:00
Andrew Meadows
1df6c32a4e moving Shape* back into shared lib
removing dependency of entities lib on physics lib
physics lib now depends on entities lib
2014-12-01 16:03:14 -08:00
Andrew Meadows
1c569dcf33 remove some cruft 2014-11-24 15:05:09 -08:00
Andrew Meadows
0e0eaea849 fix typo that broke the build 2014-11-24 11:36:17 -08:00
Andrew Meadows
37093cbd00 merge upstream/master into andrew/inertia
Conflicts:
	interface/src/Application.cpp
2014-11-24 11:24:39 -08:00
Andrew Meadows
ec1f11c1a8 route more entity updates into physics engine 2014-11-24 11:21:40 -08:00
Atlante45
ae3bcc8f06 No more .f 2014-11-19 16:53:39 -08:00
Andrew Meadows
48164c9399 cleanup and moving things around 2014-11-19 15:31:17 -08:00
Andrew Meadows
388830c2a2 Merge branch 'bispinor' into inertia
Conflicts:
	interface/src/entities/RenderableModelEntityItem.cpp
	libraries/entities/src/BoxEntityItem.cpp
	libraries/entities/src/EntityItem.cpp
	libraries/entities/src/EntityItem.h
	libraries/entities/src/EntityTree.cpp
	libraries/entities/src/EntityTree.h
	libraries/entities/src/EntityTreeElement.cpp
2014-11-18 10:23:38 -08:00
Andrew Meadows
2d400e6ae0 rename PhysicsWorld to PhysicsEngine 2014-11-18 09:55:25 -08:00
Andrew Meadows
2f9a35412f initial support for STATIC and KINEMATIC motion 2014-11-14 15:56:52 -08:00
Andrew Meadows
7fb7256a92 MotionState also ferries velocity 2014-11-14 09:02:22 -08:00
Andrew Meadows
14f49df44d Application gets a ThreadSafePhysicsWorld 2014-11-13 10:02:36 -08:00
Andrew Meadows
0117233ed4 add ThreadSafeDynamicsWorld pure virtual interface 2014-11-12 15:19:33 -08:00
Andrew Meadows
9e5007a0a3 added a comment 2014-11-11 17:31:27 -08:00
Andrew Meadows
ccc3156587 PhysicsWorld::addEntity() doesn't need mass arg 2014-11-11 17:28:42 -08:00
Andrew Meadows
7c53c7a495 fix build to work when cmake does not fiind Bullet 2014-11-11 12:24:29 -08:00
Andrew Meadows
0d0f98f669 init and step physics simulation 2014-11-11 12:09:59 -08:00
Andrew Meadows
82d7b70ec9 add offset to physics simulation 2014-11-11 10:56:31 -08:00
Andrew Meadows
ed90bf00b9 add offset to physics simulation
we anticipate floating point error problems at distances far from origin
and we don't want the simulation to span a big space anyway
so world-frame objects are simulated in a local frame
and positions are translated back and forth as necessary
2014-11-07 08:51:57 -08:00
Andrew Meadows
053b16783c initial impl of PhysicsWorld::addEntity() 2014-11-06 16:42:07 -08:00
Andrew Meadows
94b6d89b4e namechange EntityMotionState to CustomMotionState 2014-11-06 10:59:04 -08:00
Andrew Meadows
01b76af9d0 moved EntityMotionState.* to CustomMotionState.* 2014-11-06 10:58:04 -08:00
Andrew Meadows
1097e7f1f2 stubbery for EntityMotionState 2014-11-05 16:35:06 -08:00
Andrew Meadows
8e90cca290 PhysicsWorld can add and remove voxels 2014-11-05 13:05:43 -08:00
Andrew Meadows
2734afcf9a Adding BulletUtil.h with tests. 2014-11-04 16:43:50 -08:00
Andrew Meadows
57e972d876 ShapeKey now derives from DoubleHashKey 2014-11-04 14:54:35 -08:00
Andrew Meadows
f1bdd2ef7b PhysicsWorld has a ShapeManager 2014-11-03 16:02:16 -08:00
Andrew Meadows
4a1133fbc2 moved ShapeInfo tests to their own file 2014-11-03 15:25:04 -08:00
Andrew Meadows
b1b6188bb8 ShapeManager has improved HashMap 2014-11-03 14:01:19 -08:00
Andrew Meadows
d26540b029 ShapeManager now under unit test 2014-10-31 17:13:17 -07:00
Andrew Meadows
50a97849bb Add PhysicsWorld and ShapeManager classes 2014-10-30 10:42:44 -07:00
Andrew Meadows
29fd359385 fix typo in libraries/physics/CMakeLists.txt 2014-10-29 14:39:23 -07:00
Andrew Meadows
c18121756c fixed path to file in comments 2014-10-29 14:33:11 -07:00
Andrew Meadows
c9450bba02 Adding Bullet as non-required dependency 2014-10-28 17:32:34 -07:00
Andrew Meadows
4c3cdf5b7a move stuff out of shared and into physics library 2014-10-28 13:51:45 -07:00