12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #include <igl/readOBJ.h>
- #include <cstdio>
- #include <vector>
- #include <algorithm>
- #include <functional>
- #include <Eigen/Dense>
- using namespace igl;
- using namespace std;
- using namespace Eigen;
- // Template:
- // T type that can be safely cast to float
- // Inputs:
- // vv vector of vectors of type T
- template <typename T>
- void print_vector_of_vectors_as_floats(const std::vector<std::vector<T > > & vv)
- {
- for(int i = 0;i<vv.size();i++)
- {
- for(int j = 0;j<vv[i].size();j++)
- {
- printf("%g ",(float)(vv[i][j]));
- }
- printf("\n");
- }
- }
- int main(int argc, char * argv[])
- {
- if(argc <= 1)
- {
- printf("USAGE:\n ./example [path_1] [path_2] ... [path_n]\n");
- return 1;
- }
- vector<std::vector<double> > V,TC,N;
- vector<std::vector<int> > F,FTC,FN;
- // loop over arguments
- for(int i = 1; i < argc; i++)
- {
- if(i != 1)
- {
- printf("-----------------------------------------------------------\n");
- }
- readOBJ(argv[i],V,TC,N,F,FTC,FN);
- cout<<"V=["; print_vector_of_vectors_as_floats(V); cout<<"];"<<endl;
- cout<<"TC=["; print_vector_of_vectors_as_floats(TC); cout<<"];"<<endl;
- cout<<"N=["; print_vector_of_vectors_as_floats(N); cout<<"];"<<endl;
- cout<<"F=["; print_vector_of_vectors_as_floats(F); cout<<"];"<<endl;
- cout<<"FTC=[";print_vector_of_vectors_as_floats(FTC);cout<<"];"<<endl;
- cout<<"FN=["; print_vector_of_vectors_as_floats(FN); cout<<"];"<<endl;
- // Eigen (V,F) style
- MatrixXd EV;
- MatrixXi EF;
- readOBJ(argv[i],EV,EF);
- cout<<"EV=["<<EV<<"];"<<endl;
- cout<<"EF=["<<EF<<"];"<<endl;
- }
- return 0;
- }
|