- added subgear linkage
[antikythera] / src / machine.h
index 5513e02..e0f2155 100644 (file)
@@ -2,6 +2,7 @@
 #define MACHINE_H_
 
 #include <vector>
+#include <map>
 #include "gear.h"
 
 struct Motor {
@@ -12,6 +13,7 @@ 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 */
@@ -32,6 +34,8 @@ public:
 
        void update(float dt);
        void draw() const;
+
+       Gear *intersect_gear(const Ray &ray, HitPoint *hitp = 0) const;
 };
 
 #endif // MACHINE_H_