16 #ifndef SURGSIM_PHYSICS_PHYSICSMANAGER_H
17 #define SURGSIM_PHYSICS_PHYSICSMANAGER_H
19 #include <boost/thread/mutex.hpp>
44 class ConstraintComponent;
45 class ContactConstraintGeneration;
53 class UpdateCollisionRepresentations;
66 virtual int getType()
const override;
79 std::shared_ptr<SurgSim::Collision::Representation> representation2);
85 std::shared_ptr<SurgSim::Collision::Representation> representation2);
90 bool executeAdditions(
const std::shared_ptr<SurgSim::Framework::Component>& component)
override;
91 bool executeRemovals(
const std::shared_ptr<SurgSim::Framework::Component>& component)
override;
98 virtual bool doUpdate(
double dt)
override;
110 std::shared_ptr<SurgSim::Collision::Representation> representation1,
111 std::shared_ptr<SurgSim::Collision::Representation> representation2);
Definition: DriveElementFromInputBehavior.cpp:27
friend class PhysicsManagerTest
Definition: PhysicsManager.h:68
virtual bool doUpdate(double dt) override
Definition: PhysicsManager.cpp:126
void removeExcludedCollisionPair(std::shared_ptr< SurgSim::Collision::Representation > representation1, std::shared_ptr< SurgSim::Collision::Representation > representation2)
Remove an excluded collision pair to the Physics Manager.
Definition: PhysicsManager.cpp:96
virtual int getType() const override
Overrides ComponentManager::getType()
Definition: PhysicsManager.cpp:50
bool executeAdditions(const std::shared_ptr< SurgSim::Framework::Component > &component) override
Definition: PhysicsManager.cpp:109
PhyicsManager handles the physics and motion calculation, it uses Computations to separate the algori...
Definition: PhysicsManager.h:57
std::vector< std::shared_ptr< SurgSim::Collision::CollisionPair > >::iterator findExcludedCollisionPair(std::shared_ptr< SurgSim::Collision::Representation > representation1, std::shared_ptr< SurgSim::Collision::Representation > representation2)
Get an iterator to an excluded collision pair.
Definition: PhysicsManager.cpp:72
std::unique_ptr< PreUpdate > m_preUpdateStep
Definition: PhysicsManager.h:127
std::unique_ptr< DcdCollision > m_dcdCollisionStep
Definition: PhysicsManager.h:129
void initializeComputations(bool copyState)
Definition: PhysicsManager.cpp:161
std::vector< std::shared_ptr< SurgSim::Collision::Representation > > m_collisionRepresentations
Definition: PhysicsManager.h:115
Base Component Manager class.
Definition: ComponentManager.h:49
bool executeRemovals(const std::shared_ptr< SurgSim::Framework::Component > &component) override
Definition: PhysicsManager.cpp:118
virtual bool doInitialize() override
Definition: PhysicsManager.cpp:55
virtual ~PhysicsManager()
Definition: PhysicsManager.cpp:45
std::unique_ptr< SolveMlcp > m_solveMlcpStep
Definition: PhysicsManager.h:132
std::unique_ptr< BuildMlcp > m_buildMlcpStep
Definition: PhysicsManager.h:131
virtual bool doStartUp() override
Definition: PhysicsManager.cpp:62
std::unique_ptr< PushResults > m_pushResultsStep
Definition: PhysicsManager.h:133
std::unique_ptr< FreeMotion > m_freeMotionStep
Definition: PhysicsManager.h:128
std::vector< std::shared_ptr< Representation > > m_representations
Definition: PhysicsManager.h:113
std::unique_ptr< PostUpdate > m_postUpdateStep
Definition: PhysicsManager.h:134
A simple thread-safe data container that can support multiple writers and readers.
Definition: LockedContainer.h:54
Definition: PhysicsManagerState.h:46
boost::mutex m_excludedCollisionPairMutex
Mutex to protect m_excludedCollisionPairs from being read/written simultaneously. ...
Definition: PhysicsManager.h:123
std::unique_ptr< ContactConstraintGeneration > m_constraintGenerationStep
Definition: PhysicsManager.h:130
std::vector< std::shared_ptr< SurgSim::Collision::CollisionPair > > m_excludedCollisionPairs
List of Collision::Representation pairs to be excluded from contact generation.
Definition: PhysicsManager.h:120
SurgSim::Framework::LockedContainer< SurgSim::Physics::PhysicsManagerState > m_finalState
A thread-safe copy of the last PhysicsManagerState in the previous update.
Definition: PhysicsManager.h:139
std::unique_ptr< UpdateCollisionRepresentations > m_updateCollisionRepresentationsStep
Definition: PhysicsManager.h:135
std::vector< std::shared_ptr< ConstraintComponent > > m_constraintComponents
Definition: PhysicsManager.h:117
void getFinalState(SurgSim::Physics::PhysicsManagerState *s) const
Get the last PhysicsManagerState from the previous PhysicsManager update.
Definition: PhysicsManager.cpp:67
PhysicsManager()
Constructor.
Definition: PhysicsManager.cpp:39
void addExcludedCollisionPair(std::shared_ptr< SurgSim::Collision::Representation > representation1, std::shared_ptr< SurgSim::Collision::Representation > representation2)
Add an excluded collision pair to the Physics Manager.
Definition: PhysicsManager.cpp:84