private:
std::vector<Gear*> gears;
bool **meshing;
+ bool meshing_valid;
bool *visited; /* used for update_gear */
std::vector<Motor> motors;
void add_gear(Gear *g); /* takes ownership */
void add_motor(int gearidx, float speed_hz);
+ void invalidate_meshing();
void calc_meshing();
void update(float dt);