#define MACHINE_H_
#include <vector>
+#include <map>
#include "gear.h"
struct Motor {
class Machine {
private:
std::vector<Gear*> gears;
+ std::map<Gear*, int> gearidx;
bool **meshing;
bool meshing_valid;
bool *visited; /* used for update_gear */
void add_gear(Gear *g); /* takes ownership */
void add_motor(int gearidx, float speed_hz);
+ int get_gear_index(Gear *g) const;
+
void invalidate_meshing();
void calc_meshing();