int HPJScanner::getLine() { int current; int has_text; int cur_len=0; // Loop until we've identified a single line. while( cur_len == 0 ){ ++_lineNum; current = 0; cur_len = 0; has_text = 0; for( ;; ){ current = _input->nextch(); if( current == ';' && cur_len == 0 ) break; if( current == EOF || current == '\n' ) break; if( !isspace( current ) ) { has_text = 1; } if( cur_len == _lineSize ){ _lineSize += LINE_BLOCK; renew( _curLine, _lineSize ); } _curLine[cur_len++] = (char) current; } if( current == ';' && cur_len == 0 ){ do { current = _input->nextch(); }while( current != EOF && current != '\n' ); if( cur_len == 0 ){ continue; } } if( current != EOF || cur_len > 0 ){ if( cur_len == _lineSize ){ _lineSize += LINE_BLOCK; renew( _curLine, _lineSize ); } _curLine[cur_len++] = '\0'; } else { break; } if( !has_text ){ cur_len = 0; } } // Set up the buffer so this line can be tokenized. if( cur_len > 0 ){ _bufPos = 0; _bufChar = _curLine[0]; } return cur_len; }
void renew(int i, int val, SegmentTreeNode* root) { if(root->range_left==root->range_right && root->range_left==i) { root->sum = val; return; } if(root->range_left>i || root->range_right<i) return; renew(i,val,root->left); renew(i,val,root->right); root->sum = root->left->sum+root->right->sum; }
int main(){ read(C);build(); char opt; int cnt=0; for (;;) switch(read(opt),opt){ case 'C':read(r1),read(c1),read(r2),read(c2),r1--,r2--; renew(0);break; case 'O':read(r1),read(c1),read(r2),read(c2),r1--,r2--; renew(1);break; case 'A':read(r1),read(c1),read(r2),read(c2),r1--,r2--;if (c1>c2) c1^=c2,c2^=c1,c1^=c2,r1^=r2,r2^=r1,r1^=r2; putchar(query()?'Y':'N');putchar('\n');break; case 'E':goto end; } end:; }
window::window(repository *repo) { this->repo = repo; this->setFixedSize(550,350); QVBoxLayout *mainlayout = new QVBoxLayout(this); QVBoxLayout *inputtable = new QVBoxLayout; repo->aktie.setFixedWidth(111); repo->timerange.setFixedWidth(25); QLabel *aktietext = new QLabel; aktietext->setText("Aktie:"); QLabel *texttimerange = new QLabel; texttimerange->setText("Zeitspanne:"); repo->timerangeunit.addItem(tr("Tage")); repo->timerangeunit.addItem(tr("Monate")); repo->timerangeunit.addItem(tr("Jahre")); repo->timerangeunit.setFixedWidth(80); repo->aktie.setText("^GDAXI"); repo->timerange.setText("5"); QPushButton *GoButton = new QPushButton("GO"); GoButton->setMaximumWidth(112); this->renew(); connect(GoButton,SIGNAL(clicked()),this,SLOT(renew())); QHBoxLayout *firstinputline = new QHBoxLayout; QHBoxLayout *secondinputline = new QHBoxLayout; QHBoxLayout *thirdinputline = new QHBoxLayout; //1.line inputtable->addLayout(firstinputline, 0); firstinputline->addStretch(1); firstinputline->addWidget(aktietext, 0); firstinputline->addWidget(&repo->aktie, 1); //2.line inputtable->addLayout(secondinputline, 1); secondinputline->addStretch(1); secondinputline->addWidget(texttimerange, 0); secondinputline->addWidget(&repo->timerange, 1); secondinputline->addWidget(&repo->timerangeunit,2); //3.line inputtable->addLayout(thirdinputline, 2); thirdinputline->addStretch(2); thirdinputline->addWidget(GoButton, 2); mainlayout->addLayout(inputtable, 0); mainlayout->addStretch(0); mainlayout->addWidget(&repo->view, 1); //diagram };
ClickableWidget::ClickableWidget(SPECIESTYPE type) : MItem(NULL, type) ,m_senemgr(NULL) , m_ownScene(NULL) { m_senemgr = SceneManager::getSceneManger(); renew(); }
void ProcessDialog::set_config (DConfig *cfg) { renew(); config = cfg; writeThread->set_config(cfg); saver->set_file_name (config->filename); switch (config->mode) { case SINGLE_MODE: aCurve->setMaxX (config->measure_num); //zone_length = aCurve->getMaxX(); break; case CYCLED_MODE: aCurve->setMaxX (config->measure_num); //zone_length = aCurve->getMaxX(); break; case SCHEDULED_MODE: aCurve->setMaxX (config->measure_num); //zone_length = aCurve->getMaxX(); break; } aCurve->setStepX (config->chart_mod); //zone_length = config->measure_num; //zone_length = 50; // start_x = 0; // end_x = zone_length; // zone_length_spin->setValue (50); zone_length = config->measure_num; zone_length_spin->setValue (zone_length); start_x = 0; display_table->setRowCount (config->measure_num); plot->setAxisScale (2, 0, config->measure_num, config->measure_num/5); // graph_update(zone_length); plot->replot(); }
bool C45Reader::setFile(const string& fileName) { renew(); if (!checkFileExist(fileName)) { return false; } if (readAllDataFromNamesFile(fileName + ".names") != 0) { return false; } mNamesLoaded = true; string f = fileName + ".data"; if (openDataFile(f) != 0) { return false; } // read first row if (readData() != 0) { return false; } return true; }
void ConsumerCheckout::on_renewButton_clicked() { renew(); ischeck = 0; ui->changeBrowser->clear(); receiptinit(); }
int cmd_renew(int argc, char **argv) { long long ts = renew_timeout(); off_t offset = 0; int opt, fd, r; optind = 0; while ((opt = getopt(argc, argv, "+hdr:o:t:")) != -1) { switch (opt) { case 'h': usage(); break; case 'd': debug++; break; case 'r': request = optarg; break; case 'o': offset = strtoul(optarg, 0, 0); break; case 't': ts = strtoll(optarg, 0, 0); break; } } if (argc - optind < 4) usage(); path = argv[optind++]; validate_path(path); id = argv[optind++]; validate_id(id); lease_ms = strtoul(argv[optind++], 0, 0); op_max_ms = strtoul(argv[optind++], 0, 0); validate_lease_params(lease_ms, op_max_ms); DEBUG("path '%s' offset %ld id '%s' lease_ms %ld op_max_ms %ld", path, offset, id, lease_ms, op_max_ms); if ((fd = open(path, O_RDWR | O_DIRECT)) < 0) panic("can't open '%s'", path); r = renew(fd, offset, id, &ts); close(fd); /* print out the last successful renewal timestamp, or zero for don't renew */ printf("%lld\n", ts); if (r == 1) { DEBUG("Succeeded"); return 0; } DEBUG("%s (%s)", "Failed", strerror(r)); return 1; }
bool EnvMap::loadFromFile(std::string filename) { if (m_tex != 0) renew(); std::cerr << filename << " extension : " << getFilenameExt(filename) << '\n'; if (getFilenameExt(filename) == "float") { squareFloatImgBlob imageBlob; imageBlob.loadFromFloatFormat(filename); vec3* vData = (vec3*) imageBlob.data; size_t size = imageBlob.width*imageBlob.width; int w = imageBlob.width; for (int i = 0; i < imageBlob.width / 2; ++i) { for (int j = 0; j < imageBlob.width; ++j) { std::swap(vData[i*w + j], vData[(w - i - 1)*w + j]); } } return loadAsSphericalFloat(imageBlob.width, imageBlob.data); } Image image; if (!image.loadFromFile(filename)) { return false; } int width = image.getWidth(); int height = image.getHeight(); int envType = determineTypeFromDimension(width, height); switch (envType) { case SPHERICAL: std::cerr << "Loading " << TypesStr[SPHERICAL] << " " << filename << " (" << image.getBytesPerPixel() << " bpp)" << '\n'; loadAsSpherical(image); break; case CROSS_VERTICAL: std::cerr << "Loading " << TypesStr[CROSS_VERTICAL] << " " << filename << " (" << image.getBytesPerPixel() << " bpp)" << '\n'; break; case CROSS_HORIZONTAL: std::cerr << "Loading " << TypesStr[CROSS_HORIZONTAL] << " " << filename << " (" << image.getBytesPerPixel() << " bpp)" << '\n'; break; case LATLONG: std::cerr << "Loading " << TypesStr[LATLONG] << " " << filename << " (" << image.getBytesPerPixel() << " bpp)" << '\n'; break; case LINE: std::cerr << "Loading " << TypesStr[LINE] << " " << filename << " (" << image.getBytesPerPixel() << " bpp)" << '\n'; break; case UNKNOWN: std::cerr << "Error. Unknown environnement map type for " << filename << '\n'; break; } return true; }
ClickableWidget::ClickableWidget(const QString& fileName, SPECIESTYPE type) : MItem(fileName, type) ,m_senemgr(NULL) , m_ownScene(NULL) { m_senemgr = SceneManager::getSceneManger(); renew(); return; }
void CNetwork::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default // MessageBox("1"); //可能情况:1 选中节点 2 选中道路 3 新建节点 4 // char isnewsection=0; int sectionindex=0; CPoint pointt; GetCursorPos(&pointt); ScreenToClient(&pointt); if (network.wholesectionnum==0) { //add new network.wholesectionnum++; network.section[0].pt.x=pointt.x; network.section[0].pt.y=pointt.y; lastsection.pt=network.section[0].pt; lastsection.id=0; Lbuttondownflag=1; }else{ int i=0; for (i=0;i<network.wholesectionnum;i++)//判断是否选点 { if (pointt.x<=(network.section[i].pt.x+10) && pointt.x>=(network.section[i].pt.x-10) && pointt.y>=(network.section[i].pt.y-10) && pointt.y<=(network.section[i].pt.y+10)) { //选点 network.section[i].ishighlight=1; lastsection.pt=network.section[i].pt; lastsection.id=i; break; } } if (i==network.wholesectionnum) { //add new network.section[i].pt.x=pointt.x; network.section[i].pt.y=pointt.y; network.wholesectionnum++; network.section[i].link[network.section[i].linknum].connectid=lastsection.id;//把上一个节点信息加到这一个连接的节点信息中 network.section[i].linknum++; lastsection.pt=network.section[i].pt; lastsection.id=i; Lbuttondownflag=1; } } renew(); CDialog::OnLButtonUp(nFlags, point); }
/**********************main()***********************/ void main() { fp_err=fopen("纯捷联err.txt","w"); //fp_V=fopen("V.txt","w"); //fp_tV=fopen("tV.txt","w"); //初始化导航参数 initial(); //初始化理论值和实际值 ctCn2b(); //姿态角计算姿态矩阵(理论) ini_Cn2b();//姿态角计算姿态矩阵(实际) ini_q(); //四元数初始化(实际值) /*Mk0=gyro_ran; Nk0=acce_ran;*/ for(number=0;number<Num;number++) { noise=white(); /*Mk=-number*sampletime/1800*Mk0; Nk=-number*sampletime/1800*Nk0; printf("%le\t %le\t\n",Mk,Nk);*/ D_gyro[0]=(gyro_ran*noise+gyro_con0)*dh_hs;//+Mk D_gyro[1]=(gyro_ran*noise+gyro_con1)*dh_hs;//+Mk D_gyro[2]=(gyro_ran*noise+gyro_con2)*dh_hs;//+Mk D_acce[0]=(acce_ran*noise+acce_con0)*g/1000.0;//+Nk D_acce[1]=(acce_ran*noise+acce_con1)*g/1000.0;//+Nk+Nk D_acce[2]=(acce_ran*noise+acce_con2)*g/1000.0;// t_renew();//导航参数理论值更新函数 ctCn2b(); //由理论值姿态角解算姿态矩阵的函数 out_Wib_b();//导入陀螺数据 cWnb_b();//真实值计算 q_renew();//真实值计算 cCn2b();//真实值,从四元数中计算出来 out_f(); //导入加速度计数据 renew();//理论值 if((number%Tfnum==0)&&(number!=0)) // 1s { fprintf(fp_err,"%e\t %e\t %e\t %e\t %e\t %e\t %e\t\n",(P-tP)*H_d*60,(R-tR)*H_d*60,(H-tH)*H_d*60, V[0]-tV[0],V[1]-tV[1],(latit-tlatit)*Rn,(longi-tlongi)*Re*cos(tlatit)); } } fclose(fp_err); // fclose(fp_V); // fclose(fp_tV); }
void CNetwork::OnRButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (Lbuttondownflag==1)//之前左键按了,现在释放 { Lbuttondownflag=0; renew(); }else if (Lbuttondownflag==0) { for (int i =0;i<network.wholesectionnum;i++) { network.section[i].ishighlight=0; } renew(); } CDialog::OnRButtonUp(nFlags, point); }
void run() { while(true) { try { renew(); }catch(...) { MCE_WARN("ConfigHolder::run get Exception!"); } sleep(10); } }
wchar_t* strip_carrots(wchar_t *src)// EAT!!!!!!!!!!!!! { wchar_t *ptr; wchar_t* dest=wcsldup(src,wcslen(src)); while ((ptr = wcsstr(dest, L"<")) != NULL) { int addr=ptr-dest; dest=renew(dest,wcslen(dest)+2,7); ptr=dest+addr; memmove(ptr + 4, ptr + 1, wcslen(ptr + 1)*2 + 8); memcpy(ptr,L"<",8); } while ((ptr = wcsstr(dest, L">")) != NULL) { int addr=ptr-dest; dest=renew(dest,wcslen(dest)+2,7); ptr=dest+addr; memmove(ptr + 4, ptr + 1, wcslen(ptr + 1)*2 + 8); memcpy(ptr,L">",8); } dest[wcslen(dest)]='\0'; return dest; }
int udhcpc_wan(int argc, char **argv) { if (!argv[1]) return EINVAL; else if (strstr(argv[1], "deconfig")) return deconfig(); else if (strstr(argv[1], "bound")) return bound(); else if (strstr(argv[1], "renew")) return renew(); else return EINVAL; }
int udhcpc_ex_main(int argc, char **argv) { if (argv[1]) strcpy(udhcpstate, argv[1]); if (!argv[1]) return EINVAL; else if (strstr(argv[1], "deconfig")) return deconfig(); else if (strstr(argv[1], "bound")) return bound(); else if (strstr(argv[1], "renew")) return renew(); else return deconfig(); }
int NsRuntimeGlobalInformation::keepalive(int64_t& lease_id, const uint64_t server, const int8_t role, const int8_t status, const int8_t type, const time_t now) { static uint64_t lease_id_factory = 1; int32_t ret = owner_role_ == NS_ROLE_MASTER ? common::TFS_SUCCESS : common::EXIT_ROLE_ERROR; if (common::TFS_SUCCESS == ret) { peer_status_ = static_cast<NsStatus>(status); peer_role_ = static_cast<NsRole>(role); if (NS_KEEPALIVE_TYPE_LOGIN == type) { peer_ip_port_ = server; lease_id = lease_id_ = common::atomic_inc(&lease_id_factory); renew(now, common::SYSPARAM_NAMESERVER.heart_interval_); } else if (NS_KEEPALIVE_TYPE_RENEW == type) { ret = common::INVALID_LEASE_ID == lease_id_ ? common::EXIT_LEASE_EXPIRED : common::TFS_SUCCESS; if (common::TFS_SUCCESS == ret) { ret = lease_id_ == lease_id ? common::TFS_SUCCESS : common::EXIT_RENEW_LEASE_ERROR; if (common::TFS_SUCCESS == ret) { renew(now, common::SYSPARAM_NAMESERVER.heart_interval_); } } } else if (NS_KEEPALIVE_TYPE_LOGOUT == type) { logout(); } } TBSYS_LOG(DEBUG, "peer_role: %d, peer_status: %d,status: %d, lease_id: %ld, %ld, type: %d, time: %ld,now: %ld", peer_role_, peer_status_, status, lease_id, lease_id_, type, lease_expired_time_, now); return ret; }
BOOL CNetwork::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: Add your message handler code here and/or call default if (zDelta>0)//上,分辨率高 { lidu++; } if(zDelta<0)//down,分辨率低 { lidu--; } renew(); return CDialog::OnMouseWheel(nFlags, zDelta, pt); }
/* * Attempt to acquire the lease. * Return 1 if succedded, 0 if not , and < 0 on errors. */ int acquire(int fd, off_t offset, char *id, int busyloop, long long *ts) { char curr[taglen+1] = "", last[taglen+1] = "", tag[taglen+1] = ""; long backoff_usec = (lease_ms + 6 * op_max_ms) * 1000; long contend_usec = (2 * op_max_ms) * 1000; char dummyid[idlen+1]; if (readtag(fd, offset, curr, 1) < 0) return -errno; settag(last, freetag); do { DEBUG("restart: curr tag is '%s'", curr); if (!sametag(curr, last) && !isfree(curr)) do { DEBUG("backoff: curr tag is '%s'", curr); settag(last, curr); usleep(backoff_usec); if (readtag(fd, offset, curr, 1) < 0) return -errno; } while (busyloop && !sametag(curr, last) && !isfree(curr)); if (!sametag(curr, last) && !isfree(curr)) { DEBUG("fail: curr tag is '%s'", curr); return 0; } DEBUG("contend: curr tag is '%s'", curr); if (writetimestamp(fd, offset, id, tag, ts) < 0) { DEBUG("lost (writetimestamp failed) : curr tag is %s", curr); return -errno; } usleep(contend_usec); if (readtag(fd, offset, curr, 1) < 0) { DEBUG("lost (readtag failed) : curr tag is %s", curr); return -errno; } } while (busyloop && !sametag(curr, tag)); if (busyloop || sametag(curr, tag)) { DEBUG("won : curr tag is %s", curr); querytag(curr, dummyid, ts); return renew(fd, offset, id, ts); } DEBUG("lost : curr tag is %s\n our tag is %s", curr, tag); return 0; }
void ConsumerCheckout::on_checkoutButton_clicked() { QDateTime date = QDateTime::currentDateTime(); double revenue = checkout->check(date); //double revenue = 10; double collect = ui->collectlineEdit->text().toDouble(); double change = collect - revenue; ui->changeBrowser->setText(QString::number(change,'g',6)); //Checkout onecheck = *checkout; //e.push_back(onecheck); salelist.push_back(*checkout); QFile file("salerecord.txt"); if (!file.open(QFile::WriteOnly | QFile::Text | QIODevice::Append)) { QMessageBox::warning(this, tr("Application"),tr("Cannot write file salerecord")); } QTextStream out(&file); std::vector<Item>::iterator p; std::vector<Item>::iterator q; for(p=checkout->getSale().begin();p<checkout->getSale().end();p++){ out<< date.toString("yyyy-MM-dd")<< " "<<p->name<<" "<<p->type<<" "<< QString::number((p->price - p->cost)*p->amount,'g',6)<<"\n"; q = finditem(p->barcode,itemlist); q->amount = q->amount - p->amount; } int row = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(row); ui->tableWidget->setItem(row,3,new QTableWidgetItem("total:")); ui->tableWidget->setItem(row,4,new QTableWidgetItem(QString::number(checkout->getRevenue(),'g',6))); row = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(row); ui->tableWidget->setItem(row,3,new QTableWidgetItem("date:")); QString d = checkout->getDate().toString("yyyy-MM-dd"); ui->tableWidget->setItem(row,4,new QTableWidgetItem(d)); for(int j=0;j<5;j++){ ui->tableWidget->resizeColumnToContents (j); } renew(); ischeck = 1; }
int udhcpc_main(int argc, char **argv) { if (check_action() != ACT_IDLE) return -1; if (!argv[1]) return EINVAL; else if (strstr(argv[1], "deconfig")) return deconfig(); else if (strstr(argv[1], "bound")) return bound(); else if (strstr(argv[1], "renew")) return renew(); else if (strstr(argv[1], "update")) return update_value(); else return EINVAL; }
char* strip_linebreaks(char *src) { char* dest=strldup(src,lstrlen(src)); char *ptr; while ((ptr = strstr(dest, "\r")) != NULL) { memmove(ptr, ptr + 1, lstrlen(ptr + 1)+1); } while ((ptr = strstr(dest, "\n")) != NULL) { int addr=ptr-dest; dest=renew(dest,lstrlen(dest)+1,7); ptr=dest+addr; memmove(ptr + 4, ptr + 1, lstrlen(ptr + 1) + 4); memcpy(ptr,"<br>",4); } dest[lstrlen(dest)]='\0'; return dest; }
int dhcpc_event_main(int argc, char **argv) { char *ifname; if (!wait_action_idle(10)) return 1; #if 0 if (nvram_match("debug_dhcpcenv", "1")) { system("( date; env ) >> /tmp/dhcpc_event.env"); } #endif if ((argc == 2) && (ifname = getenv("interface")) != NULL) { if (strcmp(argv[1], "deconfig") == 0) return deconfig(ifname); if (strcmp(argv[1], "bound") == 0) return bound(ifname); if ((strcmp(argv[1], "renew") == 0) || (strcmp(argv[1], "update") == 0)) return renew(ifname); } _dprintf("%s: unknown event %s\n", __FUNCTION__, argv[1]); return 1; }
int MetaServerManager::keepalive(const int8_t type, common::MetaServer& server) { int32_t iret = TFS_ERROR; switch (type) { case RTS_MS_KEEPALIVE_TYPE_LOGIN: iret = register_(server); break; case RTS_MS_KEEPALIVE_TYPE_RENEW: iret = renew(server); break; case RTS_MS_KEEPALIVE_TYPE_LOGOUT: iret = unregister(server.base_info_.id_); break; default: TBSYS_LOG(ERROR, "%s keepalive, type: %d not found", tbsys::CNetUtil::addrToString(server.base_info_.id_).c_str(), type); break; } return iret; }
void modify(tree,int x,int y) { if(l == r ) {T[t].s = y;renew(t,l);return;}M;if(c[t]) down(t); x <= mid?modify(left,x,y):modify(right,x,y);update(T[t],T[t*2],T[t*2+1]); }
void build(tree) { if(l == r ) {T[t].s = gi;renew(t,l);return;}M; build(left);build(right);update(T[t],T[t*2],T[t*2+1]); }
MainWindow::MainWindow() { tc = QTextCodec::codecForLocale(); createParamWidget(); QTextCodec* tc = QTextCodec::codecForLocale(); CHECK = false; createToolBox(); createActions(); createMenus(); QFrame* f = new QFrame; f->setFrameStyle( QFrame::Sunken | QFrame::Panel ); f->setLineWidth( 2 ); QFrame* f2 = new QFrame; f2->setFrameStyle( QFrame::Sunken | QFrame::Panel ); f2->setLineWidth( 2 ); c = new GLBox( f, "glbox"); QHBoxLayout* flayout = new QHBoxLayout(f); flayout->setMargin(0); flayout->addWidget( c, 0 ); createSliderWidget(); createSliderArrowWidget(); f->resize(1000, 1000); f->setMinimumSize(QSize(400, 100)); scene = new DiagramScene(itemMenu); scene->setSceneRect(QRectF(0, 0, 2000, 2000)); connect(scene, SIGNAL(textInserted(BodyItem *)), this, SLOT(textInserted(BodyItem *))); connect(scene, SIGNAL(actInserted(JointItem *)), this, SLOT(actInserted(JointItem *))); connect(scene, SIGNAL(senInserted(SensorItem *)), this, SLOT(senInserted(SensorItem *))); connect(scene, SIGNAL(camInserted(CameraItem *)), this, SLOT(camInserted(CameraItem *))); connect(scene, SIGNAL(renew()), this, SLOT(renew())); connect(scene, SIGNAL(setRotNum()), this, SLOT(setRotNum())); connect(scene, SIGNAL(setGeoNum()), this, SLOT(setGeoNum())); connect(scene, SIGNAL(setSSNum()), this, SLOT(setSSNum())); createToolbars(); QHBoxLayout *hlayout = new QHBoxLayout(f2); QHBoxLayout *layout = new QHBoxLayout; tabWidget = new QTabWidget; tabWidget->addTab(SliderWidget, tc->toUnicode("パーツ選択ボタン")); tabWidget->addTab(SliderArrowWidget, tc->toUnicode("スケール調整(センサ・ジョイントのサイズ)")); //QHBoxLayout *layout = new QHBoxLayout; //ParamWidget = new QWidget; //tabWidget->addTab(ParamWidget, tc->toUnicode("パラメータ")); layout->addWidget(tabWidget); view = new QGraphicsView(scene); hlayout->addWidget(view); view->setMinimumSize(400, 100); layout->addWidget( f2 ); layout->addWidget( f); QFrame* f3 = new QFrame; f->setFrameStyle( QFrame::Sunken | QFrame::Panel ); f->setLineWidth( 2 ); QHBoxLayout *WLayout = new QHBoxLayout(f3); RotSlider = new QSlider(Qt::Vertical, this); RotSlider->setMaximum(360); RotSlider->setValue(180); RotSlider->setPageStep(60); RotSlider->setTickPosition( QSlider::TicksRight ); connect( RotSlider, SIGNAL(valueChanged(int)),c,SLOT(setRotation(int)) ); WLayout->addWidget(RotSlider); layout->addWidget( f3); QWidget *widget = new QWidget; widget->setLayout(layout); setCentralWidget(widget); setWindowTitle(tc->toUnicode("Robot Model Creator")); setUnifiedTitleAndToolBarOnMac(true); if (RMC::obj) { if (RMC::obj->getFileName() != "") { //std::cout << RMC::obj->getFileName() << std::endl; loadFile(RMC::obj->getFileName().c_str()); } } }
static void draw(void) { int i,j,k; float size = CUBE_SIZE; float normals[6][3] = { { 0.0, 0.0, -1.0}, { 1.0, 0.0, 0.0}, { 0.0, 0.0, 1.0}, {-1.0, 0.0, 0.0}, { 0.0, 1.0, 0.0}, { 0.0, -1.0, 0.0} }; float cube_points[8][3] ={ { -size, -size, -size }, { size, -size, -size }, { size, -size, size }, { -size, -size, size }, { -size, size, -size }, { size, size, -size }, { size, size, size }, { -size, size, size } }; /* 3Dオブジェクトを描画するための準備 */ argDrawMode3D(); argDraw3dCamera(0, 0); glClear(GL_DEPTH_BUFFER_BIT); //バッファの消去 glEnable( GL_DEPTH_TEST ); // 陰面処理の適用 mySetLight(); glEnable( GL_LIGHTING ); myMatrix(object[PTT1_MARK_ID].patt_trans); renew(); // フレーム毎の更新内容 // 立方体 glPushMatrix(); glTranslated( c_trans[0], c_trans[1], c_trans[2]);//平行移動値の設定 glRotatef(c_angle[0], 1.0, 0.0, 0.0 ); glRotatef(c_angle[1], 0.0, 1.0, 0.0 ); glRotatef(c_angle[2], 0.0, 0.0, 1.0 ); /* 前 */ glEnable( GL_TEXTURE_2D ); glBegin( GL_QUADS ); mySetMaterial( 1.0, 1.0, 1.0 ); glBindTexture(GL_TEXTURE_2D, texture); glNormal3fv(normals[0]); glTexCoord2f(0.0, 1.0); glVertex3fv(cube_points[0]); glTexCoord2f(1.0, 1.0); glVertex3fv(cube_points[1]); glTexCoord2f(1.0, 0.0); glVertex3fv(cube_points[5]); glTexCoord2f(0.0, 0.0); glVertex3fv(cube_points[4]); glEnd(); glDisable( GL_TEXTURE_2D ); /* 右 */ glBegin( GL_QUADS ); mySetMaterial( 0.0, 1.0, 0.0); glNormal3fv(normals[1]); glVertex3fv(cube_points[1]); glVertex3fv(cube_points[2]); glVertex3fv(cube_points[6]); glVertex3fv(cube_points[5]); glEnd(); /* 後ろ */ glBegin( GL_QUADS ); mySetMaterial( 0.0, 1.0, 1.0); glNormal3fv(normals[2]); glVertex3fv(cube_points[2]); glVertex3fv(cube_points[3]); glVertex3fv(cube_points[7]); glVertex3fv(cube_points[6]); glEnd(); /* 左 */ glBegin( GL_QUADS ); mySetMaterial( 1.0, 0.0, 1.0); glNormal3fv(normals[3]); glVertex3fv(cube_points[3]); glVertex3fv(cube_points[0]); glVertex3fv(cube_points[4]); glVertex3fv(cube_points[7]); glEnd(); /* 上 */ glBegin( GL_QUADS ); mySetMaterial( 0.0, 0.0, 1.0); glNormal3fv(normals[4]); glVertex3fv(cube_points[4]); glVertex3fv(cube_points[5]); glVertex3fv(cube_points[6]); glVertex3fv(cube_points[7]); glEnd(); /* 下 */ glBegin( GL_QUADS ); mySetMaterial( 1.0, 1.0, 0.0); glNormal3fv(normals[5]); glVertex3fv(cube_points[0]); glVertex3fv(cube_points[1]); glVertex3fv(cube_points[2]); glVertex3fv(cube_points[3]); glEnd(); glPopMatrix(); glDisable( GL_LIGHTING ); glDisable( GL_DEPTH_TEST ); // 陰面処理の適用 }