History

Merge branch 'master' of https://github.com/highfidelity/hifi into team-teaching

ZappoMan committed 11 years ago

Commit 20ceb722 parents 8a1e07f 16e571038 files · +686 −279Browse files

Showing the changes to interface/src/Application.cpp (1 of 38 files). Show all

Unified · Split

interface/src/Application.cpp+14−1
@@ -693,6 +693,10 @@ Application::~Application() { · 692 unmodified lines
693693 // stop the glWidget frame timer so it doesn't call paintGL
694694 _glWidget->stopFrameTimer();
695695
696+ // remove avatars from physics engine
697+ DependencyManager::get<AvatarManager>()->clearOtherAvatars();
698+ _physicsEngine.deleteObjects(DependencyManager::get<AvatarManager>()->getObjectsToDelete());
699+
696700 DependencyManager::destroy<OffscreenUi>();
697701 DependencyManager::destroy<AvatarManager>();
698702 DependencyManager::destroy<AnimationCache>();
@@ -2166,7 +2170,7 @@ void Application::init() { · 1467 unmodified lines
21662170 _physicsEngine.init();
21672171
21682172 EntityTree* tree = _entities.getTree();
2169− _entitySimulation.init(tree, &_physicsEngine, &_shapeManager, &_entityEditSender);
2173+ _entitySimulation.init(tree, &_physicsEngine, &_entityEditSender);
21702174 tree->setSimulation(&_entitySimulation);
21712175
21722176 auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
@@ -2486,12 +2490,21 @@ void Application::update(float deltaTime) { · 313 unmodified lines
24862490 _physicsEngine.changeObjects(_entitySimulation.getObjectsToChange());
24872491 _entitySimulation.unlock();
24882492
2493+ AvatarManager* avatarManager = DependencyManager::get<AvatarManager>().data();
2494+ _physicsEngine.deleteObjects(avatarManager->getObjectsToDelete());
2495+ _physicsEngine.addObjects(avatarManager->getObjectsToAdd());
2496+ _physicsEngine.changeObjects(avatarManager->getObjectsToChange());
2497+
24892498 _physicsEngine.stepSimulation();
24902499
24912500 if (_physicsEngine.hasOutgoingChanges()) {
24922501 _entitySimulation.lock();
24932502 _entitySimulation.handleOutgoingChanges(_physicsEngine.getOutgoingChanges(), _physicsEngine.getSessionID());
24942503 _entitySimulation.unlock();
2504+
2505+ avatarManager->handleOutgoingChanges(_physicsEngine.getOutgoingChanges());
2506+ avatarManager->handleCollisionEvents(_physicsEngine.getCollisionEvents());
2507+
24952508 _physicsEngine.dumpStatsIfNecessary();
24962509 }
24972510 }