16 #ifndef SURGSIM_PHYSICS_CCDCOLLISIONLOOP_H 17 #define SURGSIM_PHYSICS_CCDCOLLISIONLOOP_H 38 class ContactFiltering;
40 class ContactConstraintGeneration;
58 std::shared_ptr<PhysicsManagerState> doUpdate(
const double& dt,
59 const std::shared_ptr<PhysicsManagerState>& state)
override;
63 friend class CcdCollisionLoopTest_FilterContacts_Test;
64 friend class CcdCollisionLoopTest_FilterContactsWithEpsilon_Test;
90 bool findEarliestContact(
const std::vector<std::shared_ptr<Collision::CollisionPair>>& ccdPairs,
91 double* currentTimeOfImpact);
97 void filterLaterContacts(std::vector<std::shared_ptr<Collision::CollisionPair>>* ccdPairs,
104 void backupContacts(std::vector<std::shared_ptr<Collision::CollisionPair>>* ccdPairs,
105 std::vector<std::list<std::shared_ptr<Collision::Contact>>>* oldContacts);
111 void restoreContacts(std::vector<std::shared_ptr<Collision::CollisionPair>>* ccdPairs,
112 std::vector<std::list<std::shared_ptr<Collision::Contact>>>* oldContacts);
116 void printContacts(
const std::vector<std::shared_ptr<Collision::CollisionPair>>& ccdPairs);
118 std::shared_ptr<SurgSim::Framework::Logger>
m_logger;
size_t m_maxIterations
maximum number of iterations to run
Definition: CcdCollisionLoop.h:79
std::unique_ptr< ContactConstraintGeneration > m_constraintGeneration
Definition: CcdCollisionLoop.h:73
Definition: CompoundShapeToGraphics.cpp:29
std::unique_ptr< PushResults > m_pushResults
Definition: CcdCollisionLoop.h:76
Definition: CcdCollisionLoop.h:46
std::unique_ptr< UpdateCcdData > m_updateCcdData
Definition: CcdCollisionLoop.h:71
#define SURGSIM_CLASSNAME(ClassName)
Declare the class name of a class with the appropriate function header, do not use quotes...
Definition: Macros.h:21
std::unique_ptr< SolveMlcp > m_solveMlcp
Definition: CcdCollisionLoop.h:75
std::shared_ptr< SurgSim::Framework::Logger > m_logger
Definition: CcdCollisionLoop.h:118
std::unique_ptr< CcdCollision > m_ccdCollision
Definition: CcdCollisionLoop.h:70
Encapsulates a calculation over a selection of objects, needs to be subclassed to be used...
Definition: Computation.h:32
std::unique_ptr< ContactFiltering > m_contactFilter
Definition: CcdCollisionLoop.h:72
std::unique_ptr< BuildMlcp > m_buildMlcp
Definition: CcdCollisionLoop.h:74
double m_epsilonFactor
epsilon as a fraction of dt, i.e.
Definition: CcdCollisionLoop.h:84