#include <Visitor.h>

Public Types | |
| enum | Result { RESULT_CONTINUE, RESULT_PRUNE } |
| typedef simulation::Node::ctime_t | ctime_t |
Public Member Functions | |
| virtual | ~Visitor () |
| virtual Result | processNodeTopDown (simulation::Node *) |
| Callback method called when decending to a new node. Recursion will stop if this method returns RESULT_PRUNE. | |
| virtual void | processNodeBottomUp (simulation::Node *) |
| Callback method called after child node have been processed and before going back to the parent node. | |
| virtual const char * | getCategoryName () const |
| Return a category name for this action. | |
| template<class Act , class Container , class Object > | |
| void | for_each (Act *action, simulation::Node *node, const Container &list, void(Act::*fn)(simulation::Node *, Object *)) |
| Helper method to enumerate objects in the given list. The callback gets the pointer to node. | |
| template<class Act , class Container , class Object > | |
| Visitor::Result | for_each_r (Act *action, simulation::Node *node, const Container &list, Visitor::Result(Act::*fn)(simulation::Node *, Object *)) |
| Helper method to enumerate objects in the given list. The callback gets the pointer to node. | |
| ctime_t | begin (simulation::Node *node, core::objectmodel::BaseObject *) |
| Optional helper method to call before handling an object if not using the for_each method. | |
| void | end (simulation::Node *node, core::objectmodel::BaseObject *obj, ctime_t t0) |
| Optional helper method to call after handling an object if not using the for_each method. | |
| void | execute (core::objectmodel::BaseContext *) |
| Alias for context->executeVisitor(this). | |
| virtual bool | isThreadSafe () const |
| Specify whether this action can be parallelized. | |
| virtual Result | processNodeTopDown (simulation::Node *node, LocalStorage *) |
| Callback method called when decending to a new node. | |
| virtual void | processNodeBottomUp (simulation::Node *node, LocalStorage *) |
| Callback method called after child node have been processed and before going back to the parent node. | |
Definition at line 41 of file Visitor.h.
| virtual sofa::simulation::Visitor::~Visitor | ( | ) | [inline, virtual] |
| ctime_t sofa::simulation::Visitor::begin | ( | simulation::Node * | node, | |
| core::objectmodel::BaseObject * | ||||
| ) | [inline] |
Optional helper method to call before handling an object if not using the for_each method.
It currently takes care of time logging, but could be extended (step-by-step execution for instance)
Definition at line 123 of file Visitor.h.
References sofa::simulation::Node::startTime().
Referenced by sofa::simulation::MechanicalVisitor::processNodeBottomUp(), sofa::simulation::MechanicalMatrixVisitor::processNodeBottomUp(), sofa::simulation::MechanicalVisitor::processNodeTopDown(), sofa::simulation::MechanicalMatrixVisitor::processNodeTopDown(), and sofa::simulation::AnimateVisitor::processNodeTopDown().
| void sofa::simulation::Visitor::end | ( | simulation::Node * | node, | |
| core::objectmodel::BaseObject * | obj, | |||
| ctime_t | t0 | |||
| ) | [inline] |
Optional helper method to call after handling an object if not using the for_each method.
It currently takes care of time logging, but could be extended (step-by-step execution for instance)
Definition at line 130 of file Visitor.h.
References sofa::simulation::Node::endTime(), and getCategoryName().
Referenced by sofa::simulation::MechanicalVisitor::processNodeBottomUp(), sofa::simulation::MechanicalMatrixVisitor::processNodeBottomUp(), sofa::simulation::MechanicalVisitor::processNodeTopDown(), sofa::simulation::MechanicalMatrixVisitor::processNodeTopDown(), and sofa::simulation::AnimateVisitor::processNodeTopDown().
| void Visitor::execute | ( | core::objectmodel::BaseContext * | c | ) |
Alias for context->executeVisitor(this).
Definition at line 34 of file Visitor.cpp.
References sofa::core::objectmodel::BaseContext::executeVisitor().
Referenced by apply(), sofa::component::controller::MechanicalStateController< DataTypes >::applyController(), sofa::component::controller::EdgeSetController< DataTypes >::applyController(), sofa::simulation::MasterSolverImpl::computeCollision(), sofa::simulation::tree::Simulation::getInstruments(), sofa::simulation::MasterSolverImpl::integrate(), main(), sofa::simulation::tree::Simulation::processXML(), sofa::simulation::tree::GNode::reinit(), sofa::simulation::Node::reinit(), sofa::gui::qt::RealGUI::slot_recordSimulation(), sofa::component::odesolver::RungeKutta4Solver::solve(), sofa::component::odesolver::RungeKutta2Solver::solve(), sofa::component::odesolver::EulerSolver::solve(), sofa::component::odesolver::EulerImplicitSolver::solve(), sofa::component::odesolver::CGImplicitSolver::solve(), sofa::gui::qt::RealGUI::transformObject(), sofa::gui::qt::ModifyObject::updateValues(), and sofa::simulation::tree::Simulation::updateVisualContext().
| void sofa::simulation::Visitor::for_each | ( | Act * | action, | |
| simulation::Node * | node, | |||
| const Container & | list, | |||
| void(Act::*)(simulation::Node *, Object *) | fn | |||
| ) | [inline] |
Helper method to enumerate objects in the given list. The callback gets the pointer to node.
Definition at line 60 of file Visitor.h.
References sofa::simulation::Node::endTime(), getCategoryName(), sofa::simulation::Node::getLogTime(), and sofa::simulation::Node::startTime().
Referenced by sofa::simulation::VisualDrawVisitor::processNodeBottomUp(), sofa::simulation::MechanicalVisitor::processNodeBottomUp(), sofa::simulation::VisualComputeBBoxVisitor::processNodeTopDown(), sofa::simulation::VisualVisitor::processNodeTopDown(), sofa::simulation::VisualDrawVisitor::processNodeTopDown(), sofa::simulation::UpdateMappingVisitor::processNodeTopDown(), sofa::simulation::TransformationVisitor::processNodeTopDown(), sofa::simulation::SolveVisitor::processNodeTopDown(), sofa::simulation::PropagateEventVisitor::processNodeTopDown(), sofa::simulation::ExportOBJVisitor::processNodeTopDown(), sofa::simulation::CollisionVisitor::processNodeTopDown(), sofa::simulation::BehaviorUpdatePositionVisitor::processNodeTopDown(), and sofa::simulation::AnimateVisitor::processNodeTopDown().
| Visitor::Result sofa::simulation::Visitor::for_each_r | ( | Act * | action, | |
| simulation::Node * | node, | |||
| const Container & | list, | |||
| Visitor::Result(Act::*)(simulation::Node *, Object *) | fn | |||
| ) | [inline] |
Helper method to enumerate objects in the given list. The callback gets the pointer to node.
Definition at line 85 of file Visitor.h.
References sofa::simulation::Node::endTime(), getCategoryName(), sofa::simulation::Node::getLogTime(), RESULT_CONTINUE, and sofa::simulation::Node::startTime().
Referenced by sofa::simulation::MechanicalVisitor::processNodeTopDown(), and sofa::simulation::MechanicalMatrixVisitor::processNodeTopDown().
| virtual const char* sofa::simulation::Visitor::getCategoryName | ( | ) | const [inline, virtual] |
Return a category name for this action.
Only used for debugging / profiling purposes
Reimplemented in sofa::simulation::AnimateVisitor, sofa::simulation::BehaviorUpdatePositionVisitor, sofa::simulation::CollisionVisitor, sofa::simulation::DesactivationVisitor, sofa::simulation::InitGnuplotVisitor, sofa::simulation::ExportGnuplotVisitor, sofa::simulation::InitVisitor, sofa::simulation::InstrumentVisitor, sofa::simulation::MechanicalMatrixVisitor, sofa::simulation::MechanicalVisitor, sofa::simulation::SolveVisitor, sofa::simulation::StateChangeVisitor, sofa::simulation::TopologyChangeVisitor, sofa::simulation::TransformationVisitor, sofa::simulation::UpdateContextVisitor, sofa::simulation::UpdateMappingVisitor, sofa::simulation::VelocityThresholdVisitor, and sofa::simulation::VisualVisitor.
Definition at line 56 of file Visitor.h.
Referenced by sofa::simulation::tree::GNode::doExecuteVisitor(), end(), sofa::simulation::tree::GNodeVisitor::for_each(), for_each(), sofa::simulation::tree::GNodeVisitor::for_each_r(), and for_each_r().
| virtual bool sofa::simulation::Visitor::isThreadSafe | ( | ) | const [inline, virtual] |
Specify whether this action can be parallelized.
Reimplemented in sofa::simulation::AnimateVisitor, sofa::simulation::BehaviorUpdatePositionVisitor, sofa::simulation::DesactivationVisitor, sofa::simulation::InitVisitor, sofa::simulation::InstrumentVisitor, sofa::simulation::MechanicalVAvailVisitor, sofa::simulation::MechanicalVAllocVisitor, sofa::simulation::MechanicalVFreeVisitor, sofa::simulation::MechanicalVOpVisitor, sofa::simulation::MechanicalVMultiOpVisitor, sofa::simulation::MechanicalVDotVisitor, sofa::simulation::MechanicalPropagateDxVisitor, sofa::simulation::MechanicalPropagateDxAndResetForceVisitor, sofa::simulation::MechanicalPropagateAndAddDxVisitor, sofa::simulation::MechanicalAddMDxVisitor, sofa::simulation::MechanicalAccFromFVisitor, sofa::simulation::MechanicalPropagatePositionAndVelocityVisitor, sofa::simulation::MechanicalPropagateFreePositionVisitor, sofa::simulation::MechanicalResetForceVisitor, sofa::simulation::MechanicalComputeForceVisitor, sofa::simulation::MechanicalComputeDfVisitor, sofa::simulation::MechanicalAddMBKdxVisitor, sofa::simulation::MechanicalResetConstraintVisitor, sofa::simulation::MechanicalAccumulateConstraint, sofa::simulation::MechanicalApplyConstraintsVisitor, sofa::simulation::MechanicalBeginIntegrationVisitor, sofa::simulation::MechanicalEndIntegrationVisitor, sofa::simulation::MechanicalIntegrationVisitor, sofa::simulation::MechanicalComputeContactForceVisitor, sofa::simulation::ResetVisitor, sofa::simulation::StoreResetStateVisitor, sofa::simulation::SolveVisitor, sofa::simulation::StateChangeVisitor, sofa::simulation::TopologyChangeVisitor, sofa::simulation::TransformationVisitor, sofa::simulation::UpdateContextVisitor, and sofa::simulation::UpdateMappingVisitor.
Definition at line 140 of file Visitor.h.
Referenced by sofa::simulation::tree::ParallelVisitorScheduler::executeVisitor().
| virtual void sofa::simulation::Visitor::processNodeBottomUp | ( | simulation::Node * | node, | |
| LocalStorage * | ||||
| ) | [inline, virtual] |
Callback method called after child node have been processed and before going back to the parent node.
This version is offered a LocalStorage to store temporary data
Reimplemented in sofa::simulation::MechanicalVDotVisitor.
Definition at line 148 of file Visitor.h.
References processNodeBottomUp().
Referenced by processNodeBottomUp().
| virtual void sofa::simulation::Visitor::processNodeBottomUp | ( | simulation::Node * | ) | [inline, virtual] |
Callback method called after child node have been processed and before going back to the parent node.
Reimplemented in sofa::simulation::ExportOBJVisitor, sofa::simulation::InitVisitor, sofa::simulation::MechanicalMatrixVisitor, sofa::simulation::MechanicalVisitor, sofa::simulation::MechanicalPropagatePositionAndVelocityVisitor, sofa::simulation::PrintVisitor, sofa::simulation::ResetVisitor, sofa::simulation::StoreResetStateVisitor, sofa::simulation::VisualDrawVisitor, sofa::simulation::XMLPrintVisitor, and sofa::simulation::tree::GNodeVisitor.
Definition at line 52 of file Visitor.h.
Referenced by sofa::simulation::tree::GNode::doExecuteVisitor().
| virtual Result sofa::simulation::Visitor::processNodeTopDown | ( | simulation::Node * | node, | |
| LocalStorage * | ||||
| ) | [inline, virtual] |
Callback method called when decending to a new node.
Recursion will stop if this method returns RESULT_PRUNE This version is offered a LocalStorage to store temporary data
Reimplemented in sofa::simulation::MechanicalVDotVisitor.
Definition at line 144 of file Visitor.h.
References processNodeTopDown().
Referenced by processNodeTopDown().
| virtual Result sofa::simulation::Visitor::processNodeTopDown | ( | simulation::Node * | ) | [inline, virtual] |
Callback method called when decending to a new node. Recursion will stop if this method returns RESULT_PRUNE.
Reimplemented in sofa::component::misc::ReadStateModifier, sofa::component::misc::WriteStateActivator, sofa::simulation::AnimateVisitor, sofa::simulation::BehaviorUpdatePositionVisitor, sofa::simulation::CollisionVisitor, sofa::simulation::DesactivationVisitor, sofa::simulation::InitGnuplotVisitor, sofa::simulation::ExportGnuplotVisitor, sofa::simulation::ExportOBJVisitor, sofa::simulation::FindByTypeVisitor< T >, sofa::simulation::InitVisitor, sofa::simulation::InstrumentVisitor, sofa::simulation::MechanicalMatrixVisitor, sofa::simulation::MechanicalVisitor, sofa::simulation::MechanicalPropagatePositionAndVelocityVisitor, sofa::simulation::MechanicalPropagateFreePositionVisitor, sofa::simulation::MechanicalVPrintVisitor, sofa::simulation::MechanicalVPrintWithElapsedTimeVisitor, sofa::simulation::PrintVisitor, sofa::simulation::PropagateEventVisitor, sofa::simulation::ResetVisitor, sofa::simulation::StoreResetStateVisitor, sofa::simulation::SolveVisitor, sofa::simulation::StateChangeVisitor, sofa::simulation::TopologyChangeVisitor, sofa::simulation::TransformationVisitor, sofa::simulation::UpdateContextVisitor, sofa::simulation::UpdateSimulationContextVisitor, sofa::simulation::UpdateVisualContextVisitor, sofa::simulation::UpdateMappingVisitor, sofa::simulation::VelocityThresholdVisitor, sofa::simulation::VisualVisitor, sofa::simulation::VisualDrawVisitor, sofa::simulation::VisualComputeBBoxVisitor, sofa::simulation::WriteStateVisitor, sofa::simulation::XMLPrintVisitor, and sofa::simulation::tree::GNodeVisitor.
Definition at line 49 of file Visitor.h.
References RESULT_CONTINUE.
Referenced by sofa::simulation::tree::GNode::doExecuteVisitor().
1.5.7.1