int main() { // Handle CTLR + C struct sigaction sigIntHandler; sigIntHandler.sa_handler = handleSignal; sigemptyset(&sigIntHandler.sa_mask); sigaction(SIGINT, &sigIntHandler, NULL); quit = false; auto lead = new car("lead"); auto follower = new car("follower"); auto controller = new pidController(); follower->setSpeed(0); lead->setSpeed(0); controller->setSetPoint(lead->getSpeed()); controller->setKi(1); controller->setKd(1); controller->setKp(.2); auto pvThread = std::thread(runPv, controller); auto pidThread = std::thread(runPid, controller); auto simThread = std::thread(runSim, lead, follower, controller); std::random_device rd; // only used once to initialise (seed) engine std::mt19937 rng(rd()); // random-number engine used (Mersenne-Twister in this case) std::uniform_int_distribution<int> uni(0,4); // guaranteed unbiased while (!quit) { int randomSpeed = uni(rng); lead->setSpeed(randomSpeed); controller->setSetPoint(lead->getSpeed()); sleepSim(2); } pvThread.join(); simThread.join(); pidThread.join(); delete lead; delete follower; delete controller; return 0; }
int SpecularEnhancement::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: refreshImage(); break; case 1: setKd((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: setKs((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: setExp((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 4; } return _id; }
void PID::setWeights(const float &Kp, const float &Ki, const float &Kd) { setKp(Kp); setKi(Ki); setKd(Kd); }
Material::Material(const glm::vec3& ambientAndDiffuse) { setKa(ambientAndDiffuse); setKd(ambientAndDiffuse); setKs(glm::vec3(1.0f, 1.0f, 1.0f)); setShininess(1.0f); }
Material::Material(const glm::vec3& ambientAndDiffuse, const glm::vec3& Ks, const float& shininess) { setKa(ambientAndDiffuse); setKd(ambientAndDiffuse); setKs(Ks); setShininess(shininess); }
Material::Material() { setKa(glm::vec3(0.25f, 0.25f, 0.25f)); setKd(glm::vec3(0.5f, 0.5f, 0.5f)); setKs(glm::vec3(1.0f, 1.0f, 1.0f)); setShininess(8.0f); }
Material::Material(const glm::vec3& Ka, const glm::vec3& Kd) { setKa(Ka); setKd(Kd); setKs(glm::vec3(1.0f, 1.0f, 1.0f)); setShininess(1.0f); }
Material::Material(const glm::vec3& Ka, const glm::vec3& Kd, const glm::vec3& Ks) { setKa(Ka); setKd(Kd); setKs(Ks); setShininess(1.0f); }
Material::Material(const glm::vec3& Ka, const glm::vec3& Kd, const glm::vec3& Ks, const float& shininess) { setKa(Ka); setKd(Kd); setKs(Ks); setShininess(shininess); }