X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=antikythera;a=blobdiff_plain;f=src%2Fmachine.cc;h=441826e4ca08b21bc5824450e25fc2545f54e3c8;hp=313540d18f1b60b567a402e4fe8ce9579c394fae;hb=6879b81017c2662b0c5a0b9027df8cf13b10545a;hpb=080d7a779d43f549fc16c44e709cbf5989180fdf diff --git a/src/machine.cc b/src/machine.cc index 313540d..441826e 100644 --- a/src/machine.cc +++ b/src/machine.cc @@ -3,6 +3,7 @@ #include #include #include +#include "opengl.h" #include "machine.h" static float delta_angle(float a, float b); @@ -46,6 +47,15 @@ void Machine::add_motor(int gearidx, float speed_hz) motors.push_back(m); } +int Machine::get_gear_index(Gear *g) const +{ + std::map::const_iterator it = gearidx.find(g); + if(it == gearidx.end()) { + return -1; + } + return it->second; +} + void Machine::invalidate_meshing() { meshing_valid = false; @@ -212,6 +222,19 @@ void Machine::draw() const for(size_t i=0; idraw(); } + + float dcol[] = {0.4, 0.4, 0.4, 1.0}; + float scol[] = {0, 0, 0, 0}; + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, dcol); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, scol); + + glBegin(GL_QUADS); + glNormal3f(0, 1, 0); + glVertex3f(-300, -100, 300); + glVertex3f(300, -100, 300); + glVertex3f(300, -100, -300); + glVertex3f(-300, -100, -300); + glEnd(); } Gear *Machine::intersect_gear(const Ray &ray, HitPoint *hitp) const