playrho::d2::FunctionalJointVisitor Class Reference

Functional joint visitor class. More...

#include <FunctionalJointVisitor.hpp>

Public Types

template<class T >
using Proc = std::function< void(T)>
 Procedure alias. More...
 
using Tuple = std::tuple< Proc< const RevoluteJoint & >, Proc< RevoluteJoint & >, Proc< const PrismaticJoint & >, Proc< PrismaticJoint & >, Proc< const DistanceJoint & >, Proc< DistanceJoint & >, Proc< const PulleyJoint & >, Proc< PulleyJoint & >, Proc< const TargetJoint & >, Proc< TargetJoint & >, Proc< const GearJoint & >, Proc< GearJoint & >, Proc< const WheelJoint & >, Proc< WheelJoint & >, Proc< const WeldJoint & >, Proc< WeldJoint & >, Proc< const FrictionJoint & >, Proc< FrictionJoint & >, Proc< const RopeJoint & >, Proc< RopeJoint & >, Proc< const MotorJoint & >, Proc< MotorJoint & > >
 Tuple alias. More...
 

Public Member Functions

template<class T >
FunctionalJointVisitorUse (const Proc< T > &proc) noexcept
 Uses given procedure. More...
 
void Visit (const RevoluteJoint &arg) override
 Visits a revolute joint (RevoluteJoint). More...
 
void Visit (RevoluteJoint &arg) override
 Visits a revolute joint (RevoluteJoint). More...
 
void Visit (const PrismaticJoint &arg) override
 Visits a prismatic joint (PrismaticJoint). More...
 
void Visit (PrismaticJoint &arg) override
 Visits a prismatic joint (PrismaticJoint). More...
 
void Visit (const DistanceJoint &arg) override
 Visits a distance joint (DistanceJoint). More...
 
void Visit (DistanceJoint &arg) override
 Visits a distance joint (DistanceJoint). More...
 
void Visit (const PulleyJoint &arg) override
 Visits a pulley joint (PulleyJoint). More...
 
void Visit (PulleyJoint &arg) override
 Visits a pulley joint (PulleyJoint). More...
 
void Visit (const TargetJoint &arg) override
 Visits a target joint (TargetJoint). More...
 
void Visit (TargetJoint &arg) override
 Visits a target joint (TargetJoint). More...
 
void Visit (const GearJoint &arg) override
 Visits a gear joint (GearJoint). More...
 
void Visit (GearJoint &arg) override
 Visits a gear joint (GearJoint). More...
 
void Visit (const WheelJoint &arg) override
 Visits a wheel joint (WheelJoint). More...
 
void Visit (WheelJoint &arg) override
 Visits a wheel joint (WheelJoint). More...
 
void Visit (const WeldJoint &arg) override
 Visits a weld joint (WeldJoint). More...
 
void Visit (WeldJoint &arg) override
 Visits a weld joint (WeldJoint). More...
 
void Visit (const FrictionJoint &arg) override
 Visits a friction joint (FrictionJoint). More...
 
void Visit (FrictionJoint &arg) override
 Visits a friction joint (FrictionJoint). More...
 
void Visit (const RopeJoint &arg) override
 Visits a rope joint (RopeJoint). More...
 
void Visit (RopeJoint &arg) override
 Visits a rope joint (RopeJoint). More...
 
void Visit (const MotorJoint &arg) override
 Visits a motor joint (MotorJoint). More...
 
void Visit (MotorJoint &arg) override
 Visits a motor joint (MotorJoint). More...
 
- Public Member Functions inherited from playrho::d2::JointVisitor
virtual ~JointVisitor ()=default
 

Public Attributes

Tuple procs
 Procedures. More...
 

Additional Inherited Members

- Protected Member Functions inherited from playrho::d2::JointVisitor
 JointVisitor ()=default
 
 JointVisitor (const JointVisitor &other)=default
 Copy constructor. More...
 
 JointVisitor (JointVisitor &&other)=default
 Move constructor. More...
 
JointVisitoroperator= (const JointVisitor &other)=default
 Copy assignment operator. More...
 
JointVisitoroperator= (JointVisitor &&other)=default
 Move assignment operator. More...
 

Detailed Description

Functional joint visitor class.

Note
This class is intended to provide an alternate interface for visiting joints via the use of lambdas instead of having to subclass JointVisitor.

Definition at line 35 of file FunctionalJointVisitor.hpp.

Member Typedef Documentation

◆ Proc

template<class T >
using playrho::d2::FunctionalJointVisitor::Proc = std::function<void(T)>

Procedure alias.

Definition at line 40 of file FunctionalJointVisitor.hpp.

◆ Tuple

Member Function Documentation

◆ Use()

template<class T >
FunctionalJointVisitor& playrho::d2::FunctionalJointVisitor::Use ( const Proc< T > &  proc)
inlinenoexcept

Uses given procedure.

Note
Provide a builder pattern mutator method.

Definition at line 76 of file FunctionalJointVisitor.hpp.

◆ Visit() [1/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const RevoluteJoint joint)
inlineoverridevirtual

Visits a revolute joint (RevoluteJoint).

Implements playrho::d2::JointVisitor.

Definition at line 84 of file FunctionalJointVisitor.hpp.

◆ Visit() [2/22]

void playrho::d2::FunctionalJointVisitor::Visit ( RevoluteJoint joint)
inlineoverridevirtual

Visits a revolute joint (RevoluteJoint).

Implements playrho::d2::JointVisitor.

Definition at line 85 of file FunctionalJointVisitor.hpp.

◆ Visit() [3/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const PrismaticJoint joint)
inlineoverridevirtual

Visits a prismatic joint (PrismaticJoint).

