void PuckManager::ForcePuck(const SDL_RendererFlip& sf) { Puck* n = new Puck(wRef); pmPos -= Vec3(-0.5f, 0.7f, 0.0f); n->SetStartPos(pmPos); n->PlayerDir(sf); puckList.push_back(n); Debug::ConsoleLog("Created puck!"); }
/* Constructor */ void Puck::callback( ot::CallbackNode * node, ot::Event & event, void * data ) { Puck * self = reinterpret_cast<Puck*>(data); try{ printf("Puck:: receiving event\n"); std::vector<float> & pos = event.getPosition(); std::vector<float> & vel = event.getAttribute((std::vector<float>*)NULL, "velocity"); self->position = Vec3f(pos[0], pos[1], pos[2]); self->updatePosition(); // self->velocity = Vec3f(vel[0], vel[1], vel[2]); self->updateVelocity(vel[0], vel[1], vel[2]); } catch(...){ printf("PUCK::Error unpacking event\n"); } };
unsigned __stdcall cameraThread(void* param){ CvPoint2D32f* puckPoint=new CvPoint2D32f(); IplImage* frame = cvCreateImage(IMAGESIZE,8,3);//skapar en buffer för en bild int t0=0,t1=0,t2=0,t3=0;//DEBUGVERKTYG while(running){ t0=clock(); //fyller buffren med en ny bild capture->myQueryFrame(frame);//40ms t1=clock(); //hanterar bilden track_puck.trackObject(frame,puckPoint);//20ms t2=clock(); //uppdaterar puckens position med ny data puck.updatePosition(puckPoint); t3=clock(); //float cycle=(GetTickCount()-t); //cout<<t0-t1<<"\t"<<t1-t2<<"\t"<<t3-t2<<endl; // } return NULL; }
int getProperty(const Puck& p, enum Puck::Property prop) { return p.getProperty(prop, false); }