The goal is to freeze the physics, so that would be deactivating all
physics components.
Setting the components to inactive is not a solution right now because
some physics simulation parts would stop computing (free motion, push
mlcp result) but some others don't check on inactive/deactive
components right now (DCD calculation) plus all the computations that
are not relying on the components themselves but the physics manager
state would keep running (constraints generations, buildMLCP,
solveMLCP, pushMLCPResult).
Even if all Physics::Computation were ready to handle this properly,
setting all components to inactive needs to happen all at the same
time in the physics loop and at the right moment, so it has to be in
the physics manager, any other way could cause lots of damage in the
physics simulation.
Also, I think we want to get away from behaviors that access the
physics manager, and focus on behaviors that communicate at the
component level (representation). Right now, we are developing the
management of non-contact constraints this way (permanent bilateral 3d
constraints for example). These constraints will be triggered by a
behavior, registering them not on the PhysicsManager but on the
Representations themselves. In our case, it would require many
instantiation of a behavior that would be connected to only one
physics representation at a time.
-- Julien
> --
> You received this message because you are subscribed to the Google Groups "openSurgSim" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
opensurgsim...@simquest.com.
> To post to this group, send email to
opens...@simquest.com.
> Visit this group at
http://groups.google.com/a/simquest.com/group/opensurgsim/.