Download tddfa/Sim3DR/tests/io.cpp from ozyman/fasd: direct link, hf CLI and curl.
- Browser
- Download file 2.36 kB
-
https://huggingface.co/spaces/ozyman/fasd/resolve/main/tddfa/Sim3DR/tests/io.cpp
- Command line
-
hf download hf://spaces/ozyman/fasd/tddfa/Sim3DR/tests/io.cpp
-
curl -L -o io.cpp https://huggingface.co/spaces/ozyman/fasd/resolve/main/tddfa/Sim3DR/tests/io.cpp
2.36 kB
| //void load_obj(const string obj_fp, float* vertices, float* colors, float* triangles){ | |
| // string line; | |
| // ifstream in(obj_fp); | |
| // | |
| // if(in.is_open()){ | |
| // while (getline(in, line)){ | |
| // stringstream ss(line); | |
| // | |
| // char t; // type: v, f | |
| // ss >> t; | |
| // if (t == 'v'){ | |
| // | |
| // } | |
| // } | |
| // } | |
| //} | |
| void load_obj(const char *obj_fp, float *vertices, float *colors, int *triangles, int nver, int ntri) { | |
| FILE *fp; | |
| fp = fopen(obj_fp, "r"); | |
| char t; // type: v or f | |
| if (fp != nullptr) { | |
| for (int i = 0; i < nver; ++i) { | |
| fscanf(fp, "%c", &t); | |
| for (int j = 0; j < 3; ++j) | |
| fscanf(fp, " %f", &vertices[3 * i + j]); | |
| for (int j = 0; j < 3; ++j) | |
| fscanf(fp, " %f", &colors[3 * i + j]); | |
| fscanf(fp, "\n"); | |
| } | |
| // fscanf(fp, "%c", &t); | |
| for (int i = 0; i < ntri; ++i) { | |
| fscanf(fp, "%c", &t); | |
| for (int j = 0; j < 3; ++j) { | |
| fscanf(fp, " %d", &triangles[3 * i + j]); | |
| triangles[3 * i + j] -= 1; | |
| } | |
| fscanf(fp, "\n"); | |
| } | |
| fclose(fp); | |
| } | |
| } | |
| void load_ply(const char *ply_fp, float *vertices, int *triangles, int nver, int ntri) { | |
| FILE *fp; | |
| fp = fopen(ply_fp, "r"); | |
| // char s[256]; | |
| char t; | |
| if (fp != nullptr) { | |
| // for (int i = 0; i < 9; ++i) | |
| // fscanf(fp, "%s", s); | |
| for (int i = 0; i < nver; ++i) | |
| fscanf(fp, "%f %f %f\n", &vertices[3 * i], &vertices[3 * i + 1], &vertices[3 * i + 2]); | |
| for (int i = 0; i < ntri; ++i) | |
| fscanf(fp, "%c %d %d %d\n", &t, &triangles[3 * i], &triangles[3 * i + 1], &triangles[3 * i + 2]); | |
| fclose(fp); | |
| } | |
| } | |
| void write_ppm(const char *filename, unsigned char *img, int h, int w, int c) { | |
| FILE *fp; | |
| //open file for output | |
| fp = fopen(filename, "wb"); | |
| if (!fp) { | |
| fprintf(stderr, "Unable to open file '%s'\n", filename); | |
| exit(1); | |
| } | |
| //write the header file | |
| //image format | |
| fprintf(fp, "P6\n"); | |
| //image size | |
| fprintf(fp, "%d %d\n", w, h); | |
| // rgb component depth | |
| fprintf(fp, "%d\n", MAX_PXL_VALUE); | |
| // pixel data | |
| fwrite(img, sizeof(unsigned char), size_t(h * w * c), fp); | |
| fclose(fp); | |
| } |