Difficulty: Medium
Next Tutorial: Building a Cart
#include <parts/SimpleWheel.h> class OOMLParts_EXP_DEC ServoWheel : public SimpleWheel { public: ServoWheel() : SimpleWheel(1, 0.1, 0.1), _servoRadius(0.4), _servoThickness(0.05) { rebuild(); } ServoWheel(double radius, double axeRadius, double thickness, double servoRadius, double servoThickness) : SimpleWheel(radius,thickness,axeRadius), _servoRadius(servoRadius), _servoThickness(servoThickness) { if (_servoRadius > radius) _servoRadius = radius - PART_MARGIN; if (_servoThickness > thickness) _servoThickness = thickness - PART_MARGIN; rebuild(); } virtual ~ServoWheel() {} protected: virtual Component build(); private: double _servoRadius; /** Servo's piece radius. */ double _servoThickness; /** Servo's piece thickness. */ };
#include <parts/ServoWheel.h> #include <components/Cylinder.h> #include <core/Difference.h> #include <parts/SimpleWheel.h> Component ServoWheel::build() { return get() // Get the SimpleWheel we inherit from - Cylinder::create(_servoRadius, _servoThickness + PART_MARGIN,50,false) .translate(0, 0, getThickness()/2 - (_servoThickness + PART_MARGIN)/2); }
Next Tutorial: Building a Cart