9 float speed; /* signed to denote direction, in Hz */
10 int drive; /* which gear it drives */
15 std::vector<Gear*> gears;
16 std::map<Gear*, int> gearidx;
19 bool *visited; /* used for update_gear */
21 std::vector<Motor> motors;
23 void update_gear(int idx, float angle);
29 void add_gear(Gear *g); /* takes ownership */
30 void add_motor(int gearidx, float speed_hz);
32 void invalidate_meshing();
35 void update(float dt);
38 Gear *intersect_gear(const Ray &ray, HitPoint *hitp = 0) const;