8 float speed; /* signed to denote direction, in Hz */
9 int drive; /* which gear it drives */
14 std::vector<Gear*> gears;
17 bool *visited; /* used for update_gear */
19 std::vector<Motor> motors;
21 void update_gear(int idx, float angle);
27 void add_gear(Gear *g); /* takes ownership */
28 void add_motor(int gearidx, float speed_hz);
30 void invalidate_meshing();
33 void update(float dt);
36 Gear *intersect_gear(const Ray &ray, HitPoint *hitp = 0) const;