int giperbola::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QDialog::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: viz(); break; case 1: noviz(); break; case 2: pok(); break; case 3: skryt(); break; case 4: nazad(); break; case 5: vmenu(); break; default: ; } _id -= 6; } return _id; }
int main (int argc, char** argv) { pcl::visualization::PCLVisualizer viz ("Visualizator"); viz.addCoordinateSystem (1.0); viz.addText3D ("Following text", pcl::PointXYZ(0.0, 0.0, 0.0), 1.0, 1.0, 0.0, 0.0, "id_following"); viz.spin (); double orientation[3] = {0., 0., 0.}; viz.addText3D ("Fixed text", pcl::PointXYZ(0.0, 0.0, 0.0), orientation, 1.0, 0.0, 1.0, 0.0, "id_fixed"); viz.spin (); viz.removeText3D ("id_following"); viz.spin (); viz.removeText3D ("id_fixed"); viz.spin (); return (0); }
Test::Test() { std::cout<<"Test Obj created"; pcl::PointCloud<pcl::PointXYZ>::Ptr basic_cloud_ptr (new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>); uint8_t r(255), g(15), b(15); pcl::PointXYZ basic_point; basic_point.x = 0.5; basic_point.y = 0.5; basic_point.z = 0.5; basic_cloud_ptr->points.push_back(basic_point); pcl::PointXYZRGB point; point.x = basic_point.x; point.y = basic_point.y; point.z = basic_point.z; uint32_t rgb = (static_cast<uint32_t>(r) << 16 | static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b)); point.rgb = *reinterpret_cast<float*>(&rgb); point_cloud_ptr->points.push_back (point); basic_point.x = -0.5; basic_point.y = -0.5; basic_point.z = -0.5; rgb = (static_cast<uint32_t>(15) << 16 | static_cast<uint32_t>(255) << 8 | static_cast<uint32_t>(15)); point.rgb = *reinterpret_cast<float*>(&rgb); point_cloud_ptr->points.push_back (point); //basic_cloud_ptr->width = (int) basic_cloud_ptr->points.size (); //basic_cloud_ptr->height = 1; //point_cloud_ptr->width = (int) point_cloud_ptr->points.size (); //point_cloud_ptr->height = 1; pcl::visualization::CloudViewer viz("My cloud viewer"); viz.showCloud(point_cloud_ptr); //viz.spin(); while(!viz.wasStopped()) { } }
int tester(void) { int i,j; int e = 0; fld = malloc(NROWS * sizeof(int *));/*[5][5] = { {1,6,11,16,21}, {2,7,12,17,22}, {3,8,13,18,23}, {4,9,14,19,24}, {5,10,15,20,25} };*/ if(fld == NULL){ printf("Oops, couldn't ``malloc''?"); return(1); } for(i=0; i<NROWS; i++){ fld[i] = malloc(NCOLS * sizeof(int)); if(fld[i] == NULL){ printf("Hmm, couldn't do the second-dimension ``malloc''."); return(1); } } /* Initialize the array! */ for(j=0;j<NROWS;j++){ for(i=0;i<NCOLS;i++){ fld[i][j] = e; e++; } } #ifdef TEST for(j=0;j<NROWS;j++){ for(i=0;i<NCOLS;i++){ printf("%d\t",fld[i][j]); if((i+1) == x) printf("\n"); } } #endif printf("About to test the printer function.\n\n"); viz(fld); /* Should show: 0 1 2 3 4 5 6 7 8 Or some similar such, depending on NCOLS and NROWS */ /* Kill all cells! They should be all 0's now.*/ for(j=0;j<NROWS;j++){ for(i=0;i<NCOLS;i++){ killf(i,j); } } viz(fld); /* Spawn all cells! They should be all 1's now.*/ for(j=0;j<NROWS;j++){ for(i=0;i<NCOLS;i++){ spawn(i,j); } } viz(fld); printf("A corner cell should have 3 live neighbours: %d\n", friends(0,0)); printf("A middle cell should have 8 live neighbours: %d\n", friends(1,1)); printf("A side cell should have 5 live neighbours: %d\n", friends(1,0)); printf("Goodbye\n\n"); /* Try some basic tests of the generator and rule. */ for(j=0;j<NROWS;j++){ for(i=0;i<NCOLS;i++){ killf(i,j); } } spawn(0,1); spawn(1,1); spawn(2,1); viz(fld); generator(1); viz(fld); generator(1); viz(fld); printf("\n\nDone testing.\n\n"); return(0); }
void flexionFDSimulationWithHitMap(Model& model) { addFlexionController(model); //addExtensionController(model); //addTibialLoads(model, 0); model.setUseVisualizer(true); // init system std::time_t result = std::time(nullptr); std::cout << "\nBefore initSystem() " << std::asctime(std::localtime(&result)) << endl; SimTK::State& si = model.initSystem(); result = std::time(nullptr); std::cout << "\nAfter initSystem() " << std::asctime(std::localtime(&result)) << endl; // set gravity //model.updGravityForce().setGravityVector(si, Vec3(-9.80665,0,0)); //model.updGravityForce().setGravityVector(si, Vec3(0,0,0)); //setHipAngle(model, si, 90); //setKneeAngle(model, si, 0, false, false); //model.equilibrateMuscles( si); MultibodySystem& system = model.updMultibodySystem(); SimbodyMatterSubsystem& matter = system.updMatterSubsystem(); GeneralForceSubsystem forces(system); ContactTrackerSubsystem tracker(system); CompliantContactSubsystem contactForces(system, tracker); contactForces.setTrackDissipatedEnergy(true); //contactForces.setTransitionVelocity(1e-3); for (int i=0; i < matter.getNumBodies(); ++i) { MobilizedBodyIndex mbx(i); if (i==19 || i==20 || i==22)// || i==15 || i==16) { MobilizedBody& mobod = matter.updMobilizedBody(mbx); std::filebuf fb; //cout << mobod.updBody(). if (i==19) fb.open ( "../resources/femur_lat_r.obj",std::ios::in); else if (i==20) fb.open ( "../resources/femur_med_r.obj",std::ios::in); else if (i==22) fb.open ( "../resources/tibia_upper_r.obj",std::ios::in); //else if (i==15) //fb.open ( "../resources/meniscus_lat_r.obj",std::ios::in); //else if (i==16) //fb.open ( "../resources/meniscus_med_r.obj",std::ios::in); std::istream is(&fb); PolygonalMesh polMesh; polMesh.loadObjFile(is); fb.close(); SimTK::ContactGeometry::TriangleMesh mesh(polMesh); ContactSurface contSurf;//(mesh, ContactMaterial(1.0e6, 1, 1, 0.03, 0.03), 0.001); if (i==19 || i==20 || i==22) contSurf = ContactSurface(mesh, ContactMaterial(10, 1, 1, 0.03, 0.03), 0.001); //else if (i==15 || i==16) //contSurf = ContactSurface(mesh, ContactMaterial(10, 3, 1, 0.03, 0.03), 0.001); DecorativeMesh showMesh(mesh.createPolygonalMesh()); showMesh.setOpacity(0.5); mobod.updBody().addDecoration( showMesh); mobod.updBody().addContactSurface(contSurf); } } ModelVisualizer& viz(model.updVisualizer()); //Visualizer viz(system); viz.updSimbodyVisualizer().addDecorationGenerator(new HitMapGenerator(system,contactForces)); viz.updSimbodyVisualizer().setMode(Visualizer::RealTime); viz.updSimbodyVisualizer().setDesiredBufferLengthInSec(1); viz.updSimbodyVisualizer().setDesiredFrameRate(30); viz.updSimbodyVisualizer().setGroundHeight(-3); viz.updSimbodyVisualizer().setShowShadows(true); Visualizer::InputSilo* silo = new Visualizer::InputSilo(); viz.updSimbodyVisualizer().addInputListener(silo); Array_<std::pair<String,int> > runMenuItems; runMenuItems.push_back(std::make_pair("Go", GoItem)); runMenuItems.push_back(std::make_pair("Replay", ReplayItem)); runMenuItems.push_back(std::make_pair("Quit", QuitItem)); viz.updSimbodyVisualizer().addMenu("Run", RunMenuId, runMenuItems); Array_<std::pair<String,int> > helpMenuItems; helpMenuItems.push_back(std::make_pair("TBD - Sorry!", 1)); viz.updSimbodyVisualizer().addMenu("Help", HelpMenuId, helpMenuItems); system.addEventReporter(new MyReporter(system,contactForces,ReportInterval)); //system.addEventReporter(new Visualizer::Reporter(viz.updSimbodyVisualizer(), ReportInterval)); // Check for a Run->Quit menu pick every <x> second. system.addEventHandler(new UserInputHandler(*silo, 0.001)); system.realizeTopology(); //Show ContactSurfaceIndex for each contact surface // for (int i=0; i < matter.getNumBodies(); ++i) { //MobilizedBodyIndex mbx(i); // const MobilizedBody& mobod = matter.getMobilizedBody(mbx); // const int nsurfs = mobod.getBody().getNumContactSurfaces(); //printf("mobod %d has %d contact surfaces\n", (int)mbx, nsurfs); ////cout << "mobod with mass: " << (float)mobod.getBodyMass(si) << " has " << nsurfs << " contact surfaces" << endl; // //for (int i=0; i<nsurfs; ++i) { // //printf("%2d: index %d\n", i, // //(int)tracker.getContactSurfaceIndex(mbx,i)); // //} // } //cout << "tracker num of surfaces: " << tracker.getNumSurfaces() << endl; //State state = system.getDefaultState(); //viz.report(state); State& state = model.initializeState(); viz.updSimbodyVisualizer().report(state); // Add reporters ForceReporter* forceReporter = new ForceReporter(&model); model.addAnalysis(forceReporter); CustomAnalysis* customReporter = new CustomAnalysis(&model, "r"); model.addAnalysis(customReporter); // Create the integrator and manager for the simulation. SimTK::RungeKuttaMersonIntegrator integrator(model.getMultibodySystem()); //SimTK::CPodesIntegrator integrator(model.getMultibodySystem()); //integrator.setAccuracy(.01); //integrator.setAccuracy(1e-3); //integrator.setFixedStepSize(0.001); Manager manager(model, integrator); // Define the initial and final simulation times double initialTime = 0.0; double finalTime = 0.2; // Integrate from initial time to final time manager.setInitialTime(initialTime); manager.setFinalTime(finalTime); std::cout<<"\n\nIntegrating from "<<initialTime<<" to " <<finalTime<<std::endl; result = std::time(nullptr); std::cout << "\nBefore integrate(si) " << std::asctime(std::localtime(&result)) << endl; manager.integrate(state); result = std::time(nullptr); std::cout << "\nAfter integrate(si) " << std::asctime(std::localtime(&result)) << endl; // Save the simulation results Storage statesDegrees(manager.getStateStorage()); statesDegrees.print("../outputs/states_flex.sto"); model.updSimbodyEngine().convertRadiansToDegrees(statesDegrees); statesDegrees.setWriteSIMMHeader(true); statesDegrees.print("../outputs/states_degrees_flex.mot"); // force reporter results forceReporter->getForceStorage().print("../outputs/force_reporter_flex.mot"); //customReporter->print( "../outputs/custom_reporter_flex.mot"); //cout << "You can choose 'Replay'" << endl; int menuId, item; unsigned int frameRate = 5; do { cout << "Please choose 'Replay' or 'Quit'" << endl; viz.updInputSilo().waitForMenuPick(menuId, item); if (item != ReplayItem && item != QuitItem) cout << "\aDude... follow instructions!\n"; if (item == ReplayItem) { cout << "Type desired frame rate (integer) for playback and press Enter (default = 1) : "; //frameRate = cin.get(); cin >> frameRate; if (cin.fail()) { cout << "Not an int. Setting default frame rate." << endl; cin.clear(); cin.ignore(std::numeric_limits<int>::max(),'\n'); frameRate = 1; } //cout << "saveEm size: " << saveEm.size() << endl; for (unsigned int i=0; i<saveEm.size(); i++) { viz.updSimbodyVisualizer().drawFrameNow(saveEm.getElt(i)); if (frameRate == 0) frameRate = 1; usleep(1000000/frameRate); } } } while (menuId != RunMenuId || item != QuitItem); }
int main(int argc, char **argv) { InitVars(argc, argv, "segment.cfg"); if (argc != 2) { DLOG << "Usage: "<<argv[0]<<" INPUT"<<endl; exit(-1); } // Read image ImageBundle image(argv[1]); const int& w = image.nx(); const int& h = image.ny(); image.BuildHSV(); // Convert to HSV and mono WriteHueOnly("out/h_only.png", image.hsv); // Segment FHSegmenter segmenter; TIMED("Segment") segmenter.Compute(image); const int num_segments = segmenter.num_segments; DLOG << "Generated " << num_segments << " segments"; segmenter.OutputSegViz("out/segmentation.png"); // Compute features for each segment HistSegmentFeatures<TextonLabeller<NhdPixelFeatures> > segftrs; segftrs.Compute(image.rgb, image.hsv, segmenter.segmentation, num_segments); segftrs.OutputLabelViz("out/label_map.png"); // Compute similarity matrix MatF similarity(num_segments, num_segments); for (int i = 0; i < num_segments; i++) { similarity[i][i] = 0; for (int j = i+1; j < num_segments; j++) { const double ssd = VectorSSD(segftrs.features[i], segftrs.features[j]); similarity[i][j] = min(1.0/sqrt(ssd), 10); similarity[j][i] = similarity[i][j]; } } similarity /= similarity.MaxValue(); WriteMatrixImageRescaled("out/similarity.png", similarity); // Generate some vizualizations const int kNumViz = 15; ImageRGB<byte> viz(w, h); vector<PixelRGB<byte> > colors(num_segments); vector<int> segment_indices; sorted_order(segmenter.segment_sizes, segment_indices, greater<int>()); for (int i = 0; i < kNumViz; i++) { // Pick a random pixel and use the segment at that pixel so that // larger segments are more likely to be chosen const int root = segment_indices[i]; DREPORT(root); // Compute colors for each other segment for (int j = 0; j < num_segments; j++) { if (j == root) { colors[j].Set(255, 0, 0); } else { const int v = similarity[j][root] * 255; colors[j].Set(v, v, v); } } // Generate the vizualization for (int r = 0; r < h; r++) { PixelRGB<byte>* vizrow = viz[r]; const int* segrow = segmenter.segmentation[r]; for (int c = 0; c < w; c++) { vizrow[c] = colors[segrow[c]]; } } WriteImage("out/sim"+PaddedInt(i,2)+".png", viz); } return 0; }
void step(char *body){ char in[100]; int takeinput=1; int lastcommand=0; while(takeinput){ scanf("%s",in); //printf("in %s\n",in); //printf("body %s\n",body); if(!strcmp(in,"step")||!strcmp(in,"s")){ //take next step in program lastcommand=1; char nextstep[strlen(body)]; int i; for(i=0;body[i]!=','&&body[i]!=0;i++){ nextstep[i]=body[i]; } nextstep[i]=0; if(!strncmp(nextstep,"//struct",8)){ //printf("body %s %d\n",body+i,strncmp(body+i,"//ends",6)); nextstep[i]=body[i]; while(strncmp(body+i,"//ends",6)){ //printf("loop\n"); nextstep[i]=body[i]; i++; } nextstep[i]=0; body+=6; } if(!strncmp(nextstep,"//while",7)){ char * condition = nextstep+7; char num[strlen(nextstep)]; int k=0; //printf("condition number %s\n",condition); while(*condition!=' '&&*condition){ num[k]=*condition; condition++; k++; } num[k]=0; condition++; char cond[strlen(nextstep)]; k=0; while(*condition!=','&&*condition){ cond[k]=*condition; condition++; k++; } cond[k]=0; //printf("while condition %s\n",cond); executeStatement* e = new executeStatement(cond); void * ret=e->execute(); //printf("ret %d\n",*(int *)ret); char loopbody[strlen(body)]; loopbody[0]=0; //strcat(loopbody,nextstep); //loopbody[strlen(loopbody)]=','; //loopbody[strlen(loopbody)+1]=0; k=i+1; int wbool=1; while(wbool){ for(i=0;body[k]!=','&&body[k]!=0;k++,i++){ nextstep[i]=body[k]; //printf("i = %d body=%c\n",i,body[k]); } nextstep[i]=body[k]; k++; i++; nextstep[i]=0; //printf("nextstep %s num %s\n",nextstep,num); if(!strncmp(nextstep,"//endw",6)){ //printf("got 1\n"); if(!strncmp(nextstep+6,num,strlen(num))){ wbool=0; //printf("got 2\n"); continue; } } strcat(loopbody,nextstep); } loopbody[strlen(loopbody)-1]=0; //printf("loopbody %s\n",loopbody); if(*(int *)ret!=0){ step(loopbody); } else{ //printf("nextstep1251521 %s\nbody %s\nloopbody %s\n",nextstep,body,loopbody); //printf("nextstep %d body %d loopbody %d i %d\n",strlen(nextstep),strlen(body),strlen(loopbody),i); body+=i+strlen(loopbody)+strlen(nextstep)+strlen(cond)+3; if(*body==0) takeinput=0; //printf("body %s\n",body); } //printf("body123 %s\n",body); } else if(!strncmp(nextstep,"//if",4)){ char * condition = nextstep+4; char num[strlen(nextstep)]; int k=0; //printf("condition number %s\n",condition); while(*condition!=' '&&*condition){ num[k]=*condition; condition++; k++; } num[k]=0; condition++; char cond[strlen(nextstep)]; k=0; while(*condition!=','&&*condition){ cond[k]=*condition; condition++; k++; } cond[k]=0; //printf("if condition %s\n",cond); executeStatement* e = new executeStatement(cond); void * ret=e->execute(); //printf("ret %d\n",*(int *)ret); if(*(int *)ret!=0){ char ifbody[strlen(body)]; ifbody[0]=0; k=i+1; int wbool=1; int haselse=0; while(wbool){ for(i=0;body[k]!=','&&body[k]!=0;k++,i++){ nextstep[i]=body[k]; //printf("i = %d body=%c\n",i,body[k]); } nextstep[i]=body[k]; k++; i++; nextstep[i]=0; //printf("nextstep %s num %s\n",nextstep,num); if(!strncmp(nextstep,"//endf",6)||!strncmp(nextstep,"//else",6)){ //printf("got 1\n"); if(!strncmp(nextstep+6,num,strlen(num))){ if(!strncmp(nextstep,"//else",6)){ haselse=1; } wbool=0; //printf("got 2\n"); continue; } } strcat(ifbody,nextstep); } ifbody[strlen(ifbody)-1]=0; //printf("ifbody %s\n",ifbody); step(ifbody); //printf("body prejump %s\n",body); body+=strlen(ifbody)+strlen(cond)+7+strlen(num)*2+6; if(*body==',') body++; //printf("body ifsasdf %s\n %s\n%s\n",body,ifbody,cond); if(haselse){ ifbody[0]=0; k=0; wbool=1; //printf("body elsesasdf %s\n",body); while(wbool){ for(i=0;body[k]!=','&&body[k]!=0;k++,i++){ nextstep[i]=body[k]; //printf("i = %d body=%c\n",i,body[k]); } nextstep[i]=body[k]; k++; i++; nextstep[i]=0; //printf("nextstep %s num %s\n",nextstep,num); if(!strncmp(nextstep,"//ende",6)){ //printf("got 1\n"); if(!strncmp(nextstep+6,num,strlen(num))){ wbool=0; //printf("got 2\n"); continue; } } strcat(ifbody,nextstep); } ifbody[strlen(ifbody)-1]=0; //printf("bodypree jump elso %s\n",body); body+=strlen(ifbody)+7+strlen(num); if(*body==',') body++; //printf("body else1345 %s\n",body); } //body+=strlen(nextstep); if(*body==0) takeinput=0; } else{ char ifbody[strlen(body)]; ifbody[0]=0; k=i+1; int wbool=1; int haselse=0; while(wbool){ for(i=0;body[k]!=','&&body[k]!=0;k++,i++){ nextstep[i]=body[k]; //printf("i = %d body=%c\n",i,body[k]); } nextstep[i]=body[k]; k++; i++; nextstep[i]=0; //printf("nextstep %s num %s\n",nextstep,num); if(!strncmp(nextstep,"//endf",6)||!strncmp(nextstep,"//else",6)){ //printf("got 1\n"); if(!strncmp(nextstep+6,num,strlen(num))){ if(!strncmp(nextstep,"//else",6)){ haselse=1; } wbool=0; //printf("got 2\n"); continue; } } strcat(ifbody,nextstep); } ifbody[strlen(ifbody)-1]=0; //printf("abody %s\n",body); body+=strlen(ifbody)+strlen(cond)+7+strlen(num)*2+6; //printf("body ifsasdf2365 %c\n",*body); if(*body==',') body++; //printf("body ifsasdf %s\n",body); if(haselse){ ifbody[0]=0; k=0; wbool=1; //printf("body elsesasdf %s\n",body); while(wbool){ for(i=0;body[k]!=','&&body[k]!=0;k++,i++){ nextstep[i]=body[k]; //printf("i = %d body=%c\n",i,body[k]); } nextstep[i]=body[k]; k++; i++; nextstep[i]=0; //printf("nextstep %s num %s\n",nextstep,num); if(!strncmp(nextstep,"//ende",6)){ //printf("got 1\n"); if(!strncmp(nextstep+6,num,strlen(num))){ wbool=0; //printf("got 2\n"); continue; } } strcat(ifbody,nextstep); } ifbody[strlen(ifbody)-1]=0; //printf("elsebody %s\n",ifbody); step(ifbody); //printf("bodypree jump elso %s\n",body); body+=strlen(ifbody)+7+strlen(num); if(*body==',') body++; //printf("body else1345 %s\n",body); } if(*body==0) takeinput=0; } } else{ //printf("adding body\n"); if(body[i]!=0) body+=i+1; else//were done takeinput=0; executeStatement* e = new executeStatement(nextstep); e->execute(); } for(i=0;body[i]!=','&&body[i]!=0;i++){ nextstep[i]=body[i]; } nextstep[i]=0; printf("nextstep %s %d\n",nextstep,i); } else if(!strcmp(in,"continue")||!strcmp(in,"c")){ //continue the program lastcommand=2; } else if(!strcmp(in,"quit")||!strcmp(in,"q")){ //quit the program takeinput=0; } //insert more commands here possibly break, print, set, etc else if(!strcmp(in,"print")||!strcmp(in,"p")){ frame * curframe=cstack::thiscstack.getframe(cstack::thiscstack.stacksize-1); scanf("%s",in); int ret=cstack::thiscstack.find(curframe,in); if(ret>=0){ stack *s = curframe->sstack[ret]; viz(s); } else printf("variable does not exist %s\n",in); } } return; }