int main(int argc,char *argv[]) { VolMagick::Volume v; VolMagick::readVolumeFile(v,argv[1]); UniformGrid ugrid(1,1,1); ugrid.importVolume(v); Point min,max; min.x=v.XMin(); min.y=v.YMin(); min.z=v.ZMin(); max.x=v.XMax(); max.y=v.YMax(); max.z=v.ZMax(); //generateGridFile(min,max,v.XDim(),v.YDim(),v.ZDim()); Mesh *mesh=new Mesh(); float iso_val=atof(argv[2]); Mesher mesher; mesher.setGrid((Grid &)(ugrid)); mesher.setMesh(mesh); mesher.generateMesh(iso_val); // mesh->correctNormals(); mesher.saveMesh(string(argv[3]),&v); delete mesh; return 0; }
int main(int argc, char **argv) { if(argc < 3) { std:: cerr << "Usage: " << argv[0] << " <first volume> <output volume>. \n"; return 1; } try { VolMagick::Volume inputVol; VolMagick::Volume outputVol; VolMagick::readVolumeFile(inputVol,argv[1]); ///first argument is input volume VolMagick::VolumeFileInfo volinfo1; volinfo1.read(argv[1]); std::cout << volinfo1.filename() << ":" <<std::endl; std::cout<<"minVol1 , maxVol1: "<<volinfo1.min()<<" "<<volinfo1.max()<<std::endl;; VolMagick::BoundingBox bbox; bbox.minx = inputVol.XMin(); bbox.maxx = inputVol.XMax(); bbox.miny = inputVol.YMin(); bbox.maxy = inputVol.YMax(); bbox.minz = 2.0*inputVol.ZMin() - inputVol.ZMax(); bbox.maxz = inputVol.ZMax(); VolMagick::Dimension dim; dim.xdim = inputVol.XDim(); dim.ydim = inputVol.YDim(); dim.zdim = (int)((bbox.maxz -bbox.minz)/inputVol.ZSpan())+1; // cout<<bbox.minz <<" " << bbox.maxz<<" "<< bbox.maxy <<endl; // cout<<dim.zdim <<" " << dim.ydim << endl; outputVol.voxelType(inputVol.voxelType()); outputVol.dimension(dim); outputVol.boundingBox(bbox); for( int kz = 0; kz<outputVol.ZDim()/2; kz++) for( int jy = 0; jy<inputVol.YDim(); jy++) for( int ix = 0; ix<inputVol.XDim(); ix++) outputVol(ix, jy, kz, inputVol(inputVol.XDim()-1-ix, inputVol.YDim()-1-jy, inputVol.ZDim()-1-kz)); for( int kz=outputVol.ZDim()/2; kz < outputVol.ZDim(); kz++) for( int jy = 0; jy<inputVol.YDim(); jy++) for( int ix = 0; ix<inputVol.XDim(); ix++) outputVol(ix, jy, kz, inputVol(ix, jy, kz+1-inputVol.ZDim())); VolMagick::createVolumeFile(outputVol, argv[2]); cout<<"done!"<<endl; } catch(VolMagick::Exception &e) { std:: cerr << e.what() << std::endl; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } return 0; }
int main(int argc, char **argv) { if(argc < 3) { std:: cerr << "Usage: " << argv[0] << " <first volume> <output volume> [ bool 0/1 ]. \n"; cerr<<"bool 1 keeps the original volume, bool 0 only the reflection, default 0." << endl; return 1; } try { VolMagick::Volume inputVol; VolMagick::Volume outputVol; VolMagick::readVolumeFile(inputVol,argv[1]); ///first argument is input volume VolMagick::VolumeFileInfo volinfo1; volinfo1.read(argv[1]); std::cout << volinfo1.filename() << ":" <<std::endl; std::cout<<"minVol1 , maxVol1: "<<volinfo1.min()<<" "<<volinfo1.max()<<std::endl;; VolMagick::BoundingBox bbox; bbox.minx = inputVol.XMin(); bbox.maxx = inputVol.XMax(); bbox.miny = inputVol.YMin(); bbox.maxy = inputVol.YMax(); bbox.minz = inputVol.ZMin(); bbox.maxz = inputVol.ZMax(); VolMagick::Dimension dim; dim.xdim = inputVol.XDim(); dim.ydim = inputVol.YDim(); dim.zdim = inputVol.ZDim(); // cout<<bbox.minz <<" " << bbox.maxz<<" "<< bbox.maxy <<endl; // cout<<dim.zdim <<" " << dim.ydim << endl; outputVol.voxelType(inputVol.voxelType()); outputVol.dimension(dim); outputVol.boundingBox(bbox); //Works for GroEL4.2 for( int kz = 0; kz<outputVol.ZDim(); kz++) for( int jy = 0; jy<inputVol.YDim(); jy++) for( int ix = 0; ix<inputVol.XDim(); ix++) { float temp=0.0; if(inputVol.ZDim() >= kz && inputVol.ZDim() - kz < inputVol.ZDim() && inputVol.YDim() >= jy && inputVol.YDim() - jy < inputVol.YDim() ) temp = inputVol(ix, inputVol.YDim()-jy, inputVol.ZDim()-kz); outputVol(ix, jy, kz, temp); } if(argc==4 && atoi(argv[3])== 1) { for( int kz = 0; kz<inputVol.ZDim(); kz++) for( int jy = 0; jy<inputVol.YDim(); jy++) for( int ix = 0; ix<inputVol.XDim(); ix++) { outputVol(ix, jy, kz, outputVol(ix,jy,kz)+inputVol(ix,jy,kz)); } } VolMagick::createVolumeFile(outputVol, argv[2]); cout<<"done!"<<endl; } catch(VolMagick::Exception &e) { std:: cerr << e.what() << std::endl; } catch(std::exception &e) { std::cerr << e.what() << std::endl; } return 0; }