Same as MechanicalPropagateOnlyPositionVisitor followed by MechanicalResetForceVisitor
Note that this visitor only propagate through the mappings, and does not apply projective constraints as was previously done by MechanicalPropagatePositionAndResetForceVisitor. Use MechanicalProjectPositionVisitor before this visitor if projection is needed.
|
| MechanicalPropagateOnlyPositionAndResetForceVisitor (const sofa::core::MechanicalParams *mparams, sofa::core::MultiVecCoordId x, sofa::core::MultiVecDerivId f) |
|
Result | fwdMechanicalState (simulation::Node *, sofa::core::behavior::BaseMechanicalState *mm) override |
| Process the BaseMechanicalState if it is not mapped from the parent level. More...
|
|
Result | fwdMappedMechanicalState (simulation::Node *, sofa::core::behavior::BaseMechanicalState *mm) override |
| Process the BaseMechanicalState if it is mapped from the parent level. More...
|
|
Result | fwdMechanicalMapping (simulation::Node *, sofa::core::BaseMapping *map) override |
| Process the BaseMechanicalMapping. More...
|
|
void | bwdMechanicalState (simulation::Node *, sofa::core::behavior::BaseMechanicalState *mm) override |
| Process the BaseMechanicalState when it is not mapped from parent level. More...
|
|
const char * | getClassName () const override |
|
bool | isThreadSafe () const override |
| Specify whether this action can be parallelized. More...
|
|
| MechanicalVisitor (const sofa::core::MechanicalParams *m_mparams) |
|
| BaseMechanicalVisitor (const sofa::core::ExecParams *params) |
|
virtual bool | readNodeData () const =delete |
|
virtual bool | writeNodeData () const =delete |
|
virtual void | setNodeData (simulation::Node *, SReal *, const SReal *)=delete |
|
virtual void | addNodeData (simulation::Node *, SReal *, const SReal *)=delete |
|
const char * | getCategoryName () const override |
|
virtual bool | stopAtMechanicalMapping (simulation::Node *, sofa::core::BaseMapping *map) |
|
Result | processNodeTopDown (simulation::Node *node) override |
| This method calls the fwd* methods during the forward traversal. You typically do not overload it. More...
|
|
virtual Result | processNodeTopDown (simulation::Node *node, LocalStorage *stack) override=delete |
|
virtual Result | fwdOdeSolver (simulation::Node *, sofa::core::behavior::OdeSolver *) |
| Process the OdeSolver. More...
|
|
virtual Result | fwdOdeSolver (VisitorContext *ctx, sofa::core::behavior::OdeSolver *solver) |
| Process the OdeSolver. More...
|
|
virtual Result | fwdConstraintSolver (simulation::Node *, sofa::core::behavior::ConstraintSolver *) |
| Process the ConstraintSolver. More...
|
|
virtual Result | fwdConstraintSolver (VisitorContext *ctx, sofa::core::behavior::ConstraintSolver *solver) |
| Process the ConstraintSolver. More...
|
|
virtual Result | fwdMechanicalMapping (VisitorContext *ctx, sofa::core::BaseMapping *map) |
| Process the BaseMechanicalMapping. More...
|
|
virtual Result | fwdMappedMechanicalState (VisitorContext *ctx, sofa::core::behavior::BaseMechanicalState *mm) |
| Process the BaseMechanicalState if it is mapped from the parent level. More...
|
|
virtual Result | fwdMechanicalState (VisitorContext *ctx, sofa::core::behavior::BaseMechanicalState *mm) |
| Process the BaseMechanicalState if it is not mapped from the parent level. More...
|
|
virtual Result | fwdMass (simulation::Node *, sofa::core::behavior::BaseMass *) |
| Process the BaseMass. More...
|
|
virtual Result | fwdMass (VisitorContext *ctx, sofa::core::behavior::BaseMass *mass) |
| Process the BaseMass. More...
|
|
virtual Result | fwdForceField (simulation::Node *, sofa::core::behavior::BaseForceField *) |
| Process all the BaseForceField. More...
|
|
virtual Result | fwdForceField (VisitorContext *ctx, sofa::core::behavior::BaseForceField *ff) |
| Process all the BaseForceField. More...
|
|
virtual Result | fwdInteractionForceField (simulation::Node *node, sofa::core::behavior::BaseInteractionForceField *ff) |
| Process all the InteractionForceField. More...
|
|
virtual Result | fwdInteractionForceField (VisitorContext *ctx, sofa::core::behavior::BaseInteractionForceField *ff) |
| Process all the InteractionForceField. More...
|
|
virtual Result | fwdProjectiveConstraintSet (simulation::Node *, sofa::core::behavior::BaseProjectiveConstraintSet *) |
| Process all the BaseProjectiveConstraintSet. More...
|
|
virtual Result | fwdConstraintSet (simulation::Node *, sofa::core::behavior::BaseConstraintSet *) |
| Process all the BaseConstraintSet. More...
|
|
virtual Result | fwdProjectiveConstraintSet (VisitorContext *ctx, sofa::core::behavior::BaseProjectiveConstraintSet *c) |
| Process all the BaseProjectiveConstraintSet. More...
|
|
virtual Result | fwdConstraintSet (VisitorContext *ctx, sofa::core::behavior::BaseConstraintSet *c) |
| Process all the BaseConstraintSet. More...
|
|
virtual Result | fwdInteractionProjectiveConstraintSet (simulation::Node *, sofa::core::behavior::BaseInteractionProjectiveConstraintSet *) |
| Process all the InteractionConstraint. More...
|
|
virtual Result | fwdInteractionConstraint (simulation::Node *, sofa::core::behavior::BaseInteractionConstraint *) |
| Process all the InteractionConstraint. More...
|
|
virtual Result | fwdInteractionProjectiveConstraintSet (VisitorContext *ctx, sofa::core::behavior::BaseInteractionProjectiveConstraintSet *c) |
| Process all the InteractionConstraint. More...
|
|
virtual Result | fwdInteractionConstraint (VisitorContext *ctx, sofa::core::behavior::BaseInteractionConstraint *c) |
| Process all the InteractionConstraint. More...
|
|
void | processNodeBottomUp (simulation::Node *node) override |
| This method calls the bwd* methods during the backward traversal. You typically do not overload it. More...
|
|
virtual void | processNodeBottomUp (simulation::Node *node, LocalStorage *stack) override=delete |
|
virtual void | bwdMechanicalState (VisitorContext *ctx, sofa::core::behavior::BaseMechanicalState *mm) |
| Process the BaseMechanicalState when it is not mapped from parent level. More...
|
|
virtual void | bwdMappedMechanicalState (simulation::Node *, sofa::core::behavior::BaseMechanicalState *) |
| Process the BaseMechanicalState when it is mapped from parent level. More...
|
|
virtual void | bwdMappedMechanicalState (VisitorContext *ctx, sofa::core::behavior::BaseMechanicalState *mm) |
| Process the BaseMechanicalState when it is mapped from parent level. More...
|
|
virtual void | bwdMechanicalMapping (simulation::Node *, sofa::core::BaseMapping *) |
| Process the BaseMechanicalMapping. More...
|
|
virtual void | bwdMechanicalMapping (VisitorContext *ctx, sofa::core::BaseMapping *map) |
| Process the BaseMechanicalMapping. More...
|
|
virtual void | bwdOdeSolver (simulation::Node *, sofa::core::behavior::OdeSolver *) |
| Process the OdeSolver. More...
|
|
virtual void | bwdOdeSolver (VisitorContext *ctx, sofa::core::behavior::OdeSolver *solver) |
| Process the OdeSolver. More...
|
|
virtual void | bwdConstraintSolver (simulation::Node *, sofa::core::behavior::ConstraintSolver *) |
| Process the ConstraintSolver. More...
|
|
virtual void | bwdConstraintSolver (VisitorContext *ctx, sofa::core::behavior::ConstraintSolver *solver) |
| Process the ConstraintSolver. More...
|
|
virtual void | bwdProjectiveConstraintSet (simulation::Node *, sofa::core::behavior::BaseProjectiveConstraintSet *) |
| Process all the BaseProjectiveConstraintSet. More...
|
|
virtual void | bwdConstraintSet (simulation::Node *, sofa::core::behavior::BaseConstraintSet *) |
| Process all the BaseConstraintSet. More...
|
|
virtual void | bwdProjectiveConstraintSet (VisitorContext *ctx, sofa::core::behavior::BaseProjectiveConstraintSet *c) |
| Process all the BaseProjectiveConstraintSet. More...
|
|
virtual void | bwdConstraintSet (VisitorContext *ctx, sofa::core::behavior::BaseConstraintSet *c) |
| Process all the BaseConstraintSet. More...
|
|
| Visitor (const sofa::core::ExecParams *params) |
|
virtual | ~Visitor () |
|
const sofa::core::ExecParams * | execParams () const |
|
virtual bool | childOrderReversed (simulation::Node *) |
| Return true to reverse the order of traversal of child nodes. More...
|
|
virtual bool | treeTraversal (TreeTraversalRepetition &repeat) |
|
virtual std::string | getInfos () const |
|
bool | testTags (sofa::core::objectmodel::BaseObject *obj) |
|
virtual void | execute (sofa::core::objectmodel::BaseContext *node, bool precomputedOrder=false) |
| Alias for context->executeVisitor(this) More...
|
|
virtual ctime_t | begin (simulation::Node *node, sofa::core::objectmodel::BaseObject *obj, const std::string &typeInfo=std::string("type")) |
|
virtual void | end (simulation::Node *node, sofa::core::objectmodel::BaseObject *obj, ctime_t t0) |
|
virtual ctime_t | begin (simulation::Visitor::VisitorContext *node, sofa::core::objectmodel::BaseObject *obj, const std::string &typeInfo=std::string("type")) |
|
virtual void | end (simulation::Visitor::VisitorContext *node, sofa::core::objectmodel::BaseObject *obj, ctime_t t0) |
|
Visitor & | setTags (const TagSet &t) |
|
Visitor & | addTag (Tag t) |
|
Visitor & | removeTag (Tag t) |
|
template<class VisitorType , class VContext , class Container , typename PointedType > |
void | for_each (VisitorType *visitor, VContext *ctx, const Container &list, void(VisitorType::*task)(VContext *, PointedType *), const std::string &typeInfo) |
|
template<class VisitorType , class VContext , class Container , typename PointedType > |
Visitor::Result | for_each (VisitorType *visitor, VContext *ctx, const Container &list, Visitor::Result(VisitorType::*task)(VContext *, PointedType *), const std::string &typeInfo) |
|
|
const sofa::core::MechanicalParams * | mparams |
|
simulation::Node * | root |
| root node from which the visitor was executed More...
|
|
SReal * | rootData { nullptr } |
| data for root node More...
|
|
const sofa::core::ExecParams * | params |
|
virtual Result | processNodeTopDown (simulation::Node *node, VisitorContext *ctx) |
|
virtual void | processNodeBottomUp (simulation::Node *node, VisitorContext *ctx) |
|
void | debug_write_state_before (sofa::core::objectmodel::BaseObject *obj) |
|
void | debug_write_state_after (sofa::core::objectmodel::BaseObject *obj) |
|
template<class VisitorType , class VContext , class ObjectType > |
void | runVisitorTask (VisitorType *visitor, VContext *ctx, void(VisitorType::*task)(VContext *, ObjectType *), ObjectType *ptr, const std::string &typeInfo=std::string("type")) |
|
template<class VisitorType , class VContext , class ObjectType > |
Result | runVisitorTask (VisitorType *visitor, VContext *ctx, Result(VisitorType::*task)(VContext *, ObjectType *), ObjectType *ptr, const std::string &typeInfo=std::string("type")) |
|
template<class Visit , class VContext , class Container , typename PointedType = typename Container::pointed_type> |
void | for_each (Visit *visitor, VContext *ctx, const Container &list, void(Visit::*task)(VContext *, PointedType *), const std::string &typeInfo=std::string("type")) |
|
template<class Visit , class VContext , class Container , typename PointedType = typename Container::pointed_type> |
Visitor::Result | for_each (Visit *visitor, VContext *ctx, const Container &list, Visitor::Result(Visit::*task)(VContext *, PointedType *), const std::string &typeInfo=std::string("type")) |
|