Implements playrho::d2::JointVisitor.

Definition at line 86 of file FunctionalJointVisitor.hpp.

◆ Visit() [4/22]

void playrho::d2::FunctionalJointVisitor::Visit ( PrismaticJoint joint)
inlineoverridevirtual

Visits a prismatic joint (PrismaticJoint).

Implements playrho::d2::JointVisitor.

Definition at line 87 of file FunctionalJointVisitor.hpp.

◆ Visit() [5/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const DistanceJoint joint)
inlineoverridevirtual

Visits a distance joint (DistanceJoint).

Implements playrho::d2::JointVisitor.

Definition at line 88 of file FunctionalJointVisitor.hpp.

◆ Visit() [6/22]

void playrho::d2::FunctionalJointVisitor::Visit ( DistanceJoint joint)
inlineoverridevirtual

Visits a distance joint (DistanceJoint).

Implements playrho::d2::JointVisitor.

Definition at line 89 of file FunctionalJointVisitor.hpp.

◆ Visit() [7/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const PulleyJoint joint)
inlineoverridevirtual

Visits a pulley joint (PulleyJoint).

Implements playrho::d2::JointVisitor.

Definition at line 90 of file FunctionalJointVisitor.hpp.

◆ Visit() [8/22]

void playrho::d2::FunctionalJointVisitor::Visit ( PulleyJoint joint)
inlineoverridevirtual

Visits a pulley joint (PulleyJoint).

Implements playrho::d2::JointVisitor.

Definition at line 91 of file FunctionalJointVisitor.hpp.

◆ Visit() [9/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const TargetJoint joint)
inlineoverridevirtual

Visits a target joint (TargetJoint).

Implements playrho::d2::JointVisitor.

Definition at line 92 of file FunctionalJointVisitor.hpp.

◆ Visit() [10/22]

void playrho::d2::FunctionalJointVisitor::Visit ( TargetJoint joint)
inlineoverridevirtual

Visits a target joint (TargetJoint).

Implements playrho::d2::JointVisitor.

Definition at line 93 of file FunctionalJointVisitor.hpp.

◆ Visit() [11/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const GearJoint joint)
inlineoverridevirtual

Visits a gear joint (GearJoint).

Implements playrho::d2::JointVisitor.

Definition at line 94 of file FunctionalJointVisitor.hpp.

◆ Visit() [12/22]

void playrho::d2::FunctionalJointVisitor::Visit ( GearJoint joint)
inlineoverridevirtual

Visits a gear joint (GearJoint).

Implements playrho::d2::JointVisitor.

Definition at line 95 of file FunctionalJointVisitor.hpp.

◆ Visit() [13/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const WheelJoint joint)
inlineoverridevirtual

Visits a wheel joint (WheelJoint).

Implements playrho::d2::JointVisitor.

Definition at line 96 of file FunctionalJointVisitor.hpp.

◆ Visit() [14/22]

void playrho::d2::FunctionalJointVisitor::Visit ( WheelJoint joint)
inlineoverridevirtual

Visits a wheel joint (WheelJoint).

Implements playrho::d2::JointVisitor.

Definition at line 97 of file FunctionalJointVisitor.hpp.

◆ Visit() [15/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const WeldJoint joint)
inlineoverridevirtual

Visits a weld joint (WeldJoint).

Implements playrho::d2::JointVisitor.

Definition at line 98 of file FunctionalJointVisitor.hpp.

◆ Visit() [16/22]

void playrho::d2::FunctionalJointVisitor::Visit ( WeldJoint joint)
inlineoverridevirtual

Visits a weld joint (WeldJoint).

Implements playrho::d2::JointVisitor.

Definition at line 99 of file FunctionalJointVisitor.hpp.

◆ Visit() [17/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const FrictionJoint joint)
inlineoverridevirtual

Visits a friction joint (FrictionJoint).

Implements playrho::d2::JointVisitor.

Definition at line 100 of file FunctionalJointVisitor.hpp.

◆ Visit() [18/22]

void playrho::d2::FunctionalJointVisitor::Visit ( FrictionJoint joint)
inlineoverridevirtual

Visits a friction joint (FrictionJoint).

Implements playrho::d2::JointVisitor.

Definition at line 101 of file FunctionalJointVisitor.hpp.

◆ Visit() [19/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const RopeJoint joint)
inlineoverridevirtual

Visits a rope joint (RopeJoint).

Implements playrho::d2::JointVisitor.

Definition at line 102 of file FunctionalJointVisitor.hpp.

◆ Visit() [20/22]

void playrho::d2::FunctionalJointVisitor::Visit ( RopeJoint joint)
inlineoverridevirtual

Visits a rope joint (RopeJoint).

Implements playrho::d2::JointVisitor.

Definition at line 103 of file FunctionalJointVisitor.hpp.

◆ Visit() [21/22]

void playrho::d2::FunctionalJointVisitor::Visit ( const MotorJoint joint)
inlineoverridevirtual

Visits a motor joint (MotorJoint).

Implements playrho::d2::JointVisitor.

Definition at line 104 of file FunctionalJointVisitor.hpp.

◆ Visit() [22/22]

void playrho::d2::FunctionalJointVisitor::Visit ( MotorJoint joint)
inlineoverridevirtual

Visits a motor joint (MotorJoint).

Implements playrho::d2::JointVisitor.

Definition at line 105 of file FunctionalJointVisitor.hpp.

Member Data Documentation

◆ procs

Tuple playrho::d2::FunctionalJointVisitor::procs

Procedures.

Definition at line 71 of file FunctionalJointVisitor.hpp.


The documentation for this class was generated from the following file: