Difficulty: Medium
Next Tutorial: Building a Cart

The Servo Wheel

Inheritance

ServoWheel.h

#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. */
};

ServoWheel.cpp

#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

Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki