12 #include <mvsim/ClassFactory.h>
13 #include <mvsim/CsvLogger.h>
14 #include <mvsim/Wheel.h>
15 #include <mvsim/basic_types.h>
31 using Ptr = std::shared_ptr<FrictionBase>;
71 : context(_context), wheel(_wheel)
81 bool hasLogger()
const {
return logger_.has_value(); }
82 void setLogger(
const std::weak_ptr<CSVLogger>& logger);
88 std::optional<std::weak_ptr<CSVLogger>> logger_;
92 typedef ClassFactory<FrictionBase, VehicleBase&, const rapidxml::xml_node<char>*>
93 TClassFactory_friction;
94 extern TClassFactory_friction classFactory_friction;
96 #define DECLARES_REGISTER_FRICTION(CLASS_NAME) \
97 DECLARES_REGISTER_CLASS2( \
98 CLASS_NAME, FrictionBase, VehicleBase&, const rapidxml::xml_node<char>*)
100 #define REGISTER_FRICTION(TEXTUAL_NAME, CLASS_NAME) \
101 REGISTER_CLASS2(TClassFactory_friction, classFactory_friction, TEXTUAL_NAME, CLASS_NAME)
Definition: FrictionBase.h:29
virtual mrpt::math::TVector2D evaluate_friction(const FrictionBase::TFrictionInput &input) const =0
static FrictionBase::Ptr factory(VehicleBase &parent, const rapidxml::xml_node< char > *xml_node)
Definition: VehicleBase.h:44
Definition: basic_types.h:58