X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=antikythera;a=blobdiff_plain;f=src%2Fmachine.h;h=097157d62a3d4c9884485ff70ab652b34dc620fc;hp=5513e027264eb5573581799e0a4f0efd9d07a41b;hb=6879b81017c2662b0c5a0b9027df8cf13b10545a;hpb=2c8e92970f198061a0cefdb59c2d0ec8c58409c9 diff --git a/src/machine.h b/src/machine.h index 5513e02..097157d 100644 --- a/src/machine.h +++ b/src/machine.h @@ -2,6 +2,7 @@ #define MACHINE_H_ #include +#include #include "gear.h" struct Motor { @@ -12,6 +13,7 @@ struct Motor { class Machine { private: std::vector gears; + std::map gearidx; bool **meshing; bool meshing_valid; bool *visited; /* used for update_gear */ @@ -27,11 +29,15 @@ public: 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(); void update(float dt); void draw() const; + + Gear *intersect_gear(const Ray &ray, HitPoint *hitp = 0) const; }; #endif // MACHINE_H